完成第一次模型调用
本页使用一个已开通的文本模型, 演示通过 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。 具体排查见监控、日志与排障。