本文件由AI生成,仅供参考。 本项目仅供个人学习使用。
下厨房食谱 MCP 服务
一个基于 Model Context Protocol (MCP) 的食谱查询服务,使用向量数据库 Milvus 和 LangChain 实现智能食谱检索。
功能特性
- 🍳 基于语义搜索的食谱查询
- 🔍 支持菜名和食材搜索
- 📚 使用 Milvus 向量数据库存储食谱数据
- 🤖 使用 HuggingFace 多语言嵌入模型
技术栈
- FastMCP: MCP 服务器框架
- LangChain: LLM 应用开发框架
- Milvus: 向量数据库
- HuggingFace Embeddings: 多语言嵌入模型
安装步骤
- 安装依赖
pip install -r requirements.txt- 配置环境变量
创建 .env 文件(如果需要配置其他环境变量):
# 示例环境变量配置
DASHSCOPE_API_KEY="xxx"- 启动 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 忽略文件数据初始化
首次运行时,程序会自动:
- 检查 Milvus 中是否存在
xcf_recipe集合 - 如果不存在,从 JSON 文件加载数据并创建向量索引
- 数据会分批处理(每批 10000 条)以提高效率
开发说明
- 项目使用
sentence-transformers/distiluse-base-multilingual-cased-v2作为嵌入模型 - 使用 IVF_FLAT 索引和 COSINE 相似度度量
- 默认返回最相似的一条食谱(k=1)
许可证
本项目采用 MIT 许可证 - 详见 LICENSE 文件
贡献
欢迎提交 Issue 和 Pull Request!
