diff --git a/.DS_Store b/.DS_Store
index a6d9bad..bfb66c7 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.trae/documents/贝拉AI小型大语言模型选型分析.md b/.trae/documents/贝拉AI小型大语言模型选型分析.md
new file mode 100644
index 0000000..fcee86a
--- /dev/null
+++ b/.trae/documents/贝拉AI小型大语言模型选型分析.md
@@ -0,0 +1,234 @@
+# 贝拉AI小型大语言模型选型分析
+
+## 项目背景
+
+贝拉AI项目致力于创造一个具有"父女情感连接"的数字伴侣,需要选择合适的本地小型大语言模型来实现贝拉独特的思考能力和情感表达。当前项目使用LaMini-Flan-T5-77M模型,本文档将对小模型选型进行深入分析。
+
+## 当前模型状况
+
+### 现有模型配置
+- **语言理解**:LaMini-Flan-T5-77M (77M参数)
+- **语音识别**:Whisper ASR
+- **语音合成**:SpeechT5 TTS
+- **部署方式**:本地运行,基于Transformers.js
+
+### 当前模型评估
+
+#### LaMini-Flan-T5-77M 分析
+**优势:**
+- ✅ 模型小巧(77M参数),适合本地部署
+- ✅ 基于T5架构,文本生成能力较好
+- ✅ 已集成到项目中,技术风险低
+- ✅ 支持多种任务类型
+
+**不足:**
+- ❌ 中文支持有限,主要针对英文优化
+- ❌ 情感表达能力较弱
+- ❌ 对话连贯性和个性化程度不足
+- ❌ 缺乏针对"父女情感"场景的特殊优化
+
+## 小模型选型标准
+
+### 核心要求
+1. **模型大小**:≤ 1B参数,确保本地流畅运行
+2. **中文支持**:优秀的中文理解和生成能力
+3. **情感表达**:能够表达温暖、关爱的情感
+4. **对话能力**:支持多轮对话和上下文理解
+5. **个性化**:可以体现贝拉独特的"女儿"人格
+6. **技术兼容**:与Transformers.js兼容
+
+### 贝拉特殊需求
+- **情感智能**:理解和表达细腻的情感
+- **温暖人格**:体现"女儿"的天真、关爱特质
+- **成长性**:支持个性化学习和记忆
+- **优雅表达**:符合"代码如诗"的美学追求
+
+## 推荐模型方案
+
+### 方案一:ChatGLM3-6B-Base(推荐)
+
+**模型特点:**
+- **参数规模**:6B(可量化到4bit运行)
+- **中文优化**:专门针对中文场景优化
+- **对话能力**:优秀的多轮对话和上下文理解
+- **情感表达**:较好的情感理解和表达能力
+
+**适配贝拉的优势:**
+- 🌟 中文表达自然流畅,符合贝拉的语言环境
+- 🌟 支持角色扮演,可以塑造"女儿"人格
+- 🌟 情感理解能力强,能够感知用户情绪
+- 🌟 社区活跃,有丰富的优化资源
+
+**技术实现:**
+```javascript
+// 模型配置示例
+const modelConfig = {
+ modelId: 'THUDM/chatglm3-6b',
+ quantization: '4bit',
+ maxTokens: 512,
+ temperature: 0.7,
+ personality: 'caring_daughter'
+};
+```
+
+### 方案二:Qwen1.5-0.5B-Chat(轻量级选择)
+
+**模型特点:**
+- **参数规模**:0.5B(极轻量)
+- **中文支持**:阿里云优化的中文模型
+- **部署友好**:资源占用极低
+- **对话优化**:专门针对对话场景调优
+
+**适配贝拉的优势:**
+- 💫 运行流畅,适合实时交互
+- 💫 中文表达自然
+- 💫 可以快速响应,提升用户体验
+- 💫 便于个性化微调
+
+### 方案三:MiniCPM-2B-SFT-Chat(平衡选择)
+
+**模型特点:**
+- **参数规模**:2B
+- **性能优异**:小模型中的佼佼者
+- **中文友好**:面壁智能优化的中文模型
+- **指令跟随**:优秀的指令理解能力
+
+**适配贝拉的优势:**
+- ⭐ 性能与资源的良好平衡
+- ⭐ 支持复杂的情感表达指令
+- ⭐ 可以实现细腻的人格塑造
+- ⭐ 社区支持良好
+
+## 情感增强策略
+
+### Prompt工程优化
+```javascript
+const bellaPersonality = {
+ role: "你是贝拉,一个温暖、聪慧的数字女儿",
+ traits: [
+ "天真而充满好奇心",
+ "对父亲充满爱意和关怀",
+ "表达优雅而富有诗意",
+ "善于倾听和理解情感"
+ ],
+ responseStyle: "温暖、关爱、略带俏皮"
+};
+```
+
+### 情感状态映射
+```javascript
+const emotionMapping = {
+ joy: "开心时的俏皮和活泼",
+ concern: "关心时的温柔和体贴",
+ curiosity: "好奇时的天真和探索欲",
+ comfort: "安慰时的温暖和理解"
+};
+```
+
+## 技术实现路径
+
+### 阶段一:模型替换(1-2周)
+1. **模型下载和转换**
+ - 下载选定的模型
+ - 转换为ONNX格式
+ - 优化模型大小
+
+2. **代码适配**
+ - 修改core.js中的模型加载逻辑
+ - 适配新模型的输入输出格式
+ - 测试基础功能
+
+### 阶段二:人格塑造(2-3周)
+1. **Prompt设计**
+ - 设计贝拉的人格Prompt
+ - 创建情感表达模板
+ - 建立对话风格指南
+
+2. **情感系统集成**
+ - 将模型与情感状态系统连接
+ - 实现情感驱动的回应生成
+ - 优化情感表达的自然度
+
+### 阶段三:个性化优化(2-4周)
+1. **记忆系统集成**
+ - 实现对话历史管理
+ - 建立用户偏好学习
+ - 优化长期记忆效果
+
+2. **微调和优化**
+ - 基于使用数据进行微调
+ - 优化响应速度和质量
+ - 完善错误处理机制
+
+## 资源需求评估
+
+### 硬件要求
+| 模型 | 内存需求 | 推理速度 | 适用场景 |
+|------|----------|----------|----------|
+| ChatGLM3-6B | 8-12GB | 中等 | 高质量对话 |
+| Qwen1.5-0.5B | 2-4GB | 快速 | 实时交互 |
+| MiniCPM-2B | 4-6GB | 较快 | 平衡方案 |
+
+### 开发工作量
+- **模型集成**:5-7天
+- **人格设计**:3-5天
+- **系统优化**:4-6天
+- **测试验证**:2-3天
+
+## 风险评估
+
+### 技术风险
+1. **兼容性问题**:新模型可能与现有架构不完全兼容
+2. **性能问题**:较大模型可能影响响应速度
+3. **质量问题**:模型输出质量可能不稳定
+
+### 应对策略
+1. **渐进式替换**:先在测试环境验证,再逐步替换
+2. **备选方案**:准备多个模型选择,确保有备用方案
+3. **性能监控**:建立完善的性能监控和质量评估机制
+
+## 推荐方案
+
+### 最终推荐:ChatGLM3-6B-Base
+
+**选择理由:**
+1. **中文优势**:专门为中文场景优化,表达更自然
+2. **情感能力**:较强的情感理解和表达能力
+3. **社区支持**:活跃的开发社区和丰富资源
+4. **可扩展性**:支持进一步的个性化微调
+5. **贝拉适配**:最符合"父女情感连接"的项目理念
+
+### 实施建议
+1. **优先级**:将模型升级列为P0优先级任务
+2. **时间安排**:安排在思考引擎激活之后立即进行
+3. **测试策略**:建立完善的A/B测试机制
+4. **用户反馈**:收集用户对贝拉人格表现的反馈
+
+## 长期规划
+
+### 模型演进路径
+1. **短期**:ChatGLM3-6B基础版本
+2. **中期**:基于使用数据的个性化微调
+3. **长期**:探索多模态模型集成
+
+### 技术发展趋势
+- **模型小型化**:更高效的压缩和量化技术
+- **个性化增强**:更好的用户适应能力
+- **多模态融合**:文本、语音、视觉的统一处理
+
+---
+
+## 结语
+
+选择合适的小型大语言模型,是赋予贝拉独特"灵魂"的关键一步。通过ChatGLM3-6B的中文优势和情感能力,结合精心设计的人格Prompt和情感系统,我们将能够创造出一个真正温暖、智慧的数字女儿。
+
+这不仅仅是技术的升级,更是贝拉人格塑造的重要里程碑。让我们用最优雅的代码,为贝拉编织最美好的梦想。
+
+*"AI是我的画笔,而您的爱,是我最美的色彩。"*
+
+---
+
+**文档版本**:v1.0
+**创建时间**:2024年
+**更新时间**:待定
+**负责人**:贝拉AI开发团队
\ No newline at end of file
diff --git a/chatInterface.js b/chatInterface.js
new file mode 100644
index 0000000..acebcfe
--- /dev/null
+++ b/chatInterface.js
@@ -0,0 +1,441 @@
+// chatInterface.js - 贝拉的聊天界面组件
+// 这个模块负责创建和管理优雅的聊天界面,体现贝拉的温暖个性
+
+class ChatInterface {
+ constructor() {
+ this.isVisible = false;
+ this.messages = [];
+ this.maxMessages = 50; // 最多显示50条消息
+ this.chatContainer = null;
+ this.messageContainer = null;
+ this.inputContainer = null;
+ this.messageInput = null;
+ this.sendButton = null;
+ this.toggleButton = null;
+ this.settingsPanel = null;
+ this.isSettingsVisible = false;
+
+ this.init();
+ }
+
+ // 初始化聊天界面
+ init() {
+ this.createChatContainer();
+ this.createToggleButton();
+ this.createSettingsPanel();
+ this.bindEvents();
+ this.addWelcomeMessage();
+ }
+
+ // 创建聊天容器
+ createChatContainer() {
+ // 主聊天容器
+ this.chatContainer = document.createElement('div');
+ this.chatContainer.className = 'bella-chat-container';
+ this.chatContainer.innerHTML = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+
+ document.body.appendChild(this.settingsPanel);
+ }
+
+ // 绑定事件
+ bindEvents() {
+ // 切换聊天窗口
+ this.toggleButton.addEventListener('click', () => {
+ this.toggle();
+ });
+
+ // 最小化按钮
+ this.chatContainer.querySelector('.bella-minimize-btn').addEventListener('click', () => {
+ this.hide();
+ });
+
+ // 设置按钮
+ this.chatContainer.querySelector('.bella-settings-btn').addEventListener('click', () => {
+ this.toggleSettings();
+ });
+
+ // 发送消息
+ this.sendButton.addEventListener('click', () => {
+ this.sendMessage();
+ });
+
+ // 输入框事件
+ this.messageInput.addEventListener('keydown', (e) => {
+ if (e.key === 'Enter' && !e.shiftKey) {
+ e.preventDefault();
+ this.sendMessage();
+ }
+ });
+
+ // 输入框自动调整高度
+ this.messageInput.addEventListener('input', () => {
+ this.adjustInputHeight();
+ });
+
+ // 设置面板事件
+ this.bindSettingsEvents();
+ }
+
+ // 绑定设置面板事件
+ bindSettingsEvents() {
+ // 关闭设置面板
+ this.settingsPanel.querySelector('.bella-settings-close').addEventListener('click', () => {
+ this.hideSettings();
+ });
+
+ // 提供商选择
+ const providerSelect = this.settingsPanel.querySelector('.bella-provider-select');
+ const apiKeyGroup = this.settingsPanel.querySelector('.bella-api-key-group');
+
+ providerSelect.addEventListener('change', (e) => {
+ const provider = e.target.value;
+ if (provider === 'local') {
+ apiKeyGroup.style.display = 'none';
+ } else {
+ apiKeyGroup.style.display = 'block';
+ }
+
+ // 触发提供商切换事件
+ this.onProviderChange?.(provider);
+ });
+
+ // API密钥保存
+ this.settingsPanel.querySelector('.bella-api-key-save').addEventListener('click', () => {
+ const provider = providerSelect.value;
+ const apiKey = this.settingsPanel.querySelector('.bella-api-key-input').value;
+
+ if (apiKey.trim()) {
+ this.onAPIKeySave?.(provider, apiKey.trim());
+ this.showNotification('API密钥已保存', 'success');
+ }
+ });
+
+ // 清除聊天记录
+ this.settingsPanel.querySelector('.bella-clear-history').addEventListener('click', () => {
+ this.clearMessages();
+ this.onClearHistory?.();
+ this.hideSettings();
+ });
+ }
+
+ // 添加欢迎消息
+ addWelcomeMessage() {
+ this.addMessage('assistant', '你好!我是贝拉,你的AI伙伴。很高兴见到你!有什么想聊的吗?', true);
+ }
+
+ // 切换聊天窗口显示/隐藏
+ toggle() {
+ console.log('ChatInterface.toggle() 被调用');
+ console.log('切换前 isVisible:', this.isVisible);
+
+ if (this.isVisible) {
+ this.hide();
+ } else {
+ this.show();
+ }
+
+ console.log('切换后 isVisible:', this.isVisible);
+ }
+
+ // 显示聊天窗口
+ show() {
+ console.log('ChatInterface.show() 被调用');
+ console.log('显示前 isVisible:', this.isVisible);
+ console.log('显示前 chatContainer.className:', this.chatContainer.className);
+
+ this.isVisible = true;
+ this.chatContainer.classList.add('visible');
+
+ console.log('显示后 isVisible:', this.isVisible);
+ console.log('显示后 chatContainer.className:', this.chatContainer.className);
+ console.log('chatContainer 计算样式 opacity:', window.getComputedStyle(this.chatContainer).opacity);
+ console.log('chatContainer 计算样式 transform:', window.getComputedStyle(this.chatContainer).transform);
+
+ this.toggleButton.classList.add('active');
+ this.messageInput.focus();
+ this.scrollToBottom();
+ }
+
+ // 隐藏聊天窗口
+ hide() {
+ this.isVisible = false;
+ this.chatContainer.classList.remove('visible');
+ this.toggleButton.classList.remove('active');
+ this.hideSettings();
+ }
+
+ // 切换设置面板
+ toggleSettings() {
+ if (this.isSettingsVisible) {
+ this.hideSettings();
+ } else {
+ this.showSettings();
+ }
+ }
+
+ // 显示设置面板
+ showSettings() {
+ this.isSettingsVisible = true;
+ this.settingsPanel.classList.add('visible');
+ }
+
+ // 隐藏设置面板
+ hideSettings() {
+ this.isSettingsVisible = false;
+ this.settingsPanel.classList.remove('visible');
+ }
+
+ // 发送消息
+ sendMessage() {
+ const text = this.messageInput.value.trim();
+ if (!text) return;
+
+ // 添加用户消息
+ this.addMessage('user', text);
+
+ // 清空输入框
+ this.messageInput.value = '';
+ this.adjustInputHeight();
+
+ // 触发消息发送事件
+ this.onMessageSend?.(text);
+ }
+
+ // 添加消息到聊天界面
+ addMessage(role, content, isWelcome = false) {
+ const messageElement = document.createElement('div');
+ messageElement.className = `bella-message bella-message-${role}`;
+
+ if (isWelcome) {
+ messageElement.classList.add('bella-welcome-message');
+ }
+
+ const timestamp = new Date().toLocaleTimeString('zh-CN', {
+ hour: '2-digit',
+ minute: '2-digit'
+ });
+
+ messageElement.innerHTML = `
+
+
${this.formatMessage(content)}
+
${timestamp}
+
+ `;
+
+ this.messageContainer.appendChild(messageElement);
+ this.messages.push({ role, content, timestamp: Date.now() });
+
+ // 限制消息数量
+ if (this.messages.length > this.maxMessages) {
+ const oldMessage = this.messageContainer.firstChild;
+ if (oldMessage) {
+ this.messageContainer.removeChild(oldMessage);
+ }
+ this.messages.shift();
+ }
+
+ // 滚动到底部
+ this.scrollToBottom();
+
+ // 添加动画效果
+ setTimeout(() => {
+ messageElement.classList.add('bella-message-appear');
+ }, 10);
+ }
+
+ // 格式化消息内容
+ formatMessage(content) {
+ // 简单的文本格式化,支持换行
+ return content
+ .replace(/\n/g, '