# AI助手Web客户端

这是一个100%还原 `docs/ai-assistant.html` 原型设计的Web版本AI助手对话客户端。

## ✨ 特性

### 视觉效果
- ✅ 完全还原原型的双栏布局（左侧用户信息面板 + 右侧对话区域）
- ✅ 精确匹配的颜色方案和渐变效果
- ✅ 动态粒子背景效果
- ✅ 消息滑入动画
- ✅ AI打字指示器动画
- ✅ 按钮悬停发光效果
- ✅ 语音波形动画

### 功能特性
- ✅ 实时对话交互
- ✅ 智能回复快捷按钮
- ✅ 主题切换（深空黑、极光蓝、霓虹紫、科技绿）
- ✅ 字体选择
- ✅ 待办事项管理
- ✅ 提醒设置展示
- ✅ 连接状态指示

### 技术栈
- **后端**: Flask 2.3+
- **前端**: HTML5 + Tailwind CSS + Vanilla JavaScript
- **字体**: Pacifico (标题) + Inter (正文)
- **图标**: Font Awesome 6.4.0

## 📁 项目结构

```
web_client/
├── app.py                  # Flask应用主文件
├── requirements.txt        # Python依赖
├── README.md              # 本文档
├── static/
│   ├── css/
│   │   └── style.css      # 自定义样式（动画、效果）
│   ├── js/
│   │   └── main.js        # 前端交互逻辑
│   └── assets/            # 静态资源（图片等）
└── templates/
    └── index.html         # 主页面模板
```

## 🚀 快速开始

### 1. 安装依赖

```bash
cd test-client/web_client
pip install -r requirements.txt
```

### 2. 启动服务

```bash
python app.py
```

默认端口：`5000`

### 3. 访问应用

打开浏览器访问：`http://localhost:5000`

## 🎨 界面还原度

### 布局结构
- ✅ 左侧固定宽度（320px）用户信息面板
- ✅ 右侧自适应对话区域
- ✅ 顶部导航栏（64px高度）
- ✅ 底部输入区域

### 颜色方案
```css
/* 背景渐变 */
background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%);

/* 主色调 */
--primary: #6366f1;
--secondary: #8b5cf6;

/* 用户消息气泡 */
background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);

/* AI消息气泡 */
background: linear-gradient(135deg, #06b6d4 0%, #10b981 100%);
```

### 动画效果
1. **粒子背景** - 50个动态浮动粒子
2. **消息滑入** - 0.3s ease-out 动画
3. **打字指示器** - 3个点的波浪动画
4. **按钮发光** - hover时的阴影和位移效果
5. **脉冲动画** - 2s循环的扩散效果
6. **语音波形** - 5个条形的波动动画

## 🔌 API集成

### 已预留的API接口

#### 1. 获取应用列表
```javascript
GET /api/applications
```

#### 2. 发送聊天消息
```javascript
POST /api/chat/send
Content-Type: application/json

{
    "appId": 15,
    "message": "你好",
    "chatId": "optional_chat_id",
    "stream": false
}
```

#### 3. 健康检查
```javascript
GET /api/health
```

### 集成真实API

编辑 `app.py`，确保父目录的 `api_client.py` 和 `config.py` 可以正确导入：

```python
from api_client import AIAssistantClient
from config import APPLICATIONS, AI_ASSISTANT_CONFIG
```

## 🎯 使用说明

### 基础对话
1. 在底部输入框输入消息
2. 点击发送按钮或按Enter键
3. 等待AI回复（显示打字指示器）

### 快捷回复
点击顶部的快捷回复按钮，自动填充常用问题

### 主题切换
点击顶部导航栏的主题按钮切换不同配色方案

### 待办事项
在左侧面板添加和管理待办事项

## 🔧 配置说明

### 环境变量

创建 `.env` 文件（可选）：

```bash
# 服务端口
PORT=5000

# 调试模式
DEBUG=True

# API基础URL（如果需要代理）
API_BASE_URL=http://localhost:8082
```

### 修改默认应用

编辑 `static/js/main.js`：

```javascript
let currentAppId = 15; // 修改为你的应用ID
```

## 📱 响应式设计

- ✅ 桌面端（1920x1080及以上）- 完整布局
- ✅ 平板端（768px-1920px）- 自适应布局
- ✅ 移动端（<768px）- 优化的单栏布局

## 🐛 故障排查

### 样式未加载
- 检查 `static/css/style.css` 文件是否存在
- 确认Flask静态文件路径配置正确

### JavaScript未执行
- 检查浏览器控制台是否有错误
- 确认 `static/js/main.js` 文件是否存在

### API调用失败
- 检查后端服务是否启动
- 查看浏览器Network标签的请求详情
- 确认CORS配置正确

## 📝 开发计划

- [ ] 支持流式响应（SSE）
- [ ] 支持文件上传
- [ ] 支持语音输入
- [ ] 支持多会话管理
- [ ] 支持消息历史记录
- [ ] 支持用户认证

## 📄 许可

内部测试工具，仅供开发和测试使用。

## 🤝 贡献

如需修改或扩展功能，请遵循以下原则：
1. 保持与原型设计的一致性
2. 添加注释说明修改内容
3. 测试所有浏览器兼容性
4. 更新本README文档

