# 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与系统提示词的映射 - 支持动态角色配置 - 预定义三种角色性格 ## 使用示例 ```typescript // 初始化聊天服务 const chatService = ChatAIService.Instance; // 设置当前角色 chatService.setCurrentRole(10001); // 发送消息并获取回复 const response = await chatService.sendMessage(10001, "你好"); console.log(response); // 清除聊天历史 chatService.clearChatHistory(10001); ``` ## 待优化项目 1. **安全性**:将API密钥移至环境变量 2. **性能**:实现消息分页加载 3. **功能**:添加消息搜索和导出功能 4. **监控**:增加API调用统计和限流 5. **测试**:添加单元测试和集成测试 ## 兼容性说明 为了保持向后兼容性,保留了一些废弃的接口: - `GPTResquest` 类型别名(建议使用 `GPTRequest`) - `Post()` 方法(建议使用 `sendMessage()`) 这些接口会在控制台输出警告信息,建议尽快迁移到新的API。