From c92184c958ed77a3cf71fba7f449f0931ad277b5 Mon Sep 17 00:00:00 2001 From: nail <5529229+nailchu@user.noreply.gitee.com> Date: Wed, 5 Aug 2026 13:33:10 +0800 Subject: [PATCH] Fix some bugs. --- README.md | 31 +++++++++++++++++++++++++++++++ public/index.html | 13 ++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f1b6361 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# cf-chatbot + +基于 Cloudflare Workers + Pages 的 AI 聊天机器人,支持自定义 OpenAI 兼容 API。 + +## Quick Start + +```bash +pnpm install +pnpm dev +``` + +## Configuration + +### 环境变量(wrangler.jsonc / Cloudflare Dashboard) + +| 变量 | 说明 | 默认值 | +|---|---|---| +| `OPENAI_BASE_URL` | API 地址 | `http://awa.kim:8000/v1` | +| `MODEL` | 模型名称 | `gpt-5.4-nano` | +| `SYSTEM_PROMPT` | 系统提示词 | `You are a helpful assistant.` | +| `OPENAI_API_KEY` | API 密钥(可选,前端也可配置) | - | + +### 前端 Settings + +点击页面右上角 **Settings** 按钮,可配置 Model、API Key、User ID,数据存储在浏览器 localStorage。 + +## Deploy + +```bash +pnpm deploy +``` diff --git a/public/index.html b/public/index.html index c2d1e8a..e637d87 100644 --- a/public/index.html +++ b/public/index.html @@ -75,13 +75,20 @@ function getConfig() { return { - model: localStorage.getItem('chat_model') || '', - key: localStorage.getItem('chat_key') || '', - userId: localStorage.getItem('chat_userid') || '', + model: localStorage.getItem('chat_model') || 'gpt-5.4-nano', + key: localStorage.getItem('chat_key') || 'sk-ABCD', + userId: localStorage.getItem('chat_userid') || '65535', } } loadConfig() + function saveDefaults() { + getConfig() // trigger defaults + if (!localStorage.getItem('chat_model')) localStorage.setItem('chat_model', 'gpt-5.4-nano') + if (!localStorage.getItem('chat_key')) localStorage.setItem('chat_key', 'sk-ABCD') + if (!localStorage.getItem('chat_userid')) localStorage.setItem('chat_userid', '65535') + } + saveDefaults() document.getElementById('modelInput').addEventListener('input', saveConfig) document.getElementById('keyInput').addEventListener('input', saveConfig) document.getElementById('userIdInput').addEventListener('input', saveConfig)