第一个请求
准备
- 一个 API Key(见 鉴权与密钥)
- 一个模型 ID(在控制台模型列表复制,下面用
YOUR_MODEL_ID代替)
curl
bash
curl https://api.molicat.cc/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MOLICAT_API_KEY" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [
{"role": "system", "content": "你是一个简洁的助手。"},
{"role": "user", "content": "用一句话解释什么是云服务器。"}
],
"temperature": 0.7,
"max_tokens": 300
}'返回:
json
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1760000000,
"model": "YOUR_MODEL_ID",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "云服务器是..."},
"finish_reason": "stop"
}
],
"usage": {"prompt_tokens": 30, "completion_tokens": 40, "total_tokens": 70}
}Python(OpenAI SDK)
bash
pip install openaipython
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.molicat.cc/v1",
)
resp = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[
{"role": "system", "content": "你是一个简洁的助手。"},
{"role": "user", "content": "用一句话解释什么是云服务器。"},
],
temperature=0.7,
max_tokens=300,
)
print(resp.choices[0].message.content)
print(resp.usage)Node.js(OpenAI SDK)
bash
npm install openaijs
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.MOLICAT_API_KEY,
baseURL: 'https://api.molicat.cc/v1',
})
const resp = await client.chat.completions.create({
model: 'YOUR_MODEL_ID',
messages: [
{ role: 'system', content: '你是一个简洁的助手。' },
{ role: 'user', content: '用一句话解释什么是云服务器。' },
],
temperature: 0.7,
max_tokens: 300,
})
console.log(resp.choices[0].message.content)流式输出
加 stream: true:
bash
curl -N https://api.molicat.cc/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MOLICAT_API_KEY" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [{"role":"user","content":"写三行关于猫的诗"}],
"stream": true
}'返回是 SSE,每行 data: {...},最后以 data: [DONE] 结束:
text
data: {"choices":[{"delta":{"content":"猫"}}]}
data: {"choices":[{"delta":{"content":"在"}}]}
...
data: [DONE]Python SDK:
python
stream = client.chat.completions.create(
model="YOUR_MODEL_ID",
messages=[{"role": "user", "content": "写三行关于猫的诗"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)参数速查
| 参数 | 说明 |
|---|---|
model | 必填,控制台里的模型 ID |
messages | 必填,system / user / assistant |
temperature | 0–2,越高越发散 |
max_tokens | 限制回复长度,防止超长扣费 |
stream | 是否流式 |
top_p | 与 temperature 二选一调整 |
第一次跑不通
| 现象 | 先查 |
|---|---|
| 401 | 密钥、Bearer 空格、密钥是否有效 |
| 404 model not found | 模型 ID 是否从控制台复制、是否拼错 |
| 400 | JSON 是否合法、messages 是否为空 |
| 429 | 触发限流,降低并发或联系客服提额 |
| 超时 | 网络、代理、max_tokens 过大 |
错误结构见 错误码。