# 对话（OpenAI 兼容）

> `POST /chat/completions`　|　文档 3/7｜更新于 2026-09-26｜[返回索引](https://ai.aibobos.com/openapi/index.md)

标准 OpenAI Chat Completions。**内置能力编排**：识别到配音/朗读类指令时自动改走配音链路并返回音频地址。

**为什么 Agent 需要它**：这条能通，意味着 Cursor / Codex / Cherry Studio / 任意 OpenAI SDK 都能直接接进来，零改造。

## 调用

```bash
curl -s -X POST "https://ai.aibobos.com/api/openapi/v1/chat/completions" \
  -H "Authorization: Bearer $AIBO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "aibo-chat", "messages": [{"role": "user", "content": "用一句话说明什么是 AI Agent"}]}'
```

## 参数

| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `model` | string | 是 | `aibo-chat` 或 `aibo-agent`；仅记录在响应里，不影响实际链路。 |
| `messages` | array | 是 | OpenAI 标准消息数组；**取最后一条 `role=user` 的内容**作为本次指令。 |
| `stream` | bool | 否 | 当前只支持 `false`（非流式）。传 `true` 会按非流式返回。 |

## 请求体

```json
{
  "model": "aibo-chat",
  "messages": [
    {"role": "user", "content": "用一句话说明什么是 AI Agent"}
  ]
}
```

## 响应

```json
{
  "id": "chatcmpl-3f2a9c1b8d4e5f60718293a4",
  "object": "chat.completion",
  "created": 1790114860,
  "model": "aibo-chat",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "AI Agent 是一种能够自主感知环境、推理决策并采取行动以实现特定目标的智能系统。"},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 15, "completion_tokens": 41, "total_tokens": 56}
}
```

## 注意

- **计费口径**：普通对话按 `openapi/chat`（当前 1 算力/次）扣；若意图被判定为配音，则按 `openapi/tts` 扣。
- **能力域的坑**：本端点的鉴权只校验 `chat` 能力域。若只开 `chat`、没开 `tts`，一旦指令被识别成配音意图，会在扣费环节返回 `402 算力不足`（因为 `tts` 计费配置不在该 Key 的能力范围内）。→ 想让 Agent 能一句话出音频，Key 必须同时开 `chat` 和 `tts`。
- `usage` 里的 token 数是**中文字符数**（`mb_strlen`），不是真实 BPE 分词数，仅供粗略显示。
- 配音意图关键词：配音 / 朗读 / 旁白 / 语音合成 / 文字转语音 / 转成语音 / 念出来。

---

- 鉴权：`Authorization: Bearer <API Key>`；需要 `chat` 能力域
- 计费：见[索引页的计费表](https://ai.aibobos.com/openapi/index.md#计费口径)，失败自动退回
- 机器可读描述：[openapi.json](https://ai.aibobos.com/openapi.json)
