智能食谱检索服务

一个基于Model Context Protocol (MCP)的智能食谱查询服务,使用向量数据库Milvus和LangChain实现语义搜索,支持菜名和食材搜索。

  • by TheSecondStep
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 TheSecondStep/xcf_recipe

使用说明

本文件由AI生成,仅供参考。 本项目仅供个人学习使用。

下厨房食谱 MCP 服务

一个基于 Model Context Protocol (MCP) 的食谱查询服务,使用向量数据库 Milvus 和 LangChain 实现智能食谱检索。

功能特性

  • 🍳 基于语义搜索的食谱查询
  • 🔍 支持菜名和食材搜索
  • 📚 使用 Milvus 向量数据库存储食谱数据
  • 🤖 使用 HuggingFace 多语言嵌入模型

技术栈

  • FastMCP: MCP 服务器框架
  • LangChain: LLM 应用开发框架
  • Milvus: 向量数据库
  • HuggingFace Embeddings: 多语言嵌入模型

安装步骤

  1. 安装依赖
pip install -r requirements.txt
  1. 配置环境变量

创建 .env 文件(如果需要配置其他环境变量):

# 示例环境变量配置
DASHSCOPE_API_KEY="xxx"
  1. 启动 Milvus 服务

确保 Milvus standalone数据库正在运行

使用方法

运行 MCP 服务器

python xcf_recipe.py

服务器将在端口 8002 上运行。

API 接口

get_xcf_recipe

根据查询词返回相关食谱。

参数:

  • query (str): 菜名或食材

返回:

{
  "recipe_name": "食谱名称",
  "ingredients": "食材列表",
  "instructions": "制作步骤"
}

项目结构

xcf_recipe/
├── xcf_recipe.py              # 主程序文件
├── recipe_corpus_filtered.json # 食谱数据集
├── requirements.txt            # Python 依赖
├── README.md                  # 项目说明
├── LICENSE                    # MIT 许可证
└── .gitignore                 # Git 忽略文件

数据初始化

首次运行时,程序会自动:

  1. 检查 Milvus 中是否存在 xcf_recipe 集合
  2. 如果不存在,从 JSON 文件加载数据并创建向量索引
  3. 数据会分批处理(每批 10000 条)以提高效率

开发说明

  • 项目使用 sentence-transformers/distiluse-base-multilingual-cased-v2 作为嵌入模型
  • 使用 IVF_FLAT 索引和 COSINE 相似度度量
  • 默认返回最相似的一条食谱(k=1)

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

贡献

欢迎提交 Issue 和 Pull Request!