面向人形机器人现场问答场景的 RAG 服务。项目将本地文档解析、中文文本切分、向量化、Elasticsearch 混合检索和大模型生成串联起来,为机器人提供知识库问答、场景问答、简单意图识别和知识库后台管理能力。
功能特性:
- RAG 问答:根据用户问题从知识库检索上下文,再调用大模型生成简洁回答。
- 多轮改写:有历史对话时,会先将当前问题改写为适合独立检索的问题。
- 混合检索:Elasticsearch 同时执行 BM25 文本检索和 dense vector KNN 检索,并在 Python 侧使用 RRF 融合排序。
- 文档入库:支持上传并解析 `pdf`、`docx`、`doc`、`pptx`、`xlsx` 等文档,同名文件会覆盖旧切片。
- 知识库管理:提供文档列表、上传、删除接口,并内置简易管理页面。
- 机器人意图字段:对“问路”“请求带路”“问天气”“问当前时间”“报案报警”等类型做结构化解析,返回地点、日期、动作等字段。
- OpenAI 兼容 LLM:通过 `openai.AsyncOpenAI` 调用 vLLM 或其他 OpenAI API 兼容服务。