3.4 KiB
3.4 KiB
Chat AI System - 重构后的目录结构说明
概述
这是一个基于 Google Gemini API 的多角色 AI 聊天系统,支持不同性格的虚拟角色对话。
目录结构
Scripts/test/
├── core/ # 核心服务层
│ ├── ChatAIService.ts # AI聊天服务,管理Gemini API调用
│ ├── ChatHistoryManager.ts # 聊天历史管理器
│ └── RoleConfig.ts # 角色配置映射
├── ui/ # 用户界面层
│ ├── panels/ # UI面板
│ │ ├── ChatPanel.ts # 聊天界面面板
│ │ ├── GirlDetailPanel.ts # 角色详情面板
│ │ └── GirlListPanel.ts # 角色列表面板
│ ├── components/ # UI组件
│ │ ├── DialogBubble.ts # 对话气泡组件
│ │ ├── ChatContentsLayout.ts # 聊天内容布局
│ │ └── ImagePopup.ts # 图片弹窗组件
│ └── items/ # 列表项组件
├── config/ # 配置文件
│ ├── ApiConfig.ts # API配置管理
│ └── SystemPrompts.ts # 系统提示词配置
├── manager/ # 管理器层
│ └── DemoManager.ts # 场景和导航管理器
└── utils/ # 工具类
├── tools.ts # 通用工具函数
└── DemoData.ts # 演示数据管理
主要改进
1. 安全性改进
- ✅ 将API配置提取到独立文件(
config/ApiConfig.ts) - ⚠️ API密钥仍在代码中(待改进:使用环境变量)
- ✅ 添加输入验证和错误处理
2. 代码组织优化
- ✅ 按功能分层组织文件结构
- ✅ 修复拼写错误(GPTResquest → GPTRequest)
- ✅ 清理废弃代码并添加@deprecated标记
- ✅ 改进导入路径的一致性
3. 文档完善
- ✅ 添加详细的JSDoc注释
- ✅ 提供使用示例
- ✅ 创建结构说明文档
4. 类型安全
- ✅ 完善TypeScript类型定义
- ✅ 添加接口文档说明
核心功能
ChatAIService (核心AI服务)
- 管理多个独立的聊天实例
- 支持角色切换和上下文保持
- 自动保存和加载聊天历史
- 基于Gemini API的消息处理
ChatHistoryManager (历史管理)
- 本地存储聊天记录
- 支持历史记录的增删改查
- 自动限制历史长度(100条消息)
- 预留远程同步接口
RoleConfig (角色配置)
- 角色ID与系统提示词的映射
- 支持动态角色配置
- 预定义三种角色性格
使用示例
// 初始化聊天服务
const chatService = ChatAIService.Instance;
// 设置当前角色
chatService.setCurrentRole(10001);
// 发送消息并获取回复
const response = await chatService.sendMessage(10001, "你好");
console.log(response);
// 清除聊天历史
chatService.clearChatHistory(10001);
待优化项目
- 安全性:将API密钥移至环境变量
- 性能:实现消息分页加载
- 功能:添加消息搜索和导出功能
- 监控:增加API调用统计和限流
- 测试:添加单元测试和集成测试
兼容性说明
为了保持向后兼容性,保留了一些废弃的接口:
GPTResquest类型别名(建议使用GPTRequest)Post()方法(建议使用sendMessage())
这些接口会在控制台输出警告信息,建议尽快迁移到新的API。