使用模型上下文协议(MCP)将本地LLM与实时网络搜索功能及数据库查询相结合的强大演示,具有现代的网页界面和持久的对话。
Ollama Chat with MCP展示了如何通过工具扩展本地语言模型的功能。该应用程序结合了通过Ollama运行的本地LLM的力量、最新的网络搜索功能以及数据库查询,所有这些都由一个强大的后端和用户友好的React前端管理。对话历史记录使用MongoDB进行存储。
项目包含几个关键组件:
这种架构展示了MCP如何使本地模型访问外部工具和数据源,显著增强其能力,现在有了更可扩展和功能丰富的设置。
克隆仓库:
git clone https://github.com/redbuilding/ollama-chat-with-mcp.git
cd ollama-chat-with-mcp
设置后端:
cd backend
pip install -r requirements.txt
backend目录下创建一个.env文件。这是后端及其管理的MCP服务查找环境变量的地方:
# 对于网络搜索(server_search.py)
SERPER_API_KEY=your_serper_api_key_here
# 对于MongoDB(main.py)
MONGODB_URI=mongodb://localhost:27017/
MONGODB_DATABASE_NAME=mcp_chat_db
# 对于MySQL数据库查询(server_mysql.py)
DB_HOST=localhost
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
设置前端:
cd ../frontend
(如果你在backend/中,否则从项目根目录导航:cd frontend)npm install
# 或
# yarn install
确保Ollama已安装且有可用模型:
应用程序可能默认使用特定模型(例如,llama3.1)。拉取你想要的模型:
ollama pull llama3.1
# 或你喜欢的模型如llama3, mistral等
如果支持,你可以在UI中选择模型,或者在后端的.env文件中配置默认值。
确保前置条件正在运行:
.env中提供的凭据访问。启动后端服务器:
导航到backend目录并运行FastAPI应用:
# 从后端目录
uvicorn main:app --reload --port 8000
后端API通常可在http://localhost:8000访问。
FastAPI应用会自动启动并管理MCP服务(网络搜索和SQL查询)作为后台进程,无需单独运行server_search.py或server_mysql.py。
启动前端开发服务器:
导航到frontend目录并运行:
npm run dev
# 或
# yarn dev
网页界面通常可在http://localhost:5173(或Vite指定的其他端口)访问。
http://localhost:5173)。原始的chat_client.py(终端)和chat_frontend.py(Gradio)仍然存在于仓库中,但不属于主要重构的应用程序。它们未被维护,并可能无法正确工作,将在未来的更新中被淘汰。
main.py)处理请求:
server_search.py逻辑用于网络搜索,server_mysql.py逻辑用于SQL执行)通信。backend/main.py中的搜索结果数量。backend/main.py中的MAX_TABLES_FOR_SCHEMA_CONTEXT以控制发送给LLM的表模式数量。欢迎贡献!请随意提交Pull Request。
本项目根据MIT许可证发布 - 查看LICENSE文件了解详情。