跳到主要内容

完成第一次模型调用

本页使用一个已开通的文本模型,演示通过 OpenAI 兼容接口发起非流式和流式调用。部署模型的步骤见接入与调用模型。

前置条件​

准备以下信息:

信息获取方式
API 基础地址从模型服务或实例的 API 说明获取;本例使用以 /v1 结尾的地址
模型名称通过查询可用模型获取模型标识,或使用服务调用示例中的模型标识
API Key在个人或组织设置的 API Keys 页面创建;需有效且具有相应访问权限

如服务启用了收费,还需具备可用消费额度和相应账户余额。Key 的创建方法见身份与访问权限。

1. 配置调用参数​

以下环境变量用于本页 Python 示例。将地址和模型名称替换为实际值;在应用运行环境或密钥管理工具中设置 CSGHUB_API_KEY,不把真实 Key 写入代码仓库。

export CSGHUB_API_BASE="https://your-gateway-host/v1"
export CSGHUB_MODEL="your-model-name"

2. 发起一次调用​

在已安装 OpenAI Python SDK 的应用环境中执行:

import os
from openai import OpenAI

client = OpenAI(
api_key=os.environ["CSGHUB_API_KEY"],
base_url=os.environ["CSGHUB_API_BASE"],
)

response = client.chat.completions.create(
model=os.environ["CSGHUB_MODEL"],
messages=[{"role": "user", "content": "请用一句话介绍你能完成的任务。"}],
)
print(response.choices[0].message.content)
print(response.usage)

成功时可以看到模型回复,以及该服务返回的用量信息。用量字段的支持范围由模型与上游决定,费用应结合计量规则查看。

3. 使用流式输出​

复用上面的 client,设置 stream=True:

stream = client.chat.completions.create(
model=os.environ["CSGHUB_MODEL"],
messages=[{"role": "user", "content": "请简要介绍模型服务。"}],
stream=True,
)

for chunk in stream:
if chunk.choices:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
print()

本例读取流式片段中的文本字段,并跳过没有文本的片段。工具调用等其他事件请按所用接口的说明处理。

调用失败时​

先检查 API 地址、模型名称和凭据类型,再检查 Key 是否过期、达到额度或被撤销。不要使用 Git Access Token 代替网关 API Key。具体排查见监控、日志与排障。

下一步​