1515- ** 完全兼容 OpenAI API** : 支持标准的 ` /v1/models ` 和 ` /v1/chat/completions ` 端点
1616- ** 流式响应** : 通过 Server-Sent Events (SSE) 实时返回增量聊天内容
1717- ** 非流式响应** : 等待完整响应后一次性返回 JSON 格式的最终结果
18+ - ** 可选身份认证** : 支持 Bearer Token 认证保护 API 端点
1819- ** 无需外部依赖** : 使用 Deno 原生 WebSocket 实现 Socket.IO 协议
1920
2021## 快速开始
@@ -33,6 +34,25 @@ deno task dev
3334
3435服务器将在 ` http://localhost:8000 ` 上启动。
3536
37+ #### 可选:启用身份认证
38+
39+ 如需启用 API 身份认证,设置环境变量 ` USER_SET_KEY ` :
40+
41+ ``` bash
42+ # Linux/macOS
43+ export USER_SET_KEY=" your-secret-key"
44+ deno task dev
45+
46+ # Windows (PowerShell)
47+ $env :USER_SET_KEY=" your-secret-key"
48+ deno task dev
49+ ```
50+
51+ 启用后,所有 ` /v1/chat/completions ` 请求需要在 Header 中携带:
52+ ```
53+ Authorization: Bearer your-secret-key
54+ ```
55+
3656### Deno Deploy 部署
3757
3858本项目可以直接部署到 Deno Deploy,无需服务器维护。
@@ -54,7 +74,9 @@ deno task dev
5474
55753 . ** 配置部署设置**
5676 - ** 入口点** : 选择 ` deploy.ts `
57- - ** 环境变量** : 无需额外配置(所有配置已在代码中)
77+ - ** 环境变量** (可选):
78+ - 如需启用身份认证,添加 ` USER_SET_KEY ` 环境变量
79+ - 不设置则跳过认证
5880 - 点击 "Deploy" 开始部署
5981
60824 . ** 获取部署 URL**
@@ -138,6 +160,23 @@ curl -X POST http://localhost:8000/v1/chat/completions \
138160 }'
139161```
140162
163+ ### 带身份认证的请求
164+
165+ 如果启用了 ` USER_SET_KEY ` 环境变量,需要添加 Authorization header:
166+
167+ ``` bash
168+ curl -X POST http://localhost:8000/v1/chat/completions \
169+ -H " Content-Type: application/json" \
170+ -H " Authorization: Bearer your-secret-key" \
171+ -d ' {
172+ "model": "gpt-5",
173+ "messages": [
174+ {"role": "user", "content": "Hello!"}
175+ ],
176+ "stream": false
177+ }'
178+ ```
179+
141180### 流式聊天完成
142181
143182``` bash
@@ -163,11 +202,12 @@ curl -N -X POST http://localhost:8000/v1/chat/completions \
163202
164203## 工作原理
165204
166- 1 . ** 认证** : 获取 LangFast 的匿名访问令牌
167- 2 . ** 创建 Prompt** : 在 LangFast 中创建一个 prompt 并获取其 ID
168- 3 . ** 启动运行** : 启动 prompt 运行并获取任务 ID
169- 4 . ** WebSocket 连接** : 通过 WebSocket 连接接收流式响应
170- 5 . ** 格式转换** : 将响应转换为 OpenAI 兼容的格式
205+ 1 . ** 身份认证(可选)** : 验证请求的 Bearer Token(如果设置了 ` USER_SET_KEY ` )
206+ 2 . ** LangFast 认证** : 获取 LangFast 的匿名访问令牌
207+ 3 . ** 创建 Prompt** : 在 LangFast 中创建一个 prompt 并获取其 ID
208+ 4 . ** 启动运行** : 启动 prompt 运行并获取任务 ID
209+ 5 . ** WebSocket 连接** : 通过 WebSocket 连接接收流式响应
210+ 6 . ** 格式转换** : 将响应转换为 OpenAI 兼容的格式
171211
172212## 开发
173213
0 commit comments