From 6b26ccb1e4e61ef18dd2df32c96b95c477977a4d Mon Sep 17 00:00:00 2001 From: wangyang Date: Fri, 15 May 2026 18:20:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=99=BB=E5=BD=95=E5=90=8E=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=8A=A0=E8=BD=BD=E5=AF=B9=E8=AF=9D=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=EF=BC=9B=E6=96=B0=E5=A2=9E=E7=94=9F=E4=BA=A7=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=8C=87=E5=8D=97=20DEPLOY.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 useChat useEffect 只在挂载时执行导致的登录后无历史问题 - 暴露 reloadConversations 函数,App.tsx 登录成功后主动调用 - 添加 DEPLOY.md 生产部署文档(Nginx + PHP-FPM) 2026-05-15 --- DEPLOY.md | 94 +++++++ README.md | 125 ++++----- package.json | 2 +- server.zip | Bin 0 -> 247473 bytes server/public/index.php | 8 +- server/src/db.php | 37 ++- server/src/routes.php | 231 ++++++++++++++--- src/App.tsx | 20 +- src/api/chat.ts | 11 +- src/api/conversations.ts | 7 +- src/api/model-configs.ts | 84 ++++++ src/components/ChatArea.tsx | 89 +++++-- src/components/Sidebar.tsx | 495 +++++++++++++++++++++++++----------- src/hooks/useAuth.ts | 4 +- src/hooks/useChat.ts | 186 ++++++++++---- src/types/index.ts | 14 +- 16 files changed, 1076 insertions(+), 331 deletions(-) create mode 100644 DEPLOY.md create mode 100644 server.zip create mode 100644 src/api/model-configs.ts diff --git a/DEPLOY.md b/DEPLOY.md new file mode 100644 index 0000000..18e6cb6 --- /dev/null +++ b/DEPLOY.md @@ -0,0 +1,94 @@ +# 生产部署指南 + +## 目录结构 + +``` +/www/chat-app/ +├── public/ # 前端 dist + PHP 入口 +│ ├── index.html # 前端入口 +│ ├── assets/ # 前端 JS/CSS +│ └── index.php # PHP 后端入口 +├── src/ # PHP 业务代码 +├── vendor/ # composer 依赖 +├── chat.db # SQLite 数据库 +└── composer.json +``` + +## 部署步骤 + +### 1. 安装 PHP 依赖 + +```bash +cd /www/chat-app +composer install --no-dev --optimize-autoloader +``` + +### 2. 前端构建并放入 public + +本地执行: +```bash +npm run build +cp -r dist/* server/public/ +``` + +### 3. Nginx 配置 + +```nginx +server { + listen 80; + server_name your-domain.com; + root /www/chat-app/public; + index index.html index.php; + + # 前端静态资源(JS/CSS/图片等) + location /assets/ { + try_files $uri =404; + expires 1y; + add_header Cache-Control "public, immutable"; + } + + # API 请求 → PHP + location /api/ { + try_files $uri /index.php$is_args$args; + } + + # 前端路由(SPA)→ index.html + location / { + try_files $uri $uri/ /index.html; + } + + location ~ \.php$ { + fastcgi_pass 127.0.0.1:9000; # 或 unix:/run/php/php8.3-fpm.sock + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } +} +``` + +### 4. PHP-FPM 配置要点 + +确保 `php.ini` 中: +```ini +; SQLite 需要 +extension=pdo_sqlite + +; SSE 流式输出需要 +output_buffering = Off +zlib.output_compression = Off +``` + +### 5. 数据库权限 + +```bash +chmod 666 /www/chat-app/chat.db +``` + +## 简化版:PHP 内置服务器(仅测试) + +```bash +cd /www/chat-app/public +php -S 0.0.0.0:8000 +``` + +> 注意:PHP 内置服务器性能差,不适合生产。 diff --git a/README.md b/README.md index d2e7761..93c6d79 100755 --- a/README.md +++ b/README.md @@ -1,73 +1,82 @@ -# React + TypeScript + Vite +# Chat App -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +一个自托管的 LLM 聊天应用,支持多会话管理、流式响应和模型配置。 -Currently, two official plugins are available: +## 技术栈 -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +**前端** +- React 19 + TypeScript + Vite +- Tailwind CSS 3.4 + shadcn/ui +- SSE 流式接收 AI 回复 -## React Compiler +**后端** +- PHP 8.3 + Slim 4 +- SQLite 单文件数据库 +- JWT 认证 -The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). +## 功能特性 -## Expanding the ESLint configuration +- 🖥️ 终端风格登录页 +- 💬 多会话聊天管理 +- ⚡ SSE 流式响应 +- 🔧 模型配置面板(DeepSeek / Kimi / 自定义) +- 🔐 固定密码登录(通过 `CHAT_PASSWORD` 环境变量) +- 📱 响应式布局 -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: +## 快速开始 -```js -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... +### 安装依赖 - // Remove tseslint.configs.recommended and replace with this - tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - tseslint.configs.stylisticTypeChecked, +```bash +# 前端依赖 +npm install - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) +# 后端依赖(PHP + Composer) +cd server && composer install ``` -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: +### 开发运行 -```js -// eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' +```bash +# 同时启动前端和后端 +npm run dev -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs['recommended-typescript'], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) +# 前端 http://localhost:3000 +# 后端 http://localhost:8000 +``` + +### 生产构建 + +```bash +# 构建前端 +npm run build + +# 后端无需构建,直接部署 server/ 目录即可 +``` + +## 环境变量 + +| 变量 | 说明 | 默认值 | +|------|------|--------| +| `CHAT_PASSWORD` | 登录密码 | `admin` | +| `JWT_SECRET` | JWT 签名密钥 | 内置默认值 | + +## 部署 + +将以下目录上传至服务器: +- `dist/` — 前端构建产物 +- `server/` — PHP 后端源码 + +配置 Web 服务器将 `server/public/` 设为根目录,并设置 `dist/` 的别名。 + +## 项目结构 + +``` +chat-app/ +├── src/ # 前端源码 +├── server/ # PHP 后端 +│ ├── public/ # Web 入口 +│ └── src/ # 业务代码 +├── dist/ # 前端构建产物(Git 忽略) +└── package.json ``` diff --git a/package.json b/package.json index 18e3d2b..eb9a3aa 100755 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"", "dev:client": "vite", - "dev:server": "cd server && php -S localhost:8000 -t public", + "dev:server": "cd server && /opt/homebrew/bin/php -S localhost:8000 -t public", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview" diff --git a/server.zip b/server.zip new file mode 100644 index 0000000000000000000000000000000000000000..1f1110998a23a74f20dc8d08711ad5f8f07494e3 GIT binary patch literal 247473 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[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 ($request, $handler) { $response = $handler->handle($request); return $response @@ -21,15 +21,15 @@ $app->add(function ($request, $handler) { $app->addRoutingMiddleware(); $app->addErrorMiddleware(true, true, true); -// Options handler +// OPTIONS 预检请求处理 $app->options('/{routes:.+}', function ($request, $response) { return $response; }); -// Init DB +// 初始化数据库 getDb(); -// Register routes +// 注册路由 require __DIR__ . '/../src/routes.php'; $app->run(); diff --git a/server/src/db.php b/server/src/db.php index dddaca3..389de3c 100644 --- a/server/src/db.php +++ b/server/src/db.php @@ -15,6 +15,8 @@ function getDb(): PDO { if ($isNew) { initDb($pdo); + } else { + migrateDb($pdo); } return $pdo; @@ -37,8 +39,8 @@ function initDb(PDO $pdo): void { model_base_url TEXT, model_id TEXT, api_key TEXT, - temperature REAL DEFAULT 0.7, - max_tokens INTEGER DEFAULT 4096, + temperature REAL DEFAULT 0.2, + max_tokens INTEGER DEFAULT 8192, system_prompt TEXT, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL @@ -49,10 +51,41 @@ function initDb(PDO $pdo): void { conversation_id TEXT NOT NULL REFERENCES conversations(id) ON DELETE CASCADE, role TEXT NOT NULL CHECK(role IN ('user','assistant','system')), content TEXT NOT NULL DEFAULT '', + thinking TEXT DEFAULT NULL, + prompt_tokens INTEGER DEFAULT 0, + completion_tokens INTEGER DEFAULT 0, timestamp INTEGER NOT NULL ); + CREATE TABLE IF NOT EXISTS model_configs ( + id TEXT PRIMARY KEY, + user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE, + name TEXT NOT NULL, + base_url TEXT, + model_id TEXT, + api_key TEXT, + temperature REAL DEFAULT 0.2, + max_tokens INTEGER DEFAULT 8192, + system_prompt TEXT, + created_at INTEGER NOT NULL, + updated_at INTEGER NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_messages_conversation ON messages(conversation_id); CREATE INDEX IF NOT EXISTS idx_conversations_user ON conversations(user_id); "); } + +// 数据库迁移:检查并添加新列 +function migrateDb(PDO $pdo): void { + $columns = $pdo->query("PRAGMA table_info(messages)")->fetchAll(PDO::FETCH_COLUMN, 1); + if (!in_array('thinking', $columns)) { + $pdo->exec("ALTER TABLE messages ADD COLUMN thinking TEXT DEFAULT NULL"); + } + if (!in_array('prompt_tokens', $columns)) { + $pdo->exec("ALTER TABLE messages ADD COLUMN prompt_tokens INTEGER DEFAULT 0"); + } + if (!in_array('completion_tokens', $columns)) { + $pdo->exec("ALTER TABLE messages ADD COLUMN completion_tokens INTEGER DEFAULT 0"); + } +} diff --git a/server/src/routes.php b/server/src/routes.php index de6cc83..54562b0 100644 --- a/server/src/routes.php +++ b/server/src/routes.php @@ -3,7 +3,7 @@ use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; -// Auth middleware +// JWT 认证中间件:验证请求头中的 Bearer Token $authMiddleware = function (Request $request, $handler) { $authHeader = $request->getHeaderLine('Authorization'); if (!$authHeader || !str_starts_with($authHeader, 'Bearer ')) { @@ -22,13 +22,13 @@ $authMiddleware = function (Request $request, $handler) { return $handler->handle($request); }; -// Health check +// 健康检查接口 $app->get('/api/health', function (Request $request, Response $response) { $response->getBody()->write(json_encode(['status' => 'ok'])); return $response->withHeader('Content-Type', 'application/json'); }); -// Auth routes +// 认证路由 $app->post('/api/auth/login', function (Request $request, Response $response) { $body = json_decode((string)$request->getBody(), true); $password = $body['password'] ?? ''; @@ -61,7 +61,7 @@ $app->get('/api/auth/me', function (Request $request, Response $response) { return $response->withHeader('Content-Type', 'application/json'); })->add($authMiddleware); -// Conversation routes +// 会话路由 $app->get('/api/conversations', function (Request $request, Response $response) { $userId = $request->getAttribute('userId'); $db = getDb(); @@ -85,7 +85,7 @@ $app->get('/api/conversations/{id}', function (Request $request, Response $respo return $response->withStatus(404)->withHeader('Content-Type', 'application/json'); } - $stmt = $db->prepare('SELECT id, role, content, timestamp FROM messages WHERE conversation_id = ? ORDER BY timestamp ASC'); + $stmt = $db->prepare('SELECT id, role, content, thinking, prompt_tokens, completion_tokens, timestamp FROM messages WHERE conversation_id = ? ORDER BY timestamp ASC'); $stmt->execute([$id]); $messages = $stmt->fetchAll(); @@ -110,8 +110,8 @@ $app->post('/api/conversations', function (Request $request, Response $response) $modelConfig['baseUrl'] ?? null, $modelConfig['model'] ?? null, $modelConfig['apiKey'] ?? null, - $modelConfig['temperature'] ?? 0.7, - $modelConfig['maxTokens'] ?? 4096, + $modelConfig['temperature'] ?? 0.2, + $modelConfig['maxTokens'] ?? 8192, $modelConfig['systemPrompt'] ?? null, $now, $now ]); @@ -157,7 +157,7 @@ $app->put('/api/conversations/{id}', function (Request $request, Response $respo $stmt->execute([$id]); $conv = $stmt->fetch(); - $stmt = $db->prepare('SELECT id, role, content, timestamp FROM messages WHERE conversation_id = ? ORDER BY timestamp ASC'); + $stmt = $db->prepare('SELECT id, role, content, thinking, prompt_tokens, completion_tokens, timestamp FROM messages WHERE conversation_id = ? ORDER BY timestamp ASC'); $stmt->execute([$id]); $messages = $stmt->fetchAll(); @@ -203,14 +203,15 @@ $app->delete('/api/conversations/{id}/messages', function (Request $request, Res return $response->withHeader('Content-Type', 'application/json'); })->add($authMiddleware); -// Chat route (SSE) +// 聊天路由(SSE 流式响应) $app->post('/api/chat', function (Request $request, Response $response) { $userId = $request->getAttribute('userId'); $body = json_decode((string)$request->getBody(), true); $conversationId = $body['conversationId'] ?? ''; $content = trim($body['content'] ?? ''); + $regenerateFrom = $body['regenerateFrom'] ?? null; // 重新生成:从指定消息 ID 开始 - if (!$conversationId || !$content) { + if (!$conversationId || (!$content && !$regenerateFrom)) { $response->getBody()->write(json_encode(['error' => 'conversationId and content required'])); return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); } @@ -225,12 +226,12 @@ $app->post('/api/chat', function (Request $request, Response $response) { return $response->withStatus(404)->withHeader('Content-Type', 'application/json'); } - // Load history + // 加载历史消息 $stmt = $db->prepare("SELECT role, content FROM messages WHERE conversation_id = ? ORDER BY timestamp ASC"); $stmt->execute([$conversationId]); $history = $stmt->fetchAll(); - // Build messages + // 构建消息列表 $messages = []; if ($conv['system_prompt']) { $messages[] = ['role' => 'system', 'content' => $conv['system_prompt']]; @@ -242,13 +243,30 @@ $app->post('/api/chat', function (Request $request, Response $response) { } $messages[] = ['role' => 'user', 'content' => $content]; - // Save user message - $userMsgId = bin2hex(random_bytes(16)); - $now = time() * 1000; - $stmt = $db->prepare('INSERT INTO messages (id, conversation_id, role, content, timestamp) VALUES (?, ?, ?, ?, ?)'); - $stmt->execute([$userMsgId, $conversationId, 'user', $content, $now]); + // 处理重新生成:删除指定消息之后的所有消息 + if ($regenerateFrom) { + $stmt = $db->prepare('SELECT id, content, timestamp FROM messages WHERE id = ? AND conversation_id = ? AND role = ?'); + $stmt->execute([$regenerateFrom, $conversationId, 'user']); + $targetMsg = $stmt->fetch(); + if (!$targetMsg) { + $response->getBody()->write(json_encode(['error' => 'Message not found'])); + return $response->withStatus(404)->withHeader('Content-Type', 'application/json'); + } + $content = $targetMsg['content']; + $userMsgId = $targetMsg['id']; + $now = $targetMsg['timestamp']; + // 删除该消息之后的所有消息 + $stmt = $db->prepare('DELETE FROM messages WHERE conversation_id = ? AND timestamp > ?'); + $stmt->execute([$conversationId, $now]); + } else { + // 保存新的用户消息 + $userMsgId = bin2hex(random_bytes(16)); + $now = time() * 1000; + $stmt = $db->prepare('INSERT INTO messages (id, conversation_id, role, content, timestamp) VALUES (?, ?, ?, ?, ?)'); + $stmt->execute([$userMsgId, $conversationId, 'user', $content, $now]); + } - // Update title if first message + // 如果是第一条消息,自动更新会话标题 $stmt = $db->prepare('SELECT COUNT(*) as cnt FROM messages WHERE conversation_id = ?'); $stmt->execute([$conversationId]); $msgCount = $stmt->fetch()['cnt'] ?? 0; @@ -258,7 +276,7 @@ $app->post('/api/chat', function (Request $request, Response $response) { $stmt->execute([$newTitle, $now, $conversationId]); } - // Check model config + // 检查模型配置是否完整 if (!$conv['model_base_url'] || !$conv['api_key'] || !$conv['model_id']) { $errMsg = 'Error: 模型配置不完整,请先在「配置」中设置 API 地址、API Key 和模型 ID'; $errMsgId = bin2hex(random_bytes(16)); @@ -268,7 +286,7 @@ $app->post('/api/chat', function (Request $request, Response $response) { return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); } - // SSE output + // 设置 SSE 响应头 header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); header('Connection: keep-alive'); @@ -277,13 +295,17 @@ $app->post('/api/chat', function (Request $request, Response $response) { while (ob_get_level() > 0) ob_end_flush(); ob_implicit_flush(true); - // Send user message confirmation + // 发送用户消息确认事件 echo "data: " . json_encode(['type' => 'user', 'id' => $userMsgId, 'content' => $content]) . "\n\n"; flush(); - // Call LLM API via curl + // 通过 curl 调用大模型 API(支持 DeepSeek V4 reasoning_content) $assistantMsgId = bin2hex(random_bytes(16)); $fullContent = ''; + $fullThinking = ''; + $promptTokens = 0; + $completionTokens = 0; + $inThinking = true; // 当前是否在接收 thinking 内容 $payload = json_encode([ 'model' => $conv['model_id'], @@ -291,8 +313,15 @@ $app->post('/api/chat', function (Request $request, Response $response) { 'temperature' => (float)$conv['temperature'], 'max_tokens' => (int)$conv['max_tokens'], 'stream' => true, + 'stream_options' => ['include_usage' => true], ]); + // 检测连接是否中断(用户点击停止) + $aborted = false; + if (function_exists('connection_aborted')) { + $aborted = connection_aborted(); + } + $ch = curl_init($conv['model_base_url'] . '/chat/completions'); curl_setopt_array($ch, [ CURLOPT_POST => true, @@ -302,7 +331,13 @@ $app->post('/api/chat', function (Request $request, Response $response) { 'Authorization: Bearer ' . $conv['api_key'], ], CURLOPT_RETURNTRANSFER => false, - CURLOPT_WRITEFUNCTION => function ($ch, $data) use (&$fullContent) { + CURLOPT_WRITEFUNCTION => function ($ch, $data) use ( + &$fullContent, &$fullThinking, &$inThinking, &$promptTokens, &$completionTokens, &$aborted + ) { + if ($aborted || connection_aborted()) { + $aborted = true; + return 0; // 返回 0 中断 curl + } $lines = explode("\n", $data); foreach ($lines as $line) { $line = trim($line); @@ -311,10 +346,38 @@ $app->post('/api/chat', function (Request $request, Response $response) { if ($jsonStr === '[DONE]') continue; $parsed = json_decode($jsonStr, true); if (!$parsed) continue; - $delta = $parsed['choices'][0]['delta']['content'] ?? ''; - if ($delta) { - $fullContent .= $delta; - echo "data: " . json_encode(['type' => 'delta', 'content' => $delta]) . "\n\n"; + + // 处理 usage(最后一个 chunk) + if (isset($parsed['usage'])) { + $promptTokens = $parsed['usage']['prompt_tokens'] ?? 0; + $completionTokens = $parsed['usage']['completion_tokens'] ?? 0; + continue; + } + + $choice = $parsed['choices'][0] ?? null; + if (!$choice) continue; + $delta = $choice['delta'] ?? []; + + // DeepSeek V4: reasoning_content(思考过程) + $reasoning = $delta['reasoning_content'] ?? ''; + if ($reasoning) { + $fullThinking .= $reasoning; + echo "data: " . json_encode(['type' => 'thinking', 'content' => $reasoning]) . "\n\n"; + flush(); + continue; + } + + // 正常 content(最终答案) + $content = $delta['content'] ?? ''; + if ($content) { + // 第一次收到 content,表示 thinking 结束 + if ($inThinking && $fullThinking) { + $inThinking = false; + echo "data: " . json_encode(['type' => 'thinking_end']) . "\n\n"; + flush(); + } + $fullContent .= $content; + echo "data: " . json_encode(['type' => 'delta', 'content' => $content]) . "\n\n"; flush(); } } @@ -324,26 +387,128 @@ $app->post('/api/chat', function (Request $request, Response $response) { CURLOPT_CONNECTTIMEOUT => 30, ]); - $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_exec($ch); $error = curl_error($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); - if ($error) { + if ($error && $error !== 'Callback aborted') { $errMsg = 'Error: ' . $error; echo "data: " . json_encode(['type' => 'error', 'content' => $errMsg]) . "\n\n"; } - // Save assistant message - $stmt = $db->prepare('INSERT INTO messages (id, conversation_id, role, content, timestamp) VALUES (?, ?, ?, ?, ?)'); - $stmt->execute([$assistantMsgId, $conversationId, 'assistant', $fullContent, time() * 1000]); + if ($httpCode >= 400) { + $errMsg = "API 请求失败 (HTTP {$httpCode})"; + echo "data: " . json_encode(['type' => 'error', 'content' => $errMsg]) . "\n\n"; + } + + // 保存助手回复消息(包含 thinking 和 token 用量) + $stmt = $db->prepare('INSERT INTO messages (id, conversation_id, role, content, thinking, prompt_tokens, completion_tokens, timestamp) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'); + $stmt->execute([ + $assistantMsgId, $conversationId, 'assistant', + $fullContent, $fullThinking ?: null, + $promptTokens, $completionTokens, + time() * 1000 + ]); $stmt = $db->prepare('UPDATE conversations SET updated_at = ? WHERE id = ?'); $stmt->execute([time() * 1000, $conversationId]); - echo "data: " . json_encode(['type' => 'done', 'id' => $assistantMsgId, 'content' => $fullContent]) . "\n\n"; + echo "data: " . json_encode([ + 'type' => 'done', + 'id' => $assistantMsgId, + 'content' => $fullContent, + 'thinking' => $fullThinking, + 'promptTokens' => $promptTokens, + 'completionTokens' => $completionTokens, + ]) . "\n\n"; echo "data: [DONE]\n\n"; flush(); exit(0); })->add($authMiddleware); + +// ========== 模型配置模板路由 ========== + +// 获取当前用户的配置列表 +$app->get('/api/model-configs', function (Request $request, Response $response) { + $userId = $request->getAttribute('userId'); + $db = getDb(); + $stmt = $db->prepare('SELECT id, name, base_url, model_id, api_key, temperature, max_tokens, system_prompt, created_at, updated_at FROM model_configs WHERE user_id = ? ORDER BY updated_at DESC'); + $stmt->execute([$userId]); + $rows = $stmt->fetchAll(); + $response->getBody()->write(json_encode($rows)); + return $response->withHeader('Content-Type', 'application/json'); +})->add($authMiddleware); + +// 创建配置 +$app->post('/api/model-configs', function (Request $request, Response $response) { + $userId = $request->getAttribute('userId'); + $body = json_decode((string)$request->getBody(), true); + $db = getDb(); + $id = bin2hex(random_bytes(16)); + $now = time() * 1000; + $stmt = $db->prepare('INSERT INTO model_configs (id, user_id, name, base_url, model_id, api_key, temperature, max_tokens, system_prompt, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); + $stmt->execute([ + $id, $userId, + $body['name'] ?? '未命名', + $body['baseUrl'] ?? null, + $body['model'] ?? null, + $body['apiKey'] ?? null, + $body['temperature'] ?? 0.2, + $body['maxTokens'] ?? 8192, + $body['systemPrompt'] ?? null, + $now, $now + ]); + $stmt = $db->prepare('SELECT * FROM model_configs WHERE id = ?'); + $stmt->execute([$id]); + $row = $stmt->fetch(); + $response->getBody()->write(json_encode($row)); + return $response->withStatus(201)->withHeader('Content-Type', 'application/json'); +})->add($authMiddleware); + +// 更新配置 +$app->put('/api/model-configs/{id}', function (Request $request, Response $response, array $args) { + $userId = $request->getAttribute('userId'); + $id = $args['id']; + $body = json_decode((string)$request->getBody(), true); + $db = getDb(); + $stmt = $db->prepare('SELECT id FROM model_configs WHERE id = ? AND user_id = ?'); + $stmt->execute([$id, $userId]); + if (!$stmt->fetch()) { + $response->getBody()->write(json_encode(['error' => 'Config not found'])); + return $response->withStatus(404)->withHeader('Content-Type', 'application/json'); + } + $now = time() * 1000; + $stmt = $db->prepare('UPDATE model_configs SET name = ?, base_url = ?, model_id = ?, api_key = ?, temperature = ?, max_tokens = ?, system_prompt = ?, updated_at = ? WHERE id = ?'); + $stmt->execute([ + $body['name'] ?? null, + $body['baseUrl'] ?? null, + $body['model'] ?? null, + $body['apiKey'] ?? null, + $body['temperature'] ?? null, + $body['maxTokens'] ?? null, + $body['systemPrompt'] ?? null, + $now, $id + ]); + $stmt = $db->prepare('SELECT * FROM model_configs WHERE id = ?'); + $stmt->execute([$id]); + $row = $stmt->fetch(); + $response->getBody()->write(json_encode($row)); + return $response->withHeader('Content-Type', 'application/json'); +})->add($authMiddleware); + +// 删除配置 +$app->delete('/api/model-configs/{id}', function (Request $request, Response $response, array $args) { + $userId = $request->getAttribute('userId'); + $id = $args['id']; + $db = getDb(); + $stmt = $db->prepare('DELETE FROM model_configs WHERE id = ? AND user_id = ?'); + $stmt->execute([$id, $userId]); + if ($stmt->rowCount() === 0) { + $response->getBody()->write(json_encode(['error' => 'Config not found'])); + return $response->withStatus(404)->withHeader('Content-Type', 'application/json'); + } + $response->getBody()->write(json_encode(['success' => true])); + return $response->withHeader('Content-Type', 'application/json'); +})->add($authMiddleware); diff --git a/src/App.tsx b/src/App.tsx index a39133c..506f2ac 100755 --- a/src/App.tsx +++ b/src/App.tsx @@ -18,21 +18,34 @@ function App() { updateModelConfig, clearMessages, sendMessage, + regenerateMessage, stopStreaming, + reloadConversations, } = useChat(); const [sidebarOpen, setSidebarOpen] = useState(true); + const handleLogin = async (password: string) => { + const ok = await login(password); + if (ok) { + reloadConversations(); + } + return ok; + }; + if (isLoading) { return ( -
-
加载中...
+
+
+
+ INITIALIZING... +
); } if (!isAuthenticated) { - return ; + return ; } return ( @@ -53,6 +66,7 @@ function App() { conversation={activeConversation} isStreaming={isStreaming} onSendMessage={sendMessage} + onRegenerateMessage={regenerateMessage} onStopStreaming={stopStreaming} sidebarOpen={sidebarOpen} onToggleSidebar={() => setSidebarOpen(prev => !prev)} diff --git a/src/api/chat.ts b/src/api/chat.ts index de01b8a..f9531c9 100644 --- a/src/api/chat.ts +++ b/src/api/chat.ts @@ -1,20 +1,25 @@ const API_BASE = import.meta.env.VITE_API_BASE || ''; export interface ChatStreamEvent { - type: 'user' | 'delta' | 'done' | 'error'; + type: 'user' | 'thinking' | 'thinking_end' | 'delta' | 'done' | 'error'; id?: string; content?: string; + thinking?: string; + promptTokens?: number; + completionTokens?: number; } -export async function* sendMessageStream(conversationId: string, content: string): AsyncGenerator { +export async function* sendMessageStream(conversationId: string, content: string, regenerateFrom?: string): AsyncGenerator { const token = localStorage.getItem('chat_token'); + const body: Record = { conversationId, content }; + if (regenerateFrom) body.regenerateFrom = regenerateFrom; const res = await fetch(`${API_BASE}/api/chat`, { method: 'POST', headers: { 'Content-Type': 'application/json', ...(token ? { Authorization: `Bearer ${token}` } : {}), }, - body: JSON.stringify({ conversationId, content }), + body: JSON.stringify(body), }); if (!res.ok) { diff --git a/src/api/conversations.ts b/src/api/conversations.ts index 3887731..8bc295e 100644 --- a/src/api/conversations.ts +++ b/src/api/conversations.ts @@ -5,6 +5,9 @@ export interface ApiMessage { id: string; role: 'user' | 'assistant' | 'system'; content: string; + thinking: string | null; + prompt_tokens: number; + completion_tokens: number; timestamp: number; } @@ -29,8 +32,8 @@ function rowToModelConfig(row: ApiConversation): ModelConfig { apiKey: row.api_key || '', baseUrl: row.model_base_url || '', model: row.model_id || '', - temperature: row.temperature ?? 0.7, - maxTokens: row.max_tokens ?? 4096, + temperature: row.temperature ?? 0.2, + maxTokens: row.max_tokens ?? 8192, systemPrompt: row.system_prompt || '', }; } diff --git a/src/api/model-configs.ts b/src/api/model-configs.ts new file mode 100644 index 0000000..7fe185b --- /dev/null +++ b/src/api/model-configs.ts @@ -0,0 +1,84 @@ +import { apiGet, apiPost, apiPut, apiDelete } from './client'; +import type { ModelConfig } from '@/types'; + +interface ApiModelConfig { + id: string; + name: string; + base_url: string; + model_id: string; + api_key: string; + temperature: number; + max_tokens: number; + system_prompt: string; + created_at: number; + updated_at: number; +} + +function rowToModelConfig(row: ApiModelConfig): ModelConfig { + return { + name: row.name, + apiKey: row.api_key || '', + baseUrl: row.base_url || '', + model: row.model_id || '', + temperature: row.temperature ?? 0.2, + maxTokens: row.max_tokens ?? 8192, + systemPrompt: row.system_prompt || '', + }; +} + +export interface SavedModelConfig { + id: string; + config: ModelConfig; + createdAt: number; + updatedAt: number; +} + +export async function listModelConfigs(): Promise { + const rows = await apiGet('/model-configs') as ApiModelConfig[]; + return rows.map(row => ({ + id: row.id, + config: rowToModelConfig(row), + createdAt: row.created_at, + updatedAt: row.updated_at, + })); +} + +export async function createModelConfig(config: ModelConfig): Promise { + const row = await apiPost('/model-configs', { + name: config.name, + baseUrl: config.baseUrl, + model: config.model, + apiKey: config.apiKey, + temperature: config.temperature, + maxTokens: config.maxTokens, + systemPrompt: config.systemPrompt, + }) as ApiModelConfig; + return { + id: row.id, + config: rowToModelConfig(row), + createdAt: row.created_at, + updatedAt: row.updated_at, + }; +} + +export async function updateModelConfig(id: string, config: ModelConfig): Promise { + const row = await apiPut(`/model-configs/${id}`, { + name: config.name, + baseUrl: config.baseUrl, + model: config.model, + apiKey: config.apiKey, + temperature: config.temperature, + maxTokens: config.maxTokens, + systemPrompt: config.systemPrompt, + }) as ApiModelConfig; + return { + id: row.id, + config: rowToModelConfig(row), + createdAt: row.created_at, + updatedAt: row.updated_at, + }; +} + +export async function deleteModelConfig(id: string): Promise { + await apiDelete(`/model-configs/${id}`); +} diff --git a/src/components/ChatArea.tsx b/src/components/ChatArea.tsx index 298dc2f..5fbe049 100755 --- a/src/components/ChatArea.tsx +++ b/src/components/ChatArea.tsx @@ -1,5 +1,6 @@ import { useState, useRef, useEffect, useCallback } from 'react'; import ReactMarkdown from 'react-markdown'; +import remarkGfm from 'remark-gfm'; import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism'; import { @@ -11,6 +12,7 @@ import { Check, Menu, Sparkles, + RefreshCw, } from 'lucide-react'; import type { Conversation, Message } from '@/types'; @@ -18,6 +20,7 @@ interface ChatAreaProps { conversation: Conversation | null; isStreaming: boolean; onSendMessage: (content: string) => void; + onRegenerateMessage: (messageId: string) => void; onStopStreaming: () => void; sidebarOpen: boolean; onToggleSidebar: () => void; @@ -60,8 +63,9 @@ function CodeBlock({ language, value }: { language: string; value: string }) { ); } -function MessageBubble({ message, isStreaming }: { message: Message; isStreaming: boolean }) { +function MessageBubble({ message, isStreaming, onRegenerate }: { message: Message; isStreaming: boolean; onRegenerate?: () => void }) { const [copied, setCopied] = useState(false); + const [thinkingOpen, setThinkingOpen] = useState(false); const handleCopy = async () => { await navigator.clipboard.writeText(message.content); @@ -101,9 +105,30 @@ function MessageBubble({ message, isStreaming }: { message: Message; isStreaming
+ {/* 思考过程(可折叠) */} + {message.thinking && ( +
+ + {thinkingOpen && ( +
+ {message.thinking} +
+ )} +
+ )} {message.content || isStreaming ? ( -
+
- {/* Streaming cursor */} + {/* 流式输出光标 */} {isStreaming && !message.content && ( )} @@ -189,15 +214,37 @@ function MessageBubble({ message, isStreaming }: { message: Message; isStreaming
)} - {/* Copy button for assistant messages */} - {message.content && ( - + {/* Token 用量 */} + {(message.promptTokens || message.completionTokens) && ( +
+ {message.promptTokens ? 输入: {message.promptTokens} tokens : null} + {message.completionTokens ? 输出: {message.completionTokens} tokens : null} +
)} + + {/* 操作按钮:复制 + 重新生成 */} +
+ {message.content && ( + + )} + {onRegenerate && message.content && !isStreaming && ( + + )} +
@@ -208,6 +255,7 @@ export default function ChatArea({ conversation, isStreaming, onSendMessage, + onRegenerateMessage, onStopStreaming, sidebarOpen, onToggleSidebar, @@ -216,7 +264,7 @@ export default function ChatArea({ const textareaRef = useRef(null); const messagesEndRef = useRef(null); - // Auto-resize textarea + // 输入框自动调整高度 useEffect(() => { const textarea = textareaRef.current; if (textarea) { @@ -225,7 +273,7 @@ export default function ChatArea({ } }, [input]); - // Auto-scroll to bottom + // 自动滚动到底部 useEffect(() => { messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [conversation?.messages]); @@ -249,7 +297,7 @@ export default function ChatArea({ return (
- {/* Header */} + {/* 顶部标题栏 */}
{!sidebarOpen && ( @@ -279,7 +327,7 @@ export default function ChatArea({ )}
- {/* Messages area */} + {/* 消息列表区域 */}
{!conversation || conversation.messages.length === 0 ? (
@@ -310,11 +358,18 @@ export default function ChatArea({
) : (
- {conversation.messages.map(message => ( + {conversation.messages.map((message, idx) => ( { + // 找到该助手消息对应的用户消息 + const userMsg = conversation.messages[idx - 1]; + if (userMsg && userMsg.role === 'user') { + onRegenerateMessage(userMsg.id); + } + }} /> ))}
@@ -322,7 +377,7 @@ export default function ChatArea({ )}
- {/* Input area */} + {/* 输入区域 */}
diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index c18d081..a2026d3 100755 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -14,9 +14,14 @@ import { Key, Save, RotateCcw, + Pencil, + ChevronLeft, + Layers, } from 'lucide-react'; import type { Conversation, ModelConfig } from '@/types'; import { PRESET_MODELS, DEFAULT_MODEL_CONFIG } from '@/types'; +import { listModelConfigs, createModelConfig, updateModelConfig, deleteModelConfig } from '@/api/model-configs'; +import type { SavedModelConfig } from '@/api/model-configs'; interface SidebarProps { conversations: Conversation[]; @@ -44,13 +49,28 @@ export default function Sidebar({ onToggle, }: SidebarProps) { const [showConfig, setShowConfig] = useState(false); + const [configMode, setConfigMode] = useState<'list' | 'edit'>('list'); const [editingConfig, setEditingConfig] = useState(DEFAULT_MODEL_CONFIG); + const [editingConfigId, setEditingConfigId] = useState(null); const [deleteConfirm, setDeleteConfirm] = useState(null); const [pendingOpenConfig, setPendingOpenConfig] = useState(false); + // 从后端 API 加载已保存的配置列表 + const [savedConfigs, setSavedConfigs] = useState([]); + const [loadingConfigs, setLoadingConfigs] = useState(false); + + useEffect(() => { + if (!showConfig) return; + setLoadingConfigs(true); + listModelConfigs() + .then(setSavedConfigs) + .catch(err => console.error('Failed to load model configs:', err)) + .finally(() => setLoadingConfigs(false)); + }, [showConfig]); + const handleEditConfig = () => { if (activeConversation) { - setEditingConfig({ ...activeConversation.modelConfig }); + setConfigMode('list'); setShowConfig(true); } else { onCreateConversation(); @@ -58,22 +78,65 @@ export default function Sidebar({ } }; - // Open config when a new conversation is created via the config button + // 通过配置按钮创建新会话后,自动打开配置面板 useEffect(() => { if (pendingOpenConfig && activeConversation) { - setEditingConfig({ ...activeConversation.modelConfig }); + setConfigMode('list'); setShowConfig(true); setPendingOpenConfig(false); } }, [pendingOpenConfig, activeConversation]); - const handleSaveConfig = () => { + // 应用配置到当前会话 + const handleApplyConfig = (config: ModelConfig) => { if (activeConversation) { - onUpdateModelConfig(activeConversation.id, editingConfig); - setShowConfig(false); + onUpdateModelConfig(activeConversation.id, config); } }; + // 打开编辑表单 + const handleOpenEdit = (saved: SavedModelConfig) => { + setEditingConfig({ ...saved.config }); + setEditingConfigId(saved.id); + setConfigMode('edit'); + }; + + // 打开新建表单 + const handleOpenCreate = () => { + setEditingConfig({ ...DEFAULT_MODEL_CONFIG, name: '新配置' }); + setEditingConfigId(null); + setConfigMode('edit'); + }; + + // 保存配置(新建或编辑) + const handleSaveConfig = async () => { + try { + if (editingConfigId) { + await updateModelConfig(editingConfigId, editingConfig); + } else { + await createModelConfig(editingConfig); + } + // 刷新列表 + const configs = await listModelConfigs(); + setSavedConfigs(configs); + handleApplyConfig(editingConfig); + setConfigMode('list'); + } catch (err) { + console.error('Save config failed:', err); + } + }; + + // 删除配置 + const handleDeleteConfig = async (id: string) => { + try { + await deleteModelConfig(id); + setSavedConfigs(prev => prev.filter(c => c.id !== id)); + } catch (err) { + console.error('Delete config failed:', err); + } + }; + + // 预设模型快速填充 const handlePresetSelect = (preset: typeof PRESET_MODELS[0]) => { setEditingConfig(prev => ({ ...prev, @@ -94,7 +157,7 @@ export default function Sidebar({ return ( <> - {/* Mobile overlay */} + {/* 移动端遮罩层 */} {isOpen && (
)} - {/* Sidebar */} + {/* 侧边栏 */}
- {/* Conversation list */} + {/* 会话列表 */}
{conversations.length === 0 ? (
@@ -182,7 +245,7 @@ export default function Sidebar({ )}
- {/* Bottom actions */} + {/* 底部操作区 */}
{activeConversation && ( + ) : null} - 模型配置 + {configMode === 'list' ? '模型配置' : (editingConfigId ? '编辑配置' : '新建配置')}
-
- {/* Preset models */} -
- -
- {PRESET_MODELS.map(preset => ( - - ))} + {configMode === 'list' ? ( + /* ===== 配置列表模式 ===== */ +
+ {/* 新增配置按钮 */} + + + {loadingConfigs ? ( +
加载中...
+ ) : savedConfigs.length === 0 ? ( +
+ +

暂无保存的配置

+

点击上方「新建配置」创建

+
+ ) : ( +
+ {savedConfigs.map(saved => { + const isActive = activeConversation?.modelConfig.name === saved.config.name; + return ( +
+
+
+
+ + {saved.config.name} + + {isActive && ( + 当前使用 + )} +
+
+ {saved.config.model} · {saved.config.baseUrl?.replace(/^https?:\/\//, '').split('/')[0]} +
+
+ temp: {saved.config.temperature} · max: {saved.config.maxTokens} tokens +
+
+
+ + +
+
+ {/* 应用按钮 */} + {!isActive && ( + + )} +
+ ); + })} +
+ )} + + {/* 预设模型(快速新建) */} +
+ +
+ {PRESET_MODELS.map(preset => ( + + ))} +
- - {/* Config name */} -
- - setEditingConfig(prev => ({ ...prev, name: e.target.value }))} - className="w-full bg-[#f5f5f5] border border-[#ddd] rounded-lg px-4 py-3 text-sm text-[#333] outline-none focus:border-[#16a34a]/50 transition-colors" - placeholder="给这个配置起个名字" - /> -
- - {/* Base URL */} -
- - setEditingConfig(prev => ({ ...prev, baseUrl: e.target.value }))} - className="w-full bg-[#f5f5f5] border border-[#ddd] rounded-lg px-4 py-3 text-sm text-[#333] outline-none focus:border-[#16a34a]/50 transition-colors font-mono" - placeholder="https://api.example.com" - /> -
- - {/* Model name */} -
- - setEditingConfig(prev => ({ ...prev, model: e.target.value }))} - className="w-full bg-[#f5f5f5] border border-[#ddd] rounded-lg px-4 py-3 text-sm text-[#333] outline-none focus:border-[#16a34a]/50 transition-colors font-mono" - placeholder="gpt-4o" - /> -
- - {/* API Key */} -
- - setEditingConfig(prev => ({ ...prev, apiKey: e.target.value }))} - className="w-full bg-[#f5f5f5] border border-[#ddd] rounded-lg px-4 py-3 text-sm text-[#333] outline-none focus:border-[#16a34a]/50 transition-colors font-mono" - placeholder="sk-..." - /> -
- - {/* Temperature */} -
- - setEditingConfig(prev => ({ ...prev, temperature: parseFloat(e.target.value) }))} - className="w-full accent-[#16a34a]" - /> -
- 精确 (0) - 平衡 (1) - 创意 (2) + ) : ( + /* ===== 编辑/新建配置模式 ===== */ +
+ {/* 预设模型快速填充 */} +
+ +
+ {PRESET_MODELS.map(preset => ( + + ))} +
-
- {/* Max Tokens */} -
- - setEditingConfig(prev => ({ ...prev, maxTokens: parseInt(e.target.value) }))} - className="w-full accent-[#16a34a]" - /> -
+ {/* 配置名称 */} +
+ + setEditingConfig(prev => ({ ...prev, name: e.target.value }))} + className="w-full bg-white border border-[#ddd] rounded-lg px-4 py-2.5 text-sm text-[#333] outline-none focus:border-[#16a34a]/50 transition-colors" + placeholder="给这个配置起个名字" + /> +
- {/* System Prompt */} -
- -