现在有没有可以阅读完整项目的 AI

2024-07-12 22:44:50 +08:00
 LeviMarvin

如题,需要一个可以分析整个中小型项目、系统的 AI

4199 次点击
所在节点    程序员
10 条回复
ztm0929
2024-07-12 23:01:37 +08:00
同问,据说 GitHub Copilot Enterprise 也就是企业版可以实现完整仓库的理解。一直在找平替。
SolarAA
2024-07-12 23:11:05 +08:00
Akagi201
2024-07-12 23:23:31 +08:00
AnythingLLM, 其实个人感觉非内网项目, 开源项目的话, 直接贴出代码上文, 问 gemini 就能回答的很好
TAsdd
2024-07-13 16:09:33 +08:00
lee88688
2024-07-13 18:30:34 +08:00
@SolarAA 我用过 cursor ,他对整个项目的理解其实是本地对项目代码创建向量索引,问问题的时候类似 RAG 先搜索将搜索结果放入 LLM 上下文中。
slowgen
2024-07-14 00:44:44 +08:00
现在大模型支持的上下文也就百万 token ( Llama-3-8B-Instruct-Gradient-1048k 、glm-4-9b-chat-1m 、internlm2_5-7b-chat-1m )到 4 百万 token(Llama-3-8B-Instruct-Gradient-4194k),想在对话里塞进中小型项目可能够用,如果不够用那只能用 RAG 或者 GraphRAG 的形式。

付一个简单的 RAG 例子,不到 20 行就可以和代码仓库对话
```python
from llama_index.core import SimpleDirectoryReader
from llama_index.embeddings.ollama import OllamaEmbedding
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.llms.ollama import Ollama

ollama_embedding = OllamaEmbedding(
model_name="mxbai-embed-large:latest",
base_url="http://10.6.6.240:11435",
)
llm = Ollama(model="deepseek-coder-v2:16b-lite-instruct-fp16", request_timeout=240.0, base_url='http://10.6.6.18:9090',
context_window=32000,
system_prompt="你是一个专业的架构师,接下来的问题请以架构师的角度回答,如果涉及到代码输出,则代码要充分利用异步非阻塞特性,注释丰富,多打印日志,容错性好,对外部输入进行充分校验。")
Settings.llm = llm
Settings.embed_model = ollama_embedding

documents = SimpleDirectoryReader(input_dir="代码目录", recursive=True, required_exts=['.扩展名']).load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query(
"这个项目都有什么功能?")

print(response)

```
RAG 说白了就是在你问的问题之前,用相似搜索来把 [和问题关键字近似的代码片段] 追加到你问题后面,在提示词里 [加几句话让模型参考追加的内容] ,前置步骤切分代码片段创建向量这个步骤容易切碎导致丢失代码。更有碰到宏观问题就歇逼的现象,比如上面例子的“这个项目”,近似搜索压根不知道你指的是哪些代码。

GraphRAG ( https://github.com/microsoft/graphrag )和 https://docs.llamaindex.ai/en/stable/examples/index_structs/knowledge_graph/Neo4jKGIndexDemo/ 又进了一步,用知识图谱的方式来找代码追加到上下文,在应对相对宏观的问题上有优势。比如“这个项目都有什么功能?”这种问题,对于“这些代码”可能给你找全一点,比如“下单流程有哪些步骤”可能把什么优惠券、会员积分、秒杀啥的都找出来,而不是仅仅搜索 order 相关的代码。
LeviMarvin
2024-07-18 09:20:49 +08:00
@Akagi201 我在本地部署了 ollma llama3 anything llm ,感觉不智能,而且他能添加 github 仓库竟然不能添加本地仓库
LeviMarvin
2024-07-18 09:33:42 +08:00
@Akagi201 我知道为啥不智能了,我只下载、添加了仓库、文档,没有把这些添加到 workspace ,我在试一下
twig
2024-07-19 19:05:58 +08:00
@Akagi201 我刚魔改了一番 AnythingLLM ,之后用 Docker 部署到了 Railway.app 。但是这家伙的文档解析不行,网页也出 bug ,PDF 也出 bug 。让我很崩溃。
twig
2024-07-19 19:06:57 +08:00
@LeviMarvin 可能是因为作为一个纯纯的 JS 项目,不好访问本地文件系统吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1056951

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX