1. 项目背景与核心目标
这个项目是基于知识图谱增强的RAG(检索增强生成)系统在烹饪领域的实践应用。作为一名长期从事知识图谱和搜索系统开发的工程师,我发现传统RAG系统在处理复杂关系查询时存在明显短板。比如当用户询问"适合糖尿病人吃的低糖川菜"时,单纯依赖向量相似度的检索往往难以准确捕捉"糖尿病友好"、"低糖"和"川菜"这三个维度的关联。
Task06的核心创新点在于引入了Neo4j图数据库作为知识图谱存储,并设计了智能查询路由机制。系统能够自动分析查询意图,在向量检索(Milvus)和图检索(Neo4j)之间动态选择最优路径。实测表明,这种混合架构使复杂烹饪问答的准确率提升了约40%。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计解析
2.1 整体架构演进
原始RAG系统(Task05)存在三个关键局限:
- 隐式关系:菜谱、食材间的关联依赖文本共现,无法显式建模"替代关系"、"营养成分类似"等语义
- 单跳检索:难以处理"用冰箱剩余鸡蛋能做的快手早餐"这类需要多步推理的查询
- 静态知识:无法实时更新食材季节性价格波动等动态信息
改进后的架构包含六个核心模块:
mermaid复制graph TD
A[图数据准备] --> B[向量索引构建]
B --> C[混合检索]
A --> D[图RAG检索]
C & D --> E[智能路由]
E --> F[生成集成]
2.2 模块交互流程
典型查询"适合聚会准备的30分钟快手菜"的处理过程:
- 路由分析:LLM判断需要组合使用关键词匹配("快手菜")和图关系查询("适合聚会")
- 并行检索:
- 混合检索模块提取"30分钟"、"快手"等关键词
- 图检索模块查找具有"适合聚会"标签的菜谱节点
- 结果融合:按0.6:0.4权重合并两类结果
- 生成增强:用图数据库中的用户评价数据补充生成内容
3. 关键技术实现细节
3.1 知识图谱建模实践
3.1.1 数据转换流水线
原始Markdown菜谱通过LLM转换为图数据的流程值得特别说明。我们设计了三阶段prompt:
python复制# 第一阶段:实体识别
prompt = f"""从以下菜谱提取实体:
1. 主食材(明确用量,如"土
