V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LeviMarvin
V2EX  ›  程序员

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

  •  
  •   LeviMarvin ·
    LeviMarvin · 166 天前 · 3093 次点击
    这是一个创建于 166 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    10 条回复    2024-07-19 19:06:57 +08:00
    ztm0929
        1
    ztm0929  
       166 天前
    同问,据说 GitHub Copilot Enterprise 也就是企业版可以实现完整仓库的理解。一直在找平替。
    SolarAA
        2
    SolarAA  
       166 天前
    Akagi201
        3
    Akagi201  
       166 天前
    AnythingLLM, 其实个人感觉非内网项目, 开源项目的话, 直接贴出代码上文, 问 gemini 就能回答的很好
    lee88688
        5
    lee88688  
       165 天前
    @SolarAA 我用过 cursor ,他对整个项目的理解其实是本地对项目代码创建向量索引,问问题的时候类似 RAG 先搜索将搜索结果放入 LLM 上下文中。
    shuimugan
        6
    shuimugan  
       165 天前
    现在大模型支持的上下文也就百万 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
        7
    LeviMarvin  
    OP
       161 天前
    @Akagi201 我在本地部署了 ollma llama3 anything llm ,感觉不智能,而且他能添加 github 仓库竟然不能添加本地仓库
    LeviMarvin
        8
    LeviMarvin  
    OP
       161 天前
    @Akagi201 我知道为啥不智能了,我只下载、添加了仓库、文档,没有把这些添加到 workspace ,我在试一下
    twig
        9
    twig  
       159 天前
    @Akagi201 我刚魔改了一番 AnythingLLM ,之后用 Docker 部署到了 Railway.app 。但是这家伙的文档解析不行,网页也出 bug ,PDF 也出 bug 。让我很崩溃。
    twig
        10
    twig  
       159 天前
    @LeviMarvin 可能是因为作为一个纯纯的 JS 项目,不好访问本地文件系统吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5513 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:21 · PVG 16:21 · LAX 00:21 · JFK 03:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.