项目简介
Trigent 旨在为AI代理提供一个强大的后端服务,以便对GitHub议题进行大规模的检索增强生成(RAG)操作。它能够自动抓取GitHub仓库的议题和拉取请求,利用Mistral API生成语义嵌入,并将其存储在Qdrant向量数据库中。随后,Trigent 启动一个MCP服务器,向AI客户端暴露一系列工具,使AI能够执行智能搜索、相似性匹配和数据分析,从而实现高效的议题分流和管理。
主要功能点
- GitHub议题数据集成与增强:自动从指定的GitHub仓库获取议题和拉取请求,并使用Mistral API为内容生成语义嵌入和总结,丰富原始数据。
- MCP服务器提供AI工具:作为一个MCP服务器,Trigent 托管并提供以下工具,供LLM(大语言模型)客户端通过JSON-RPC协议调用:
- 'get_issue(number)':获取特定议题的详细信息。
- 'find_similar_issues(number)':根据语义相似性查找与某个议题相似的其他议题。
- 'find_similar_issues_by_text(text)':根据一段文本查找语义相似的议题。
- 'find_cross_referenced_issues(number)':查找与指定议题相互引用关联的议题。
- 'get_top_issues(sort_column)':根据评论数、参与度、更新时间等任意指标获取最热门的议题。
- 'add_recommendation(issue_number, ...)':向议题添加AI生成的推荐信息。
- 向量数据库支持:利用Qdrant向量数据库高效存储和检索语义嵌入,支持快速相似性搜索。
- 数据管理:提供命令行工具用于更新、清理仓库数据,并显示详尽的数据统计信息。
- 数据导出与可视化:支持将处理后的数据导出为CSV格式,生成可视化图表,甚至可以同步到GitHub Project Board。
安装步骤
-
安装 Trigent 工具: 在您的Python环境中执行以下命令安装 Trigent。
pip install -e . -
配置API密钥: 复制示例配置文件 'config.toml.example' 到 'config.toml',并在其中添加您的 Mistral API 密钥,以便生成语义嵌入和总结。
cp config.toml.example config.toml # 然后,用文本编辑器打开 config.toml 文件,添加或修改 Mistral API 密钥,例如: # [api] # mistral_api_key = "YOUR_MISTRAL_API_KEY_HERE" -
启动 Qdrant 向量数据库: Trigent 依赖 Qdrant 向量数据库来存储和检索议题的语义信息。请确保 Qdrant 容器正在运行,默认监听 '6333' 端口。
docker run -p 6333:6333 qdrant/qdrant -
设置 GitHub 仓库数据: 执行 'pull' 命令来抓取并处理您感兴趣的 GitHub 仓库的议题数据。将 'jupyterlab/jupyterlab' 替换为您自己的仓库名称。此步骤将下载议题、生成嵌入并存储到 Qdrant 中。
trigent pull jupyterlab/jupyterlab您也可以选择其他仓库,例如 'octocat/Spoon-Knife'。
服务器配置
MCP客户端需要配置 Trigent MCP 服务器的启动命令。以下是标准的 JSON 格式配置示例,您需要将其提供给您的 MCP 客户端:
{ "server_name": "Trigent GitHub Issue Server", "command": ["python", "-m", "trigent"], "args": ["serve", "YOUR_REPO_NAME", "--host", "localhost", "--port", "8000"], "description": "连接到Trigent MCP服务器,以对指定GitHub仓库的议题进行智能分析和分流。请确保您已通过 'trigent pull' 命令为 'YOUR_REPO_NAME' 仓库准备好数据。", "parameters_info": { "YOUR_REPO_NAME": "**必填**。要服务的GitHub仓库名称,格式为 'owner/repo',例如 'jupyterlab/jupyterlab'。此参数决定了MCP服务器将加载哪个仓库的数据。在客户端连接后,所有工具调用将默认操作此仓库数据。", "--host": "可选。MCP服务器绑定的主机地址,默认为 'localhost'。您可以使用 '0.0.0.0' 允许外部访问。", "--port": "可选。MCP服务器监听的端口号,默认为 '8000'。请确保此端口未被操作系统或防火墙占用。" } }
重要提示:在上述配置中,务必将 'YOUR_REPO_NAME' 替换为您在 'trigent pull' 步骤中已经处理过的具体 GitHub 仓库名称(例如 'jupyterlab/jupyterlab')。MCP 客户端将使用此配置信息来启动 Trigent 服务器并建立连接。
基本使用方法
-
启动 MCP 服务器: 在终端中运行以下命令,启动 MCP 服务器。请将 'YOUR_REPO_NAME' 替换为您已经设置好的 GitHub 仓库名称。
trigent serve YOUR_REPO_NAME默认情况下,服务器将在 'http://localhost:8000' 监听连接。服务器启动后,会在终端中显示相关日志信息,指示其已准备好接收请求。
-
通过 MCP 客户端连接: 使用您选择的 MCP 客户端(例如,一个LLM应用或MCP开发工具)根据上方的“服务器配置”信息连接到 Trigent 服务器。
-
调用 MCP 工具: 一旦连接建立,您的 MCP 客户端即可通过发送 JSON-RPC 请求来调用 Trigent 提供的工具。
-
示例:获取特定议题摘要: 客户端可以发送一个 JSON-RPC 请求来调用 'get_issue' 工具,以获取议题 '#123' 的摘要信息。
{ "jsonrpc": "2.0", "method": "get_issue", "params": { "issue_number": 123 }, "id": 1 }服务器将返回议题的摘要、对话内容、推荐信息和状态等。
-
示例:查找相似议题: 客户端可以调用 'find_similar_issues_by_text' 工具,根据一段文本查找相似议题。
{ "jsonrpc": "2.0", "method": "find_similar_issues_by_text", "params": { "text": "How to fix broken kernels in JupyterLab?", "limit": 5 }, "id": 2 }服务器将返回与给定文本语义相似的最多5个议题。
-
-
管理和更新数据: 为了保持数据最新,您可以定期运行 'update' 命令:
trigent update YOUR_REPO_NAME此命令将抓取自上次更新以来有变动的议题,并重新进行语义嵌入和总结。
信息
分类
开发者工具