Git仓库智能助手

Git Assist AI 是一个结合了RAG和代理工作流的智能编码助手,帮助用户探索、理解和调试Git仓库,提供文档查询和深度代码检查功能。

  • by bandisumanth1811
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bandisumanth1811/Hybrid-version-of-RAG-Simple-and-Agentic-using-MCP

使用说明

使用MCP的RAG Simple和Agent的混合版本

Git辅助AI

Git辅助AI 是一个功能强大的代理编码助手,可帮助您探索、理解和调试git存储库。它结合了 RAG(检索增强生成) 对于文档查询,请使用 代理工作流 (由Google Gemini和MCP提供支持)用于深度代码检查。

特性

  • 双模路由:自动将查询路由到最佳策略:
    • 简单模式(RAG):使用ChromaDB根据文档回答“操作方法”和概念问题。
    • 能动模式:使用自定义 模型上下文协议(MCP) 工具服务器,用于搜索代码、读取文件、列出符号,并获取复杂任务的git错误信息,如“X在哪里定义?”或“解释此文件”。
  • 现代用户界面:内置 溪流 用于响应式、基于网络的聊天界面。
  • 检查员小组:
    • 证据:显示检索到的原始文档块(RAG)。
    • 追踪:显示代理的分步工具执行(代理)。
    • 调试:显示内部路由逻辑和日志。
  • 库管理:轻松克隆并在本地或远程git存储库之间切换。

建筑

  • 前端:Streamlit(Python)
  • LLM:谷歌双子座(通过 google-genai SDK)
  • 矢量数据库:ChromaDB
  • 代理协议:模型上下文协议(MCP)-自定义FastMCP实现
  • 后端核心:
    • Router:基于LLM的智能查询分类。
    • AgenticClient:管理代理循环和MCP连接。
    • SimpleRAG:处理文档索引和检索。
    • ToolServer:为代理提供文件系统和git访问权限。

入门指南

先决条件

  • Python 3.10+
  • Git已安装在您的系统上。
  • A. Google Gemini API密钥 (一个在 aistudio.google.com).

安装

  1. 克隆仓库:

    git clone <your-repo-url>
    cd Git_Assist
    
  2. 创建虚拟环境 (推荐):

    python -m venv venv
    # Windows
    .\venv\Scripts\activate
    # Mac/Linux
    source venv/bin/activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 配置环境: 创建一个 .env 根目录中的文件:

    GEMINI_API_KEY=your_actual_api_key_here
    

运行应用程序

使用主入口点运行应用程序:

python main.py

或者直接通过Streamlit:

streamlit run ui/streamlit_app.py

应用程序将在默认的web浏览器中打开(通常在 http://localhost:8501).

使用指南

  1. 选择/克隆回购:

    • 使用侧边栏 克隆 通过URL创建新的存储库。
    • 从下拉列表中选择一个现有存储库。
  2. 索引文档 (可选但推荐):

    • 点击“索引文档”进行摄取 .md 和 .txt 将文件存入矢量数据库。这为“简单”RAG模式提供了动力。
  3. 提问:

    • 概念性:“这个项目是关于什么的?”,“如何安装它?”-> 使用RAG.
    • 代码探索“在哪里 Router 类定义?“,”解释 core/agentic_client.py“,”修复主循环中的错误“-> 使用代理工具.
  4. 检查:

    • 检查 追踪 侧边栏中的选项卡,以查看代理读取了哪些文件以及它调用了哪些工具。

项目结构和文件详细信息

根目录

  • main.py:入口点脚本。使用 subprocess 启动Streamlit应用程序(ui/streamlit_app.py).
  • requirements.txt:列出运行项目所需的所有Python依赖项(例如。, streamlit, google-genai, mcp, chromadb).
  • .env:环境变量的配置文件(存储您的 GEMINI_API_KEY).
  • DIAGRAMS.md:包含可视化系统架构、用户流、类结构和序列图的Mermaid.js图表。

core/ (后端逻辑)

  • agentic_client.py:代理工作流程的大脑。它管理聊天记录,连接到 ToolServer 通过MCP(stdio),将MCP工具转换为Gemini函数声明,并执行代理循环(思想->行动->观察)。
  • llm.py:围绕Google GenAI SDK的包装器。它处理API身份验证,并为生成内容和嵌入提供统一的接口。
  • repo_manager.py:处理存储库的文件系统操作。它可以克隆远程git URL,导入本地文件夹,并遍历文件以索引文档。
  • router.py:智能路由模块。它使用LLM提示将用户查询分类为“简单”(一般/概念)或“代理”(代码探索/调试)。
  • simple_rag.py:使用ChromaDB实现RAG(检索增强生成)管道。它处理摄取文档块和检索简单查询的相关上下文。

server/ (MCP工具)

  • tool_server.py:运行FastMCP服务器的独立脚本。它暴露了以下工具 search_code, read_file_segment, list_files,以及 list_symbols 代理可以调用该文件系统与文件系统进行交互。

ui/ (前端)

  • streamlit_app.py:使用Streamlit构建的主用户界面。它处理:
    • 侧边栏:回购选择、克隆和检查器选项卡(证据/跟踪/调试)。
    • 聊天:呈现聊天历史记录并处理用户输入。
    • 状态管理:协调对路由器、代理和RAG后端的调用。

data/

  • repo/:克隆存储库的默认位置。
  • chroma_db/:ChromaDB矢量嵌入的持久存储。

技术栈

  • 语言python
  • Web框架:流光灯
  • AI模型:Gemini 1.5 Flash/Pro
  • 嵌入:Gemini文本嵌入004
  • 工具:MCP(模型上下文协议)