koishi-plugin-virtual-pet
Version:
虚拟宠物插件,具有记忆功能,可以监听群聊并智能回复
155 lines (112 loc) • 3.82 kB
Markdown
# Koishi 虚拟宠物插件
一个具有智能记忆功能的虚拟宠物插件,可以监听群聊并智能回复。
## 功能特性
🤖 **智能回复**: 使用便宜的AI分析消息,贵的AI生成高质量回复
🧠 **记忆系统**: 短期记忆100条消息,自动总结重要信息
🎭 **个性设定**: 可自定义宠物名称和性格
⚙️ **灵活配置**: 支持指定群组,可调节回复概率
📊 **状态监控**: 提供命令查看宠物状态和记忆情况
## 安装方法
1. 将插件文件夹放入 Koishi 的插件目录
2. 在 Koishi 配置中启用插件
3. 配置 AI API 信息(见配置说明)
## 配置说明
### AI 配置
插件支持配置两种AI服务:
- **便宜AI**: 用于分析是否需要回复消息
- **贵AI**: 用于生成高质量的回复内容
支持 OpenAI 兼容的 API 格式。
### 配置示例
```yaml
# 便宜的AI配置
cheapAi:
enabled: true
apiUrl: "https://api.openai.com/v1"
apiKey: "your-cheap-ai-api-key"
model: "gpt-3.5-turbo"
# 贵的AI配置
expensiveAi:
enabled: true
apiUrl: "https://api.openai.com/v1"
apiKey: "your-expensive-ai-api-key"
model: "gpt-4"
# 记忆配置
memory:
maxMessages: 100 # 短期记忆最大消息数
summaryInterval: 100 # 每多少条消息总结一次
# 宠物配置
pet:
name: "小宠物"
personality: "你是一个可爱、友善的虚拟宠物..."
responseRate: 0.3 # 回复概率 (0-1)
# 群组配置
groups: [] # 空数组表示全部群组
```
## 使用命令
### 查看宠物状态
```
/pet.status
```
查看当前群组的记忆统计、摘要和最近话题。
### 清除记忆
```
/pet.clear
```
清除当前群组的所有记忆数据。
### 手动总结记忆
```
/pet.summarize
```
手动触发记忆总结,不需要等待达到总结间隔。
## 工作原理
1. **消息监听**: 插件监听群聊中的所有消息
2. **记忆存储**: 将消息存储到短期记忆中(最多100条)
3. **智能判断**: 使用便宜AI分析是否需要回复
4. **生成回复**: 使用贵AI生成符合宠物性格的回复
5. **记忆总结**: 每100条消息自动总结,保留重要信息
## 注意事项
- 确保 API 密钥正确且有足够的配额
- 建议合理设置回复概率,避免过于频繁
- 记忆数据存储在内存中,重启后会丢失
- 可以通过数据库扩展实现持久化存储
## 故障排除
### 常见问题
**Q: 宠物不回复消息**
A: 检查以下配置:
- AI API 配置是否正确
- 网络连接是否正常
- 回复概率是否设置过低
**Q: API 调用失败**
A: 检查以下项目:
- API 地址是否正确
- 密钥是否有效
- 模型名称是否正确
**Q: 记忆功能异常**
A: 尝试使用 `/pet.clear` 命令清除记忆后重新开始
## 开发说明
### 项目结构
```
virtual-pet/
├── src/
│ ├── index.ts # 插件主文件
│ └── services/
│ ├── ai.ts # AI服务
│ └── memory.ts # 记忆服务
├── package.json
├── tsconfig.json
├── config.example.yml
└── README.md
```
### 扩展开发
插件采用模块化设计,可以轻松扩展:
- **AI服务**: 支持添加更多AI提供商
- **记忆服务**: 可扩展持久化存储
- **命令系统**: 可添加更多管理命令
## 许可证
MIT License
## 安全说明
关于npm audit警告和安全问题的详细信息,请查看 [SECURITY.md](./SECURITY.md)。
## 故障排除
如果虚拟宠物不说话或遇到其他问题,请查看 [故障排除指南](./TROUBLESHOOTING.md)。
## 贡献
欢迎提交 Issue 和 Pull Request!