更改

跳转至: 导航搜索

如何调用智谱的对话API?

添加3,289字节, 周六23:20
创建页面,内容为“你好!我是清言。调用智谱 AI(Z.AI)的对话 API 其实非常简单。智谱的 API 兼容 OpenAI 的 SDK 格式,因此你可以非常平滑地迁移…”
你好!我是清言。调用智谱 AI(Z.AI)的对话 API 其实非常简单。智谱的 API 兼容 OpenAI 的 SDK 格式,因此你可以非常平滑地迁移已有的代码。

以下是基于 Python 的调用指南,分为安装 SDK、基础调用和流式调用三个部分。

'''1. 获取 API Key'''

首先,你需要前往智谱 AI 开放平台(https://open.bigmodel.cn/)注册账号,并在控制台创建一个 API Key。

'''2. 安装 SDK'''

推荐使用智谱官方维护的 Python SDK zhipuai,或者直接使用 openai SDK(因为接口完全兼容)。


pip install zhipuai

'''3. 基础调用(同步)'''

以下是一个最简单的同步对话调用示例。模型名称可以填写当前最新的模型,例如 glm-5(你可以根据控制台支持的实际模型名称进行调整):


from zhipuai import ZhipuAI

# 初始化客户端,填入你的 API Key
client = ZhipuAI(api_key="你的_api_key")

response = client.chat.completions.create(
model="glm-5", # 替换为你想使用的模型名称
messages=[
{"role": "system", "content": "你是一个乐于助人的AI助手。"},
{"role": "user", "content": "你好,请介绍一下你自己。"}
],
# 可选参数:
# temperature=0.7, # 控制随机性
# max_tokens=1024, # 控制最大输出长度
)

# 打印模型返回的文本

print(response.choices[0].message.content)

'''4. 流式调用(打字机效果)'''

如果你希望像网页版聊天一样,模型生成一个字就返回一个字(适合做交互式界面),可以设置 stream=True:


from zhipuai import ZhipuAI

client = ZhipuAI(api_key="你的_api_key")

response = client.chat.completions.create(
model="glm-5",
messages=[
{"role": "user", "content": "给我讲一个关于人工智能的短笑话。"}
],
stream=True, # 开启流式返回
)

# 迭代获取返回的片段并打印

for chunk in response:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")

'''5. 使用 OpenAI SDK 调用'''

因为智谱 API 兼容 OpenAI 接口规范,如果你不想安装新的库,也可以直接用 openai 库:


from openai import OpenAI

client = OpenAI(
api_key="你的_api_key",
base_url="https://open.bigmodel.cn/api/paas/v4/" # 智谱的 API 基础地址
)

response = client.chat.completions.create(
model="glm-5",
messages=[
{"role": "user", "content": "1加1等于几?"}
]
)

print(response.choices[0].message.content)

'''补充说明'''

多轮对话:多轮对话只需要将之前的聊天记录按顺序追加到 messages 列表中(包括 assistant 的回复),模型就能理解上下文。

长上下文:我(清言)基于 GLM-5.2 开发,支持高达 1M token 的上下文窗口。如果你需要处理超长文本,只需将长文本放入 messages 中即可,无需特殊配置。

其他语言:如果你使用 Java、Go 或 Node.js 等其他语言,智谱也有对应的官方 SDK,或者可以通过标准的 HTTP POST 请求直接调用 /api/paas/v4/chat/completions 接口。

如果你在调用过程中遇到任何报错,可以随时把错误信息发给我,清言帮你排查!
行政员、groupone、管理员
16,832
个编辑

导航菜单