外观
OpenAI 兼容接口
FlashCoding.AI 的 OpenAI 兼容入口适合已有 OpenAI SDK、聊天客户端或服务端程序。通常只需替换 API Key、Base URL 和模型 ID,不必改写业务逻辑。
先确认模型 ID
模型是否可用、支持哪些参数,会随账户、分组和渠道变化。请从 FlashCoding.AI 控制台复制当前可用的模型 ID,不要根据本文示例猜测。
基础配置
| 配置项 | 值 |
|---|---|
| Base URL | https://flashcoding.ai/v1 |
| 鉴权 | Authorization: Bearer sk-your-key |
| 请求格式 | Content-Type: application/json |
使用 SDK 时填写 Base URL;手写 HTTP 请求时,在它后面追加具体路径。不要得到 .../v1/v1/... 这样的重复地址。
Chat Completions
POST /v1/chat/completions 使用消息数组表达对话,兼容面较广,适合普通文本对话和大多数现有客户端。
bash
curl https://flashcoding.ai/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "your-model-id",
"messages": [
{"role": "system", "content": "你是一个回答简洁的助手。"},
{"role": "user", "content": "请只回复:连接成功"}
]
}'1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
成功时,文本通常位于 choices[0].message.content。不要只检查 HTTP 状态码;还应确认 choices 存在,并记录响应中的用量字段(若有)。
流式输出
在请求体中加入 "stream": true:
bash
curl -N https://flashcoding.ai/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "your-model-id",
"messages": [
{"role": "user", "content": "用三句话介绍樱花。"}
],
"stream": true
}'1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
流式响应通常采用 Server-Sent Events。客户端应逐行消费事件,并能处理网络中断、空增量和结束标记。模型是否支持流式输出,以控制台说明和实际响应为准。
Responses API
POST /v1/responses 使用 input 描述输入。适合已经迁移到 OpenAI Responses API 的应用。
bash
curl https://flashcoding.ai/v1/responses \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "your-model-id",
"input": "请只回复:Responses API 连接成功"
}'1
2
3
4
5
6
7
2
3
4
5
6
7
Responses 与 Chat Completions 的响应结构不同。不要用 choices[0] 解析 Responses;使用新版 SDK 的 output_text 辅助属性,或遍历 output 中的内容项。
接口能力取决于模型与渠道
并非所有 OpenAI 兼容模型都支持 Responses、工具调用、结构化输出或同一组可选参数。遇到 400 或 404 时,先核对控制台的协议说明,再删去非必要参数做最小请求。
使用官方 SDK
Python
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FLASHCODING_API_KEY"],
base_url="https://flashcoding.ai/v1",
)
response = client.chat.completions.create(
model="your-model-id",
messages=[{"role": "user", "content": "请只回复:连接成功"}],
)
print(response.choices[0].message.content)1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
运行前设置环境变量,不要把真实密钥写进源码:
bash
export FLASHCODING_API_KEY="sk-your-key"1
PowerShell 可使用:
powershell
$env:FLASHCODING_API_KEY = "sk-your-key"1
JavaScript
js
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.FLASHCODING_API_KEY,
baseURL: 'https://flashcoding.ai/v1',
})
const response = await client.chat.completions.create({
model: 'your-model-id',
messages: [{ role: 'user', content: '请只回复:连接成功' }],
})
console.log(response.choices[0].message.content)1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
浏览器端代码会暴露密钥。Web 应用应由自己的后端调用 FlashCoding.AI,再把必要结果返回前端。
常用参数
| 参数 | 作用 | 使用建议 |
|---|---|---|
model | 指定模型 ID | 必填;从控制台复制 |
messages | Chat Completions 的对话内容 | 按角色顺序提交 |
input | Responses 的输入 | 可为字符串或结构化输入 |
stream | 请求流式返回 | 客户端需支持 SSE |
max_tokens / max_output_tokens | 限制输出长度 | 参数名取决于接口与模型 |
temperature | 调整采样随机性 | 部分模型不接受,非必要时省略 |
上线前检查
- 密钥仅保存在服务端环境变量或密钥管理服务中。
- 请求设置合理的连接、读取和总超时。
- 只对
429、部分网络错误和5xx做有限次数的指数退避重试。 - 日志记录时间、模型、耗时和业务请求 ID,但不记录完整密钥或敏感提示词。
- 解析器按所选协议实现,不混用 Chat Completions 与 Responses 的字段。
请求失败时转到状态码与错误;不确定 Base URL 时查看Base URL 与协议。
