使用说明
Godspeed RAG聊天机器人
使用 Godspeed框架,旨在使用最新的Godspeed Systems文档智能地响应查询。它利用嵌入和本地FAISS矢量数据库来提供快速、相关和源可追溯的答案。
主要特点
1. 查询处理通过 mcp.handle-query 工具
- 目的:负责接收用户查询并返回相关上下文和来源的核心组件。
- 原理:
- 托管于
stdio并自动连接到 萨尔蒂 助理。 - 当Saarthi中的“Godspeed模式”被激活时,用户查询会被转发到此工具。
- 该工具在FAISS矢量存储中搜索相关内容并返回:
- 提取的上下文
- 源文档路径
- 托管于
2. GitHub文档摄取
- 源: Godspeed文档GitHub回购
- 原理:
- 已配置回购URL和分支。
- 摄入脚本通过GitHub API和SHA哈希比较检查差异,以确定修改的文件。
- 使用Google Gemini嵌入模型对新的或修改过的文件进行分块和嵌入,然后将其转换为FAISS。
3. FAISS矢量库(本地)
- 为什么Faiss:
- FAISS快速高效,特别是在本地存储方面。
- 与远程矢量数据库相比,最大限度地减少了延迟。
- 运营:
- 查找、搜索、删除向量
- 将文档路径存储为
doc_id用于高效跟踪文件更改
4. 用户查询HTTP端点
- 通过HTTP接受用户查询,并实时返回上下文和结果。
- 可用于测试聊天机器人或将其集成到前端应用程序中。
5. 文档上传HTTP端点
- 接受原始文档文件以供摄取。
- 使用SHA比较来避免冗余向量操作。
6. LLM配置HTTP终结点
- 允许动态配置嵌入/LLM密钥,以实现更好的模块化。
- 目前支持 谷歌Gemini嵌入.
7. 回购同步的Cron作业
- 频率:每分钟检查一次。
- 同步触发器:检测自上次更新以来是否已过去24小时。
- 行动:如果一天过去了,它会重新获取GitHub数据并重新接收更改的文件。
8. API密钥管理通过 mcp.handle-api-key
- 整合:API键输入可以通过 萨尔蒂 通过MCP层。
- 确保嵌入模型的密钥注入安全灵活。
🧱 建筑
┌────────────┐
│ Saarthi │
└─────┬──────┘
│
▼
┌────────────────────┐
│ mcp.handle-query │◄────┐
└────────┬───────────┘ │
│ │
┌────────────────────▼────────────┐ │
│ FAISS Vector Store (Local) │ │
└─────────────────────────────────┘ │
▲ │
┌──────────────────────┴────────────┐ │
│ ingest_and_update_docs.ts │◄───┘
└────────────────┬──────────────────┘
│
┌─────────────────▼───────────────────────┐
│ GitHub Repo: gs-documentation │
└─────────────────────────────────────────┘
🚀 运行项目
干净启动(Windows)
start_clean.bat
干净启动(Linux/macOS)
./start_clean.sh
两个脚本:
- 杀死端口10947上的任何进程
- 跑
godspeed serve启动后端
局限性
嵌入模型限制
- 目前仅支持 谷歌Gemini嵌入
- 其他型号如 OpenAI, 凝聚等尚未集成
当地公平指数
- 优点:快速高效
- 缺点:不适用于分布式或云原生架构
单一文档来源
- 目前绑定到特定的GitHub仓库(
gs-documentation) - 没有对多个源或域的内置支持
无GUI/Web界面
- 通过CLI、MCP或HTTP端点进行操作
- 没有与机器人交互的默认前端
🧪 测试场景
- 通过Saarthi和
mcp.handle-query - 通过GitHub同步(cron作业)更新文档
- 使用SHA和GitHub diffs进行文件级更改检测
- 通过HTTP端点接收文档
🧩 未来改进
- 🧠 嵌入模型选择和模块化配置
- 📊 改进日志记录和使用情况分析
