OpenAI 接口
使用 OpenAI SDK 调用 Kouri Ai 的各类模型
Kouri Ai 完全兼容 OpenAI API 格式,您可以直接使用 OpenAI 官方 SDK,只需修改 base_url 和 api_key 即可调用所有支持的模型。
接口地址
| 端点类型 | 地址 | 说明 |
|---|---|---|
| Chat Completions | https://api.kourichat.com/v1/chat/completions | 聊天补全接口 |
| Responses | https://api.kourichat.com/v1/responses | Response 接口 |
| 标准端点 | https://api.kourichat.com/v1 | SDK 推荐使用(需加 /v1) |
| 基础端点 | https://api.kourichat.com | 部分应用使用 |
配置 base_url 时,应该加上 /v1 后缀,否则可能会报 404 错误。
接口选择建议
OpenAI 提供两种主要的聊天接口,请根据模型要求选择:
| 接口 | 路径 | 适用模型 | 最大超时 |
|---|---|---|---|
| Chat Completions | /v1/chat/completions | GPT-4o、GPT-4、大多数模型 | ~5 分钟 |
| Responses | /v1/responses | gpt-5.2-pro、o3-pro 等 | ~20 分钟 |
Chat Completions 接口
适用于大多数场景,支持常规聊天模型:
POST /v1/chat/completionsResponse 接口(推理模型必须)
重要:gpt-5.2-pro、o3-pro 等部分高级模型仅支持 Response 接口,不支持 Chat Completions 接口。
Response 接口的优势:
- 更长的超时时间:最大支持约 20 分钟,适合复杂推理
- 更好的推理支持:专为 o 系列推理模型设计
- 支持更多高级功能:如推理 token 预算等
POST /v1/responses对于同时支持两种接口的模型(如 o1、o3),Kouri Ai 已做兼容处理,您可以使用 Chat Completions 接口,平台会自动转换。但对于仅支持 Response 接口的模型,必须使用 Response 接口。
Sora视频生成接口
该类接口较为特殊,建议参考官方文档或Apifox 使用。
快速开始
cURL 请求
Chat Completions 接口:
curl https://api.kourichat.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "你好!"}]
}'Response 接口(gpt-5.2-pro 等模型必须使用):
curl https://api.kourichat.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-d '{
"model": "gpt-5.2-pro",
"input": "解释一下量子计算的基本原理"
}'Python
使用 OpenAI 官方 Python SDK:
Chat Completions 接口:
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx', # 替换为您的 Kouri Ai 令牌
)
# 普通请求
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "你好!"}
]
)
print(response.choices[0].message.content)Response 接口(gpt-5.2-pro 等模型):
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx',
)
# 使用 Response 接口调用 gpt-5.2-pro
response = client.responses.create(
model="gpt-5.2-pro",
input="解释一下量子计算的基本原理"
)
print(response.output_text)Response 接口 - 带推理参数:
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx',
)
response = client.responses.create(
model="gpt-5.2-pro",
input="这道数学题怎么解?",
reasoning={
"effort": "high" # 推理深度:low, medium, high
}
)
print(response.output_text)Response 接口 - 流式输出:
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx',
)
# 使用 Response 接口流式输出
stream = client.responses.create(
model="gpt-5.2-pro",
input="讲一个故事",
stream=True
)
for event in stream:
if hasattr(event, 'type') and event.type == 'response.output_text.delta':
print(event.delta, end="", flush=True)流式输出
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx',
)
# 流式请求
stream = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "讲一个故事"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)JavaScript / Node.js
使用 OpenAI 官方 Node.js SDK:
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.kourichat.com/v1',
apiKey: 'sk-xxxxxxxx', // 替换为您的 Kouri Ai 令牌
});
async function main() {
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [
{ role: 'user', content: '你好!' }
]
});
console.log(response.choices[0].message.content);
}
main();流式输出
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.kourichat.com/v1',
apiKey: 'sk-xxxxxxxx',
});
async function main() {
const stream = await client.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: '讲一个故事' }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content || '';
process.stdout.write(content);
}
}
main();LangChain 集成
在环境变量中配置 Kouri Ai 的接口地址和令牌:
import os
os.environ["OPENAI_API_BASE"] = "https://api.kourichat.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxx"或者在代码中直接配置:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o",
base_url="https://api.kourichat.com/v1",
api_key="sk-xxxxxxxx",
)
response = llm.invoke("你好!")
print(response.content)LangChain 的 OPENAI_API_BASE 环境变量需要加上 /v1 后缀。
多模态模型
图片理解
支持传入图片 URL 或 Base64 编码的图片:
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx',
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
}
]
)
print(response.choices[0].message.content)使用 Base64 图片
import base64
from openai import OpenAI
client = OpenAI(
base_url='https://api.kourichat.com/v1',
api_key='sk-xxxxxxxx',
)
# 读取本地图片并编码
with open("image.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "描述这张图片"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
]
)
print(response.choices[0].message.content)常见问题
404 错误
确保 base_url 添加了 /v1 后缀:
# 正确
base_url='https://api.kourichat.com/v1'
# 错误
base_url='https://api.kourichat.com'旧版 SDK 兼容
如果您使用的是旧版 OpenAI SDK(< 1.0),配置方式略有不同:
import openai
openai.api_base = "https://api.kourichat.com/v1"
openai.api_key = "sk-xxxxxxxx"建议升级到 OpenAI SDK 1.0 及以上版本以获得更好的体验。