聊天补全与 Messages:两套口径别混用
OpenAI 兼容聊天补全和 Anthropic Messages 都是“发消息、拿回复”,但地址、认证 Header、请求体和返回结构不同。本章按两套口径分别给出最小请求、SDK 写法、流式输出和排障顺序。
看这篇前,先确认你要接哪种入口
聊天接口最常见的问题不是代码不会写,而是把 OpenAI 兼容、Claude 原生和模型能力混在一起。开始前先把下面 4 件事定下来。
| 要确认什么 | 怎么判断 | 没确认时看哪里 |
|---|---|---|
| 客户端或 SDK 类型 | OpenAI SDK、通用聊天客户端和 Codex 类工具通常走 OpenAI 兼容;Claude Code 和 Claude SDK 通常走 Messages。 | 工具接入地址速查 |
| Base URL 层级 | OpenAI 兼容配置填 https://www.6xin.cc/v1;Claude 原生工具配置填 https://www.6xin.cc。 |
接口格式表 |
| 认证是否可用 | 当前令牌能通过最小请求,且不会暴露在前端、截图或日志里。 | API 认证与令牌 |
| 模型是否匹配 | 模型 ID 来自模型广场或 /v1/models,并且适合当前接口口径。 |
模型列表与可见性 |
该选哪套接口
| 你的场景 | 优先接口 | Base URL | 返回结果看哪里 |
|---|---|---|---|
| OpenAI SDK、通用聊天客户端、Codex CLI、OpenAI 兼容后端 | POST /v1/chat/completions |
https://www.6xin.cc/v1 |
choices[0].message.content |
| Claude SDK、Claude Code、需要 Claude 原生 Messages 口径的应用 | POST /v1/messages |
配置工具时用 https://www.6xin.cc |
content 文本块 |
| 只想确认令牌能看到哪些模型 | GET /v1/models |
https://www.6xin.cc/v1 |
模型数组,但还要继续跑真实生成 |
https://www.6xin.cc/v1 直接填进 Claude Code 的 Claude 原生 Base URL,也不要把 https://www.6xin.cc 当成 OpenAI SDK 的完整 Base URL。两套协议要分开配置。
OpenAI 兼容聊天补全
这是大多数 SDK、聊天客户端和后端服务最容易接入的方式。请求体使用 messages 数组,响应里读取 choices[0].message.content。
export COMEU_API_KEY="sk-你的6星中转令牌"
curl "https://www.6xin.cc/v1/chat/completions" \
-H "Authorization: Bearer $COMEU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1-mini",
"messages": [
{"role": "system", "content": "你是一个简洁的助手。"},
{"role": "user", "content": "用一句话介绍 6星中转。"}
],
"temperature": 0.7
}'
Python SDK 示例
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["COMEU_API_KEY"],
base_url="https://www.6xin.cc/v1",
)
response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[
{"role": "system", "content": "你是一个简洁的助手。"},
{"role": "user", "content": "用一句话介绍 6星中转。"},
],
)
print(response.choices[0].message.content)
Node.js SDK 示例
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.COMEU_API_KEY,
baseURL: "https://www.6xin.cc/v1",
});
const response = await client.chat.completions.create({
model: "gpt-4.1-mini",
messages: [
{ role: "system", content: "你是一个简洁的助手。" },
{ role: "user", content: "用一句话介绍 6星中转。" },
],
});
console.log(response.choices[0].message.content);
Anthropic Messages 口径
Claude 原生工具通常按 Messages 协议组织请求。配置 Claude Code 或 Claude SDK 的 Base URL 时填 6星中转 根地址;如果你直接用 curl 请求接口,则写完整路径 https://www.6xin.cc/v1/messages。
export COMEU_API_KEY="sk-你的6星中转令牌"
curl "https://www.6xin.cc/v1/messages" \
-H "x-api-key: $COMEU_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-示例模型",
"max_tokens": 512,
"system": "你是一个简洁的助手。",
"messages": [
{"role": "user", "content": "用一句话介绍 6星中转。"}
]
}'
| 字段 | 作用 | 常见错误 |
|---|---|---|
model |
要调用的 Claude 口径模型 ID。 | 手写模型名、分组不匹配,或把 OpenAI 兼容模型填进来。 |
max_tokens |
限制输出长度。 | 漏填或设置过小,导致输出被截断。 |
system |
系统提示词。 | 把 system 当成普通 user 消息,导致行为不稳定。 |
messages |
用户和助手的对话历史。 | 角色写错、历史太长、内容结构和客户端不匹配。 |
流式输出怎么测
流式输出适合命令行工具和长回复场景。第一次上线前要单独测试流式请求,因为“非流式成功”不代表“流式事件一定能被你的客户端正确解析”。
OpenAI 兼容流式
curl "https://www.6xin.cc/v1/chat/completions" \
-H "Authorization: Bearer $COMEU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1-mini",
"stream": true,
"messages": [
{"role": "user", "content": "分三点说明 API 接入前要检查什么。"}
]
}'
Messages 流式
curl "https://www.6xin.cc/v1/messages" \
-H "x-api-key: $COMEU_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-示例模型",
"max_tokens": 512,
"stream": true,
"messages": [
{"role": "user", "content": "分三点说明 API 接入前要检查什么。"}
]
}'
放进工具或客户端时怎么填
| 工具类型 | Base URL | Key 字段 | 验证方式 |
|---|---|---|---|
| OpenAI 兼容客户端 | https://www.6xin.cc/v1 |
API Key / Bearer Token | 发一条短聊天,看返回文本和用量日志。 |
| Codex CLI | https://www.6xin.cc/v1 |
OpenAI 兼容 Key | 跑一条最小 prompt,确认模型 ID 和分组。 |
| Claude Code | https://www.6xin.cc |
Claude 口径 Key | 用 Claude Code 真实发起一次消息,不只看配置保存成功。 |
| n8n 或自动化平台 | 按所选节点协议填写 | 放入 Credential / Secret | 先单节点执行,再接入完整工作流。 |
如果你正在接工具,可以先看 工具接入总览,再进入对应工具页。
真实请求验收顺序
不要只看 SDK 初始化成功,也不要只看模型列表。推荐按下面顺序做,能快速定位问题属于认证、分组、模型还是协议。
检查令牌是否能读到
服务端读取环境变量,日志只输出是否存在和脱敏片段。
请求模型列表
用当前令牌请求 /v1/models,确认目标模型可见。
跑非流式短生成
先让模型回复 OK,减少上下文、温度、工具调用等变量。
再测流式或长上下文
只有基础请求稳定后,再加流式、长上下文、工具调用或图片输入。
核对日志和错误处理
确认业务代码能区分 401、403、404、429、5xx,并有可观测日志。
常见错误对照
| 现象 | 大概率原因 | 处理方式 |
|---|---|---|
| OpenAI SDK 报 404 | Base URL 没带 /v1,或路径被客户端拼错。 |
OpenAI 兼容 Base URL 填 https://www.6xin.cc/v1。 |
| Claude Code 报 404 | Claude 原生 Base URL 多写了 /v1。 |
Claude Code Base URL 填根地址 https://www.6xin.cc。 |
| 401 | 令牌为空、Header 写错、环境变量没生效。 | 先看 API 认证与令牌。 |
| 403 或 model not found | 模型分组不匹配,或模型 ID 不是当前令牌可见模型。 | 从模型广场复制模型 ID,或看 模型列表与可见性。 |
| 非流式成功,流式失败 | 客户端或代理没有正确处理 SSE / 流式事件。 | 在最终部署环境测试流式;必要时关闭代理缓冲。 |
| 返回被截断 | max_tokens 太小,或上下文太长。 |
调整输出上限,减少历史消息,再重新验收。 |
这些情况先停下来,不要继续加复杂参数
聊天接口排障要从最小请求开始。只要基础请求还没有稳定返回,就不要先加流式、长上下文、工具调用或业务系统变量。
| 现象 | 先停止什么 | 下一步只做这一件事 |
|---|---|---|
| 非流式短请求失败 | 不要先测流式或长上下文。 | 把请求缩到一个模型、一条用户消息、最小输出长度。 |
| OpenAI SDK 报 404 | 不要重装 SDK。 | 确认 Base URL 是 https://www.6xin.cc/v1,并看实际请求路径。 |
| Claude 原生请求报 404 | 不要套 OpenAI 兼容地址。 | Claude Code 这类工具填根地址 https://www.6xin.cc。 |
| 只有流式失败 | 不要先怀疑模型不可用。 | 检查代理、SSE 解析、缓冲和部署环境是否支持逐段返回。 |
| 6星中转 用量日志没有记录 | 不要继续在业务系统里重试。 | 说明请求没打到 6星中转,先查 Base URL、代理和环境变量。 |
改错后怎么退回最小可用请求
聊天接口排障最怕连续改很多项。遇到异常时,先回到一条能独立复现的最小请求,再把业务参数一项一项加回来。
| 刚才改了什么 | 先退回到什么状态 | 回退后怎么确认 |
|---|---|---|
| Base URL 或 SDK endpoint | OpenAI 兼容退回 https://www.6xin.cc/v1;Claude 原生配置退回 https://www.6xin.cc。 |
用 curl 直请求对应完整路径,确认不是客户端拼接问题。 |
| 模型 ID | 从 /v1/models 或模型广场重新复制一个当前令牌可见模型。 |
先跑非流式短请求,只要求回复 OK。 |
| 请求参数 | 只保留 model、一条 user 消息和必要的 max_tokens。 |
短请求成功后,再逐项加回 temperature、system、历史消息、工具调用或流式。 |
| 流式输出 | 先关掉 stream,确认非流式能稳定返回。 |
再在最终部署环境测试流式,检查代理和客户端是否逐段读取。 |
| 令牌或分组 | 换回上一条已验证令牌,或创建同分组的新令牌;不要同时换模型和 Base URL。 | 用量日志能看到短请求,且 401/403 消失。 |
聊天接口验收清单
| 验收项 | 通过标准 | 相关教程 |
|---|---|---|
| OpenAI 兼容请求 | /v1/chat/completions 返回 choices[0].message.content。 |
OpenAI 兼容聊天补全 |
| Messages 请求 | /v1/messages 返回可读取的 content 文本块。 |
Anthropic Messages 口径 |
| Base URL | OpenAI 兼容带 /v1;Claude 原生配置填根地址。 |
接口格式 |
| 流式输出 | 部署环境能逐段收到响应,而不是等完整结果才返回。 | 流式输出 |
| 错误处理 | 业务代码能区分认证、分组、路径、限流和临时失败。 | FAQ 与排障 |
聊天请求仍然失败时,提交这些复现信息
提交问题前,先把请求缩到最小:一个模型、一条用户消息、一个接口口径。这样才能判断是协议、令牌、模型、流式解析还是业务代码问题。
| 信息 | 建议内容 | 不要提供什么 |
|---|---|---|
| 接口口径 | /v1/chat/completions、/v1/messages,以及是否开启 stream。 |
不要只说“聊天接口”。 |
| Base URL | https://www.6xin.cc/v1 或 https://www.6xin.cc,按你的工具实际填写。 |
不要把 OpenAI 兼容和 Claude 原生地址混在一起。 |
| 最小请求体 | 保留模型 ID、一条短消息、必要的 max_tokens 或 messages 字段。 |
不要提交含客户数据、隐私内容或完整业务上下文的请求体。 |
| 错误和日志 | HTTP 状态码、错误摘要、6星中转 用量日志是否有对应记录。 | 不要贴完整 API Key 或未脱敏业务日志。 |
| 客户端环境 | curl、Python SDK、Node.js SDK、Claude Code、Codex CLI、代理或部署平台。 | 不要把多个环境的错误混成一个结论。 |