发送第一个 API 请求
本页将使用 cURL 连接 Bita API。你会先查询当前 API 密钥可用的模型,再通过 OpenAI 兼容的 Chat Completions 接口发送一条简单消息。
请求前检查
开始前,请准备以下信息:
| 信息 | 说明 |
|---|---|
| Base URL | Bita API 站点地址:https://www.bita-api.com |
| API 密钥 | 在控制台创建并复制的完整密钥 |
| 模型 ID | 从模型广场复制的准确模型名称 |
| 接口格式 | 本页使用 OpenAI 兼容格式 |
如果还没有准备好 API 密钥或模型 ID,请先阅读创建 API 密钥和选择模型。
本页将 https://www.bita-api.com 称为站点 Base URL,并在后面追加 /v1/models 或 /v1/chat/completions。
如果某个 SDK 或第三方工具要求填写“API Base URL”,它可能要求直接填写包含 /v1 的地址。请以对应工具的接入文档为准。
设置临时变量
macOS 与 Linux
在 macOS 或 Linux 终端中执行以下命令,并替换为你自己的地址和模型 ID:
export BITA_API_BASE_URL="https://www.bita-api.com"
export BITA_MODEL_ID="从模型广场复制的模型 ID"
read -s BITA_API_KEY
export BITA_API_KEY
执行 read -s BITA_API_KEY 后,终端会等待你粘贴 API 密钥。输入内容不会显示在屏幕上,粘贴完成后按 Enter。
这些变量只在当前终端会话中有效,关闭终端后需要重新设置。
Windows PowerShell
在 PowerShell 中执行以下命令,并替换模型 ID:
$env:BITA_API_BASE_URL = "https://www.bita-api.com"
$env:BITA_MODEL_ID = "从模型广场复制的模型 ID"
$secureKey = Read-Host "请输入 API 密钥" -AsSecureString
$env:BITA_API_KEY = [System.Net.NetworkCredential]::new("", $secureKey).Password
输入 API 密钥时,内容不会显示在屏幕上。以上环境变量只在当前 PowerShell 窗口中有效,关闭窗口后需要重新设置。
不要把真实 API 密钥写进截图、聊天消息、公开脚本或代码仓库。本页使用环境变量,避免直接把密钥放进请求命令。
第一步:查询可用模型
macOS 与 Linux
执行以下请求,检查 Base URL 和 API 密钥是否正确:
curl "$BITA_API_BASE_URL/v1/models" \
-H "Authorization: Bearer $BITA_API_KEY"
Windows PowerShell
Invoke-RestMethod `
-Uri "$env:BITA_API_BASE_URL/v1/models" `
-Headers @{ Authorization = "Bearer $env:BITA_API_KEY" }
请求成功后,会返回当前 API 密钥可以访问的模型列表。响应结构通常类似:
{
"object": "list",
"data": [
{
"id": "模型 ID",
"object": "model"
}
]
}
在 data 中确认准备使用的模型 ID。如果模型广场中存在该模型,但返回列表中没有,请检查 API 密钥分组是否与模型分组一致。
第二步:发送对话请求
macOS 与 Linux
确认模型可用后,执行以下命令:
curl "$BITA_API_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $BITA_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"$BITA_MODEL_ID\",
\"messages\": [
{
\"role\": \"user\",
\"content\": \"你好,请用一句话介绍你自己。\"
}
],
\"stream\": false
}"
Windows PowerShell
先创建 JSON 请求体:
$body = @{
model = $env:BITA_MODEL_ID
messages = @(
@{
role = "user"
content = "你好,请用一句话介绍你自己。"
}
)
stream = $false
} | ConvertTo-Json -Depth 5
然后发送请求:
Invoke-RestMethod `
-Method Post `
-Uri "$env:BITA_API_BASE_URL/v1/chat/completions" `
-Headers @{ Authorization = "Bearer $env:BITA_API_KEY" } `
-ContentType "application/json; charset=utf-8" `
-Body $body
请求参数
| 参数 | 作用 |
|---|---|
model | 指定模型广场中的模型 ID |
messages | 提供对话消息列表 |
role | 表示消息角色,本次请求使用 user |
content | 发送给模型的具体内容 |
stream | false 表示等待完整响应后一次返回 |
请求头中的 Authorization: Bearer ... 用于传递 API 密钥,Content-Type: application/json 表示请求体采用 JSON 格式。
查看响应
请求成功后,会收到类似下面的 JSON 响应:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "模型 ID",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好,我是一个通过 Bita API 调用的 AI 助手。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}
重点关注以下字段:
choices[0].message.content:模型生成的回复。finish_reason:本次生成结束的原因,正常完成通常为stop。usage:本次请求的输入、输出和总 Token 用量;具体字段可能因模型而异。
常见错误
| 状态码 | 常见原因 | 建议检查 |
|---|---|---|
400 | 请求体格式或参数不正确 | JSON 格式、模型参数和消息内容 |
401 | API 密钥无效或缺失 | Authorization 请求头和完整密钥 |
403 | API 密钥没有调用权限 | 密钥状态、分组、额度和有效期 |
404 | 请求路径或模型不存在 | Base URL、/v1 路径和模型 ID |
429 | 额度不足或请求受到限流 | 账户余额、密钥额度和请求频率 |
500、502、503 | 服务或上游模型暂时异常 | 稍后重试,仍失败时查看站点公告 |
错误响应通常还会包含 message 字段。排查时应同时查看状态码和错误消息,不要只根据状态码判断原因。
请求成功后
完成以上两步,说明以下配置已经可以正常协同工作:
- Bita API Base URL
- API 密钥和所属分组
- 模型 ID
- OpenAI 兼容接口
- 当前账户余额与调用权限
接下来可以根据使用场景选择对应的 SDK,或者继续配置 Cherry Studio、Claude Code、Codex 等第三方工具。