一个基于Rust的强大聊天机器人框架,支持多服务器和工具集成能力。
MCP(Model Context Protocol)是一种灵活的协议,旨在通过提供结构化的上下文和工具集成能力来增强AI模型之间的互动。该协议使以下成为可能:
上下文管理
工具集成
服务器架构
协议特性
初始化
操作
清理
该项目利用了几个强大的AI和NLP工具:
git clone https://github.com/arksong/mcp-chatbot.git
cd mcp-chatbot
cargo build --release
.env文件:LLM_API_KEY=your_ollama_key
OPENAI_API_KEY=your_openai_key # 可选
在src/servers_config.json中配置服务器
在mcp_prompts.yaml中自定义提示
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull llama3.2:latest
ollama serve
cargo run
export OPENAI_API_KEY=your_api_key
cargo run
/ai命令切换到OpenAI# 使用提供的设置脚本
./scripts/setup_qdrant.sh
# 或手动使用Docker
docker run -d \
--name qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v "$(pwd)/qdrant_storage:/qdrant/storage" \
qdrant/qdrant:latest
# 在聊天机器人中使用/rag-add命令
/rag-add
# 然后输入您的文档文本
# 使用/rag-search命令
/rag-search
# 输入您的搜索查询
/rag-info
# 停止Qdrant容器
docker stop qdrant
# 启动Qdrant容器
docker start qdrant
# 查看Qdrant日志
docker logs qdrant
# 移除Qdrant容器(数据将在qdrant_storage中保存)
docker rm qdrant
注意:Qdrant数据保存在./qdrant_storage目录中,该目录作为卷挂载在Docker容器中。这确保即使移除了容器,矢量数据仍然完好无损。
/voice
说出您的消息(按Enter键停止录音)
转录的文字将被当作普通消息处理
/help - 显示帮助菜单/clear - 清除终端屏幕/usage - 显示使用信息/exit - 退出程序/servers - 列出可用的MCP服务器/tools - 列出可用的工具/resources - 列出可用的资源/debug - 切换调试日志/ai - 在AI提供商之间切换/rag-add - 向RAG数据库添加新文档/rag-search - 搜索相似文档/rag-info - 显示RAG数据库信息/voice - 开始语音输入(按Enter键停止录音){"tool": "memory_set", "arguments": {"key": "name", "value": "John"}}
{"tool": "memory_get", "arguments": {"key": "name"}}
{"tool": "sqlite_create_table", "arguments": {"name": "users", "columns": [{"name": "id", "type": "INTEGER"}]}}
{"tool": "sqlite_query", "arguments": {"query": "SELECT * FROM users"}}
{"tool": "file_write", "arguments": {"path": "test.txt", "content": "Hello"}}
{"tool": "file_read", "arguments": {"path": "test.txt"}}
mcp-chatbot/
├── src/
│ ├── main.rs # 主应用程序入口
│ ├── llm_client.rs # LLM客户端实现
│ ├── mcp_server.rs # MCP服务器核心
│ ├── protocol.rs # 协议定义
│ ├── sqlite_server.rs # SQLite服务器实现
│ ├── stdio_server.rs # 标准I/O服务器
│ ├── rag_server.rs # RAG服务器实现
│ ├── whisper_server.rs # Whisper服务器实现
│ └── utils.rs # 实用函数
├── tests/
│ ├── sqlite_test.rs # SQLite测试
│ └── rag_server_test.rs # RAG服务器测试
├── Cargo.toml # 项目依赖
├── mcp_prompts.yaml # 系统提示配置
└── README.md # 项目文档
欢迎贡献!请随意提交Pull Request。
git checkout -b feature/amazing-feature)git commit -m '添加一些惊人的功能')git push origin feature/amazing-feature)此项目采用MIT许可证 - 详情见LICENSE文件。