使用说明
Qwen 2.5 MCP代理
一个使用Qwen 2.5(通过Ollama)的本地AI代理,可以自主使用工具回答用户查询。代理根据用户问题自动决定何时使用工具(网络搜索、arXiv、YouTube等),执行这些工具,并提供智能响应。
🎯 特性
- 自主工具选择:代理自动决定使用哪些工具
- 多工具连锁:可以按顺序使用多个工具
- 7强大的工具:
- 🔍 网络搜索(DuckDuckGo)
- 📰 新闻(谷歌新闻RSS)
- 📄 arXiv搜索与下载
- 📑 PDF摘要
- 🎥 YouTube搜索和下载
- 对话记忆:在转弯时保持上下文
- 错误处理:优雅的失败和有用的信息
- Web用户界面:可选Gradio界面,便于交互
- 微调支持:准备好使用LoRA/QLoRA微调脚本来定制模型
📁 项目结构
qwen-mcp-agent/
├── main.py # Agent + tool implementations
├── web_ui.py # Gradio interface (optional)
├── fine_tune.py # Fine-tuning script (LoRA/QLoRA)
├── requirements.txt
├── config.json
├── README.md
├── FINE_TUNING.md # Fine-tuning guide
├── training_data/ # Training data directory
│ └── example_training_data.json
└── downloads/ # For PDFs, videos
🚀 快速开始
先决条件
- 安装Ollama: https://ollama.ai
- 启动Ollama:
ollama serve - 拉动Qwen 2.5型号:
ollama pull qwen2.5:7b
安装
-
克隆或导航到项目目录:
cd qwen-mcp-agent -
安装依赖项:
pip install -r requirements.txt
用法
命令行接口命令模式
python main.py
选项:
--model MODEL:指定Ollama模型(默认值:qwen2.5:7b)--quiet:禁用详细日志记录
Web UI模式
python web_ui.py
然后打开浏览器 http://localhost:7860
🔧 可用工具
1.网络搜索
使用DuckDuckGo搜索网络。
示例:“在网上搜索量子计算”
2.获取新闻
从谷歌新闻RSS获取最新新闻文章。
示例:“最新的人工智能新闻是什么?”
3.arXiv搜索
搜索arXiv的研究论文。
示例:“查找有关变压器的最新论文”
4.arXiv下载
按ID从arXiv下载PDF文件。
示例:“下载arXiv论文2301.12345”
5.PDF摘要
从PDF文件中提取文本并提供摘要。
示例:“在下载/paper.PDF中总结PDF”
6.YouTube搜索
在YouTube上搜索视频。
示例:“在YouTube上搜索机器学习教程”
7.YouTube下载
通过URL从YouTube下载视频。
示例:“下载此YouTube视频:https://youtube.com/watch?v=..."
🧪 测试用例
尝试以下查询以测试代理:
-
“查找有关变压器的最新论文” → 应使用
arxiv_search -
“最新的人工智能新闻是什么?” → 应使用
get_news -
“在YouTube上搜索机器学习教程” → 应使用
youtube_search -
“下载arXiv论文2301.12345并对其进行总结” → 应使用
arxiv_download+pdf_summary -
“在网上搜索量子计算” → 应使用
web_search
💡 运作原理
- 用户提问 → 代理收到查询
- 代理分析 → Qwen 2.5模型决定使用哪些工具
- 工具执行 → 使用适当的参数调用选定的工具
- 已处理结果 → 工具结果反馈给代理
- 最终答案 → Agent综合信息并做出响应
代理可以自动将多个工具链接在一起。例如,如果你要求“下载并总结一篇论文”,它将:
- 在arXiv上搜索论文
- 下载PDF
- 从PDF中提取文本
- 提供摘要
🛠️ 配置
编辑 config.json 自定义:
- 默认模型
- 详细模式
- 最大迭代次数
- 工具默认值
🎓 对…微调
想为您的特定用例定制模型吗?使用LoRA/QLoRA对其进行微调!
看 FINE_TUNING.md 完整的指南。
快速启动:
# Install fine-tuning dependencies
pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
pip install trl peft transformers datasets accelerate bitsandbytes
# Prepare your training data (see training_data/example_training_data.json)
# Run fine-tuning
python fine_tune.py --data training_data/my_data.json --epochs 3
📝 示例用法
CLI示例
$ python main.py
============================================================
Qwen 2.5 MCP Agent - Ready!
============================================================
Type your questions. The agent will automatically use tools.
Type 'quit' or 'exit' to end.
You: What's the latest news about AI?
Agent: [Agent searches news, processes results, and responds]
You: Find papers about transformers
Agent: [Agent searches arXiv, lists papers, and responds]
Web UI示例
- 发射
python web_ui.py - 点击“初始化代理”
- 在聊天中键入您的问题
- 代理自动使用工具并做出响应
🔍 故障排除
Ollama连接错误
- 确保Ollama正在跑步:
ollama serve - 检查Ollama是否可用:
ollama list
未找到型号
- 拉动模型:
ollama pull qwen2.5:7b - 查看可用型号:
ollama list
工具执行错误
- 检查网络工具的互联网连接
- 验证PDF操作的文件路径
- 确保YouTube网址有效
📦 依赖项
ollama-Ollama Python客户端arxiv-arXiv API客户端feedparser-RSS源解析器beautifulsoup4-HTML解析PyPDF2-PDF文本提取yt-dlp-YouTube下载器duckduckgo-search-网络搜索gradio-Web UI框架
🎯 成功标准
✅ Agent在没有明确指示的情况下自动使用工具
✅ 所有7个工具均正常工作
✅ 处理多步骤查询(搜索→ 下载→ 总结)
✅ 干净的错误处理
✅ 与just合作 agent.chat("your question")
📄 许可证
该项目是开源的,可用于教育目的。
🤝 贡献
您可以随时提交问题、分叉存储库,并为任何改进创建pull请求。
