FastMCP Godot Documentation RAG
项目简介
FastMCP Godot Documentation RAG 是一个基于检索增强生成(RAG)的命令行助手,用来查询和解读 Godot 引擎的官方文档。项目使用 Hugging Face 语义向量模型和 FAISS 构建向量数据库,再通过 FastMCP 注册工具,结合 DeepSeek Chat API 返回结构化回答。
核心流程
- 文档预处理
rst_to_markdown.py批量将官方.rst文档转换为结构化 Markdown,保留信号、表格和章节信息。markdown_split.py识别 Markdown 中的章节、表格、代码等内容类型,将其切分成适合 RAG 的 JSON 片段。
- 向量化与索引构建
embedding.py读取godot_docs/chunks.json,使用sentence-transformers/all-miniLM-L6-v2生成文本嵌入,并将结果写入本地 FAISS 索引与元数据文件。
- 检索与回答
rag_fastmcp.py加载本地向量库与元数据,注册search_godot_docs和rag_answer两个 FastMCP 工具,实现文档检索与结合 DeepSeek API 的问答。
目录结构
godot_docs/:存放转换后的 Markdown、切分 JSON、FAISS 索引等数据资产。classes/:原始.rst文档集合,可作为数据转换输入。rst_to_markdown.py:批量 rst→md 转换脚本。markdown_split.py:Markdown 智能切分脚本。embedding.py:向量化与索引构建脚本。rag_fastmcp.py:加载索引并提供 FastMCP 工具与命令行入口。
运行概览
- 准备数据:将 Godot
.rst文档放入classes/,执行rst_to_markdown.py输出到godot_docs/md_new/。 - 切分文档:运行
markdown_split.py生成结构化的godot_docs/chunks.json。 - 构建索引:执行
embedding.py产生godot_docs/faiss_db/index.faiss和metadata.pkl。 - 启动助手:配置
DEEPSEEK_API_KEY(或在代码中内置的演示密钥),运行rag_fastmcp.py打开命令行助手。
完成以上步骤后,即可通过 FastMCP 接口或命令行与本地 Godot 文档知识库进行交互式问答。