主题
OpenAI SDK(Python / Node)
济川 AI 兼容 OpenAI Chat Completions 协议,官方 SDK 直接可用,只改 base_url 和 api_key。
安装
bash
pip install openaibash
npm install openai基本用法
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["JICHUAN_API_KEY"],
base_url="https://jc.jichuanai.com/v1",
)
resp = client.chat.completions.create(
model="deepseek-v4-flash-0731",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)javascript
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.JICHUAN_API_KEY,
baseURL: 'https://jc.jichuanai.com/v1',
})
const resp = await client.chat.completions.create({
model: 'deepseek-v4-flash-0731',
messages: [{ role: 'user', content: '你好' }],
})
console.log(resp.choices[0].message.content)base_url 填到 /v1 就行
官方 SDK 会自己拼 /chat/completions。填成完整路径反而会变成 /v1/chat/completions/chat/completions。
不要把 key 写进代码
用环境变量。key 提交进 git 仓库后即使删掉也已经泄漏,必须去控制台吊销重建。
流式
python
stream = client.chat.completions.create(
model="deepseek-v4-flash-0731",
messages=[{"role": "user", "content": "数到十"}],
stream=True,
)
for chunk in stream:
if delta := chunk.choices[0].delta.content:
print(delta, end="", flush=True)javascript
const stream = await client.chat.completions.create({
model: 'deepseek-v4-flash-0731',
messages: [{ role: 'user', content: '数到十' }],
stream: true,
})
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}拿到用量
python
resp = client.chat.completions.create(
model="deepseek-v4-flash-0731",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.usage) # prompt_tokens / completion_tokens / total_tokens流式要显式开启:
python
stream = client.chat.completions.create(
model="deepseek-v4-flash-0731",
messages=[{"role": "user", "content": "你好"}],
stream=True,
stream_options={"include_usage": True}, # 最后一个 chunk 带 usage
)建议加重试
限流(429)时应当退避重试,而不是直接失败。官方 SDK 自带重试:
python
client = OpenAI(
api_key=os.environ["JICHUAN_API_KEY"],
base_url="https://jc.jichuanai.com/v1",
max_retries=3, # 默认 2
timeout=120.0, # 长上下文请求建议放宽
)详见 限流说明。