Files
18xchat/assets/Scripts/chat18x/README.md
T
2025-08-11 16:08:59 +08:00

107 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。