使用说明
MCP配方系统
带有本地MCP服务器(食品储藏室、食谱)和Ollama的食谱助手。通过CLI或网络聊天UI使用。
先决条件
- Python 3.10+
- 奥拉玛 使用模型在本地运行(例如。
llama3.1) - (可选)安装deps:
pip install -r requirements.txt
运行后端(HTTP API+前端)
从 项目根目录:
# Windows
set PYTHONPATH=%CD%
python -m uvicorn src.chat_api:app --reload --host 0.0.0.0 --port 8000
# Linux / macOS
export PYTHONPATH=.
python -m uvicorn src.chat_api:app --reload --host 0.0.0.0 --port 8000
- 基本URL:
http://localhost:8000 - 前端: 打开http://localhost:8000/在浏览器中(由同一进程提供服务)。
- API
POST http://localhost:8000/api/chat
运行CLI(无HTTP)
# From project root
set PYTHONPATH=%CD%
python -m src.olama_mcp_host
然后在以下位置键入消息 You: 提示。清空退出行。
聊天API
端点: POST /api/chat
请求: JSON正文,包含完整的对话历史记录(用户和助理消息)。后端添加系统提示并运行一个助手回合(包括工具调用)。
{
"messages": [
{ "role": "user", "content": "List all pantry items" },
{ "role": "assistant", "content": "Your pantry has …" },
{ "role": "user", "content": "Add 2 cans of chickpeas" }
]
}
答复: 带有新助手回复的非流式JSON。
{
"content": "I've added 2 cans of chickpeas to your pantry."
}
- 流动: 不。后端使用Ollama
stream: false. - 错误: 一旦出现故障(例如MCP或Ollama停机),API将返回
502带着一个detail弦。
前端
- 地点:
frontend/index.html(单个文件,无构建)。 - 服务地点:
/当后端正在运行时(同源)。 - API基础URL: 默认情况下,页面使用相对URL(
/api).要指向另一台主机,请设置window.CHAT_API_BASE加载前(例如。https://api.example.com)或者使用注入它的构建步骤。
日志记录(工具调用透明度)
当LLM调用工具时,每次调用都会记录在 信息 级别:
- tool_call –工具名称和参数(例如。
pantry_upsert_items,recipes_search). - tool_result –工具名称和结果的简短预览(如果较长,则截断)。
日志将转到stderr。运行时 命令行界面,主机在启动时配置日志记录。运行时 API (uvicorn),该应用程序在启动时配置日志记录,以便在服务器控制台中显示相同的行。使用这些日志可以查看每个请求使用了哪些工具,而无需更改用户在聊天中看到的内容。
数据
- 配方和食品储藏室数据存储在
data/recipes.db(SQLite)。MCP服务器在第一次运行时创建它。
