# AI模型接入快速开始 ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements-ai.txt ``` ### 2. 配置环境变量 复制 `.env.ai.example` 到 `.env` 并填入你的配置: ```bash cp .env.ai.example .env ``` 编辑 `.env` 文件: ```env # 机器人配置 BOT_APPID=你的机器人APPID BOT_SECRET=你的机器人SECRET # AI配置 AI_PROVIDER=openai # 可选: openai, anthropic, deepseek, qwen AI_MODEL=gpt-4 AI_API_KEY=你的API密钥 AI_API_BASE=https://api.openai.com/v1 # 可选 ``` ### 3. 启动机器人 ```bash python main.py ``` 或使用启动脚本: ```bash # Windows start.bat # Linux/Mac ./start.sh ``` ## 📚 功能说明 ### ✅ 已实现功能 1. **多模型支持** - OpenAI (GPT-4, GPT-3.5等) - Anthropic Claude - DeepSeek - Qwen (通义千问) 2. **人格系统** - 预设3种人格:默认助手、技术专家、创意伙伴 - 支持自定义人格 - 可动态切换 3. **记忆系统** - 短期记忆:最近20条对话,30分钟过期 - 长期记忆:重要对话持久化存储 - RAG检索:基于向量相似度的智能检索 4. **长任务处理** - 多步骤任务分解 - 进度跟踪 - 任务暂停/恢复/取消 5. **Skills插件系统** - 可扩展的技能插件 - 示例:天气查询技能 - 支持热加载/卸载 6. **MCP支持** - Model Context Protocol标准 - 文件系统访问服务器 - 可自定义MCP服务器 ## 🎮 使用命令 在QQ中@机器人使用以下命令: ### 基础命令 - `/help` - 显示帮助信息 - `/clear` - 清除对话记忆 - `/personality` - 查看当前人格 - `/personality list` - 查看全部人格 - `/personality set ` - 切换人格 - `/personality add ` - 新增人格(角色扮演) - `/personality remove ` - 删除人格 ### 技能命令 - `/skills` - 查看已加载的技能 - `/skills install [skill_name]` - 从本地/网络安装并加载技能 - `/skills uninstall ` - 卸载技能 - `/skills reload ` - 重载技能 - `/task <任务ID>` - 查看任务状态 `source` 支持: - 本地技能名,如 `weather` - URL(zip 包) - GitHub 简写,如 `owner/repo` 或 `owner/repo#branch` ### 对话示例 ``` 用户: @机器人 你好 机器人: 你好!我是小助手,很高兴为你服务。有什么我可以帮助你的吗? 用户: @机器人 我喜欢编程 机器人: 太好了!编程是一项很有趣的技能。你主要使用什么编程语言呢? 用户: @机器人 /personality set tech_expert 机器人: ✅ 已切换到人格: tech_expert 用户: @机器人 如何优化Python性能? 机器人: 从技术角度来看,Python性能优化可以从以下几个方面入手: 1. 使用内置函数和标准库 2. 避免全局变量 3. 使用列表推导式 ... ``` ## 🔧 高级配置 ### 自定义人格 编辑 `config/personalities.json`: ```json { "my_personality": { "name": "我的人格", "description": "描述", "traits": ["FRIENDLY", "CREATIVE"], "speaking_style": "说话风格", "example_responses": ["示例1", "示例2"], "custom_instructions": "特殊指令" } } ``` ### 创建自定义技能 ```bash # 使用Python创建技能模板 python -c "from src.ai.skills.base import create_skill_template; from pathlib import Path; create_skill_template('my_skill', Path('skills'))" ``` 然后编辑 `skills/my_skill/main.py` 实现你的技能。 ### 配置MCP服务器 编辑 `config/mcp.json`: ```json { "filesystem": { "enabled": true, "root_path": "data" } } ``` ## 📖 详细文档 查看完整文档:[src/ai/README.md](src/ai/README.md) ## 🐛 故障排查 ### 问题1: AI功能不可用 **解决方案:** 1. 检查 `.env` 文件中的 `AI_API_KEY` 是否正确 2. 检查网络连接 3. 查看日志文件 `botpy.log` ### 问题2: 技能加载失败 **解决方案:** 1. 检查 `skills/技能名/skill.json` 格式是否正确 2. 确保 `main.py` 中有继承自 `Skill` 的类 3. 查看日志中的错误信息 ### 问题3: 记忆系统不工作 **解决方案:** 1. 确保 `data/ai` 目录有写入权限 2. 检查是否在对话时设置了 `use_memory=True` 3. 查看 `data/ai/long_term_memory.json` 是否正常 ## 🎯 最佳实践 1. **合理使用记忆** - 重要对话会自动保存到长期记忆 - 定期使用 `/clear` 清理短期记忆 - 为重要信息添加关键词(如"重要"、"记住") 2. **人格切换** - 根据场景选择合适的人格 - 技术问题用 `tech_expert` - 创意讨论用 `creative` - 日常对话用 `default` 3. **技能开发** - 保持技能功能单一 - 提供清晰的工具描述 - 处理异常情况 ## 📊 性能优化 ### 记忆系统优化 ```python # 调整短期记忆大小 client.memory.short_term.max_size = 30 # 默认20 # 调整重要性阈值 client.memory.importance_threshold = 0.7 # 默认0.6 ``` ### 模型参数调整 ```python config = ModelConfig( provider=ModelProvider.OPENAI, model_name="gpt-4", temperature=0.7, # 创造性 0-2 max_tokens=4096, # 最大输出长度 top_p=1.0, # 采样参数 ) ``` ## 🔄 更新日志 ### v1.0.0 (2024-03-02) - ✅ 初始版本 - ✅ 支持多种AI模型 - ✅ 人格系统 - ✅ 记忆系统(短期+长期+RAG) - ✅ 长任务处理 - ✅ Skills插件系统 - ✅ MCP支持 ## 📝 示例代码 查看 `examples/ai_example.py` 获取完整示例。 ## 🤝 贡献 欢迎提交Issue和Pull Request! ## 📄 许可证 MIT License