> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 文本生成 API：协议选择、常用模型与调用示例

> 用老张API生成文本：选择 OpenAI 兼容、Anthropic Messages 或 Gemini 原生协议，查看常用文本模型的协议与价格，复制最小可运行请求，了解三种协议的流式读取要点。

老张API用同一个 API Key 提供三种文本生成协议：OpenAI 兼容、Anthropic Messages 和 Gemini 原生。新项目直接用 OpenAI 兼容的 Chat Completions，支持它的文本模型最多。

| 项目 | 内容 |
| - | - |
| 请求域名 | `https://api.laozhang.ai` |
| 新项目 | 向 `POST /v1/chat/completions` 发送 `model` 和 `messages`，从 `choices[0].message.content` 读取回复 |
| 已有 SDK 应用 | 基于 Anthropic SDK、Claude Code 或 Google Gen AI SDK 开发的应用，保留原来的请求格式，只替换 Base URL 和密钥 |
| 模型支持的协议 | 以[模型与价格总表](/models)的「兼容端点」一栏为准 |
| 价格 | 见[常用文本模型](#常用文本模型) |

## 选择协议

* **新项目，或使用 OpenAI SDK 等 OpenAI 格式客户端**：用 OpenAI 兼容协议，见 [OpenAI 协议：Chat Completions](/api-reference/chat-completions)。
* **使用 Anthropic SDK、Claude Code 等 Messages 格式客户端**：用 Anthropic Messages，见 [Claude 协议](/api-reference/claude)。
* **使用 Google Gen AI SDK，或需要 Gemini 原生字段**：用 Gemini 原生协议，见 [Gemini 协议](/api-reference/gemini)。

三种协议的请求地址：

```text theme={null}
OpenAI 兼容          POST https://api.laozhang.ai/v1/chat/completions
Anthropic Messages   POST https://api.laozhang.ai/v1/messages
Gemini 原生          POST https://api.laozhang.ai/v1beta/models/{模型ID}:generateContent
```

使用 SDK 时：

* OpenAI SDK 的 Base URL 设为 `https://api.laozhang.ai/v1`；
* Anthropic SDK 和 Google Gen AI SDK 设为域名根 `https://api.laozhang.ai`，由 SDK 自己拼接路径。

Claude 模型因资源不足暂时下线，恢复时会在[网站公告](/changelog)通知。Anthropic Messages 协议仍可用于价格配置中标注了该端点的模型，例如：

* `glm-5.2`（`default` 与 `claude_code` 分组）
* `deepseek-v4-pro`
* `deepseek-v4-flash`

三种协议的请求体和响应结构不同，改用另一种协议时，请求代码和解析代码要一起改：

| 项目 | OpenAI 兼容 | Anthropic Messages | Gemini 原生 |
| - | - | - | - |
| 模型 ID | 请求体 `model` | 请求体 `model` | 请求路径 |
| 输入 | `messages` | `messages`，必填 `max_tokens` | `contents[].parts[]` |
| 系统提示 | `system` 角色消息 | 顶层 `system` | `systemInstruction` |
| 回复文本 | `choices[0].message.content` | `content[]` 中的 `text` 块 | `parts[]` 中的 `text` |
| 流式输出 | `"stream": true` | `"stream": true` | `streamGenerateContent` |

同一个模型标注了两种协议时（例如 `gemini-3.8-flash` 同时支持 Chat Completions 和 Gemini 原生），两种写法都可以调用，但同一个请求里不能混用两种字段。

## 常用文本模型

下表价格来自 2026 年 9 月 24 日公开价格配置，是 `default` 分组的标价，单位为美元每 1M tokens。缓存读价格、其他模型和其他令牌分组见[模型与价格总表](/models)。

| 模型 ID | 支持的协议 | 输入 / 输出 |
| - | - | - |
| `gpt-6-luna` | OpenAI 兼容 | \$0.1 / \$0.5 |
| `gpt-6-sol` | OpenAI 兼容 | \$2 / \$10 |
| `gpt-6-astra` | OpenAI 兼容 | \$10 / \$50 |
| `gpt-5.6-luna` | OpenAI 兼容 | \$0.2 / \$1.2 |
| `gpt-5.6-terra` | OpenAI 兼容 | \$2 / \$12 |
| `gpt-5.6-sol` | OpenAI 兼容 | \$4 / \$20 |
| `gpt-5.4-mini` | OpenAI 兼容 | \$0.75 / \$4.5 |
| `gpt-5.4` | OpenAI 兼容 | \$2.5 / \$15 |
| `gemini-3.8-flash` | OpenAI 兼容、Gemini 原生 | \$0.75 / \$3.75 |
| `gemini-3.6-flash` | OpenAI 兼容、Gemini 原生 | \$1.5 / \$7.5 |
| `gemini-3.5-flash-lite` | OpenAI 兼容、Gemini 原生 | \$0.3 / \$2.502 |
| `glm-5.2` | OpenAI 兼容、Anthropic Messages | 见总表 |
| `deepseek-v4-pro` | OpenAI 兼容、Anthropic Messages | 见总表 |
| `deepseek-v4-flash` | OpenAI 兼容、Anthropic Messages | 见总表 |
| `o3-pro` | Responses | 见总表 |

* GPT-6、GPT-5.6 与 `gpt-5.4` 对长输入请求按更高一档计价，分档界限与价格见总表的[阶梯计价](/models#tiered-pricing)。
* GPT-6 三款模型怎么选，以及 OpenAI 对它们在 Chat Completions 中的参数和工具调用规则，见 [GPT-6 上线公告](/announcements/gpt-6-launch-2026-09)。
* 表中 OpenAI 模型也可以用 Responses 端点 `POST /v1/responses` 调用；`o3-pro` 系列只支持 Responses，`gpt-6-astra` 的工具调用也需要 Responses。调用方法见 [OpenAI 模型接入](/api-reference/openai)。
* 需要让模型分析图片时，见[图片理解 API](/api-capabilities/vision-understanding)。

## 发送第一个请求

在[令牌管理](https://api.laozhang.ai/token)创建 API Key：计费模式选择按量优先（推荐）或按量计费，并确认它的令牌分组可以调用所选模型。然后在终端设置环境变量：

```bash theme={null}
export LAOZHANG_API_KEY="替换为你的老张API密钥"
```

下面用 `gpt-5.4-mini` 通过 OpenAI 兼容协议发送一条消息。运行 SDK 示例前先安装依赖：

* Python：执行 `python -m pip install openai`。
* Node.js：执行 `npm install openai`，把代码保存为 `chat.mjs`，再用 `node chat.mjs` 运行。

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl --fail-with-body --max-time 120 \
      "https://api.laozhang.ai/v1/chat/completions" \
      -H "Authorization: Bearer $LAOZHANG_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "gpt-5.4-mini",
        "messages": [{"role": "user", "content": "请只回复：连接成功"}]
      }'
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import os
    from openai import OpenAI

    client = OpenAI(
        api_key=os.environ["LAOZHANG_API_KEY"],
        base_url="https://api.laozhang.ai/v1",
        timeout=120.0,
        max_retries=0,
    )
    response = client.chat.completions.create(
        model="gpt-5.4-mini",
        messages=[{"role": "user", "content": "请只回复：连接成功"}],
    )
    print(response.choices[0].message.content)
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    import OpenAI from "openai";

    const client = new OpenAI({
      apiKey: process.env.LAOZHANG_API_KEY,
      baseURL: "https://api.laozhang.ai/v1",
      timeout: 120_000,
      maxRetries: 0,
    });
    const response = await client.chat.completions.create({
      model: "gpt-5.4-mini",
      messages: [{ role: "user", content: "请只回复：连接成功" }],
    });
    console.log(response.choices[0].message.content);
    ```
  </Tab>
</Tabs>

正常情况下会输出「连接成功」。换用其他模型时只改 `model`，并确认该模型的「兼容端点」包含「OpenAI 兼容」。示例关闭了 SDK 自动重试，由应用决定失败后是否重发。

## 流式输出

在请求体中加入 `"stream": true`，回复会以 SSE（server-sent events）事件流边生成边返回。三种协议的流式读取方式不同：

* **OpenAI 兼容**：新增文本在 `choices[0].delta.content`，按到达顺序拼接；有的数据块没有 `choices` 或 `content`，跳过即可；流以 `data: [DONE]` 结束。cURL 与 Python 完整示例及原始事件格式见 [Chat Completions 流式输出](/api-reference/chat-completions#流式输出)。
* **Anthropic Messages**：文本在 `content_block_delta` 事件的 `delta.text` 里，收到 `message_stop` 才表示回复结束，见 [Claude 协议流式输出](/api-reference/claude#流式输出)。
* **Gemini 原生**：把路径中的 `generateContent` 换成 `streamGenerateContent` 并加上 `?alt=sse`，每个事件都是带 `candidates` 的部分结果，见 [Gemini 协议流式输出](/api-reference/gemini#流式输出)。
* 连接在结束标志之前断开时，已收到的文本不完整，按失败处理或重新请求。用 cURL 调试时加 `-N`，关闭输出缓冲。

## 常见错误

* **404，请求地址里出现 `/v1/v1`**：SDK 的 Base URL 与它拼接的路径重复了。OpenAI SDK 用 `https://api.laozhang.ai/v1`；Anthropic SDK 和 Google Gen AI SDK 用 `https://api.laozhang.ai`。
* **模型不可用、403 或 404**：检查模型 ID 是否从总表完整复制、API Key 的令牌分组是否包含该模型，以及模型是否支持当前协议。例如 `o3-pro` 只能用 Responses 调用，`gpt-6-astra` 的工具调用需要 Responses，GPT 模型不能走 Gemini 原生接口。排查步骤见[模型可用性说明](/faq/model-availability)。
* **400**：Anthropic Messages 请求缺少 `max_tokens` 是常见原因。其他情况先删掉新增的可选参数，回到最小请求，再按错误正文调整。
* **401**：API Key 错误、认证头格式不对，或环境变量没有在当前终端生效。
* **回复为空**：
  * Chat Completions：先看 `message.tool_calls` 和 `finish_reason`；
  * Anthropic Messages：按 `type` 读取 `content[]`，不要只取 `content[0]`；
  * Gemini：检查 `finishReason` 和 `promptFeedback`。
* **回复被截断**：以下取值都表示达到了输出上限。调大该模型支持的输出上限，或缩短输入。
  * Chat Completions：`finish_reason` 为 `length`；
  * Anthropic Messages：`stop_reason` 为 `max_tokens`；
  * Gemini：`finishReason` 为 `MAX_TOKENS`。
* **429**：阅读错误正文，区分速率限制、并发限制和余额不足；有余额仍失败时见[为什么还有余额但调用失败](/faq/balance-insufficient)。

## 上线前检查

1. 在配置中固定模型 ID 和协议，更换模型时当作一次变更单独测试。
2. 用自己业务的样本比较两三个候选模型的回答质量、延迟和 token 用量，比较方法见[选择模型](/api-reference/chat-completions#选择模型)。
3. 测试普通请求、流式请求和常见错误的处理；SDK 自动重试与业务层重试只保留一层。
4. 在[调用日志](https://api.laozhang.ai/log)核对每个请求的模型、输入与输出 tokens 和扣费。

## 相关文档

* [OpenAI 协议：Chat Completions](/api-reference/chat-completions)
* [OpenAI 模型接入：端点与 SDK 配置](/api-reference/openai)
* [Claude 协议：Anthropic Messages](/api-reference/claude)
* [Gemini 协议：generateContent](/api-reference/gemini)
* [API 开发文档](/api-manual)：密钥、Base URL、Responses 与图片接口
* [模型与价格总表](/models)
* 上游文档：[OpenAI 文本生成指南](https://developers.openai.com/api/docs/guides/text)、[Anthropic Messages API](https://platform.claude.com/docs/zh-CN/api/messages)、[Gemini 文本生成](https://ai.google.dev/gemini-api/docs/text-generation?hl=zh-cn)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.