主题
快速开始:跑通第一个请求
目标:五分钟内拿到第一条模型回复。全程只需要三样东西——一个 API Key、一个地址、一个模型名。
前置条件
- 已在 控制台 注册账号
- 已充值余额,或已用兑换码激活时长卡
第 1 步:创建 API Key
控制台 → API 密钥 → 新建。
这一步最容易出错
创建时要选「分组」。分组决定了你能用哪些模型、以及钱从哪扣。
- 买了时长卡(日卡/周卡/月卡)→ 分组必须选
时长卡-xxx - 充值余额按量使用 → 选
国产按量计费、DeepSeek、GPT-xx、Claude-xx等
买了时长卡却把分组选成按量分组,是我们见过最高频的错误:时长卡用户余额是 $0.00,按量分组要扣余额,必然失败。
分组选错不用重建 key,在密钥列表里点分组下拉框直接改。
创建后复制 key,形如 sk-xxxxxxxx。它只完整显示一次。
第 2 步:确认你的模型名
打开 模型清单,找到你的套餐,复制里面的模型名。
逐字复制,大小写敏感
模型名差一个后缀就会报「模型不存在」。真实案例:11 个客户填 deepseek-v4-flash, 而正确的名字是 deepseek-v4-flash-0731。
第 3 步:发第一个请求
把 sk-xxx 换成你的 key,deepseek-v4-flash-0731 换成你套餐里的模型名。
bash
curl https://jc.jichuanai.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash-0731",
"messages": [{"role": "user", "content": "你好,请用一句话自我介绍"}]
}'python
from openai import OpenAI
client = OpenAI(
api_key="sk-xxx",
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: 'sk-xxx',
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)成功的话你会看到类似:
json
{
"id": "chatcmpl-...",
"object": "chat.completion",
"choices": [
{ "index": 0, "message": { "role": "assistant", "content": "你好!我是……" } }
],
"usage": { "prompt_tokens": 14, "completion_tokens": 22, "total_tokens": 36 }
}第 4 步:改成流式输出
流式会边生成边返回,不用等整段说完,体感快很多。加一个 "stream": true 即可。
bash
curl https://jc.jichuanai.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash-0731",
"messages": [{"role": "user", "content": "数到十"}],
"stream": true
}'python
stream = client.chat.completions.create(
model="deepseek-v4-flash-0731",
messages=[{"role": "user", "content": "数到十"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
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 ?? '')
}第 5 步:多轮对话
模型本身不记事。要让它记住上文,就把历史消息一起发过去。
python
messages = [{"role": "user", "content": "我叫小明"}]
r1 = client.chat.completions.create(model="deepseek-v4-flash-0731", messages=messages)
# 把模型的回复也加进去,再问下一句
messages.append({"role": "assistant", "content": r1.choices[0].message.content})
messages.append({"role": "user", "content": "我叫什么?"})
r2 = client.chat.completions.create(model="deepseek-v4-flash-0731", messages=messages)
print(r2.choices[0].message.content) # 应该答得出「小明」第 6 步:换模型
换模型只改 model 这一个字段,其余代码不动。前提是新模型也在你的套餐里(见 模型清单)。
python
resp = client.chat.completions.create(
model="glm-5.3", # 换成套餐里的另一个模型名
messages=[{"role": "user", "content": "你好"}],
)检查你的成果
- [ ] 非流式请求能拿到
choices[0].message.content - [ ] 流式请求能看到文字逐段蹦出来
- [ ] 多轮对话里模型记得住上一轮说过的话
- [ ] 换一个同套餐的模型名仍然能跑
四条都过了,接入就算完成。