Zhipu AI (GLM)
Zhipu AI 通过托管 API 提供 GLM 语言模型和 CogVideoX 视频生成能力。应用使用 AISIX 调用方密钥和模型别名访问这两项能力,上游凭证则由网关保存。
本指南介绍如何通过一个 Zhipu AI 服务提供 方密钥处理 GLM Chat 流量和 CogVideoX 视频任务。
准备工作
开始前,请准备以下内容:
- 一套 AISIX 环境:
- 对于 AISIX Cloud,需要一个已关联网关的环境和具有写入作用域的 Admin Token。对于 On-Premises,请按照 AISIX Cloud 快速入门操作。如需申请 Hybrid Cloud 访问权限,请联系 API7。
- 对于开源 AISIX 网关,请准备本地 AISIX 安装,或使用开源 AISIX 网关快速入门中的 Docker 环境。配置网关以加载声明式资源文件。
- 从智谱 AI 开放平台获取的 Zhipu AI API Key。
curl和jq。
使用 AISIX Cloud 配置
导出 AISIX Cloud 连接信息:
# AISIX_CP 是 Admin API 基础 URL;应包含 /api,且末尾不带斜杠
# 本地 On-Premises 快速入门使用 http://localhost:8080/api
export AISIX_CP="YOUR_AISIX_CLOUD_ADMIN_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
为由 GLM 支持的 Chat Completions 路由创建服务提供方密钥、模型别名和调用方 API Key。
由于 Zhipu AI 提供 OpenAI 兼容 API,AISIX 会通过 openai 适配器进行连接,并使用 Zhipu AI API 根地址作为 api_base。同一个服务提供方密钥也可用于网关的视频生成路由。
创建服务提供方密钥
创建用于存储 Zhipu AI 凭证和 API 根地址的服务提供方密钥:
# 请替换为实际值
export ZHIPU_API_KEY="YOUR_PROVIDER_API_KEY"
PROVIDER_KEY_ID=$(curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "zhipuai-prod",
"provider": "zhipuai",
"api_key": "'"${ZHIPU_API_KEY}"'",
"api_base": "https://open.bigmodel.cn/api/paas/v4",
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -r '.provider_key.id')
echo "$PROVIDER_KEY_ID"
❶ provider 为 zhipuai,即智谱 AI 开放平台的目录服务提供方 ID。AISIX Cloud Admin API 会从目录服务提供方派生适配器;adapter 字段仅在 BYO 服务提供方密钥上被接受。
❷ api_key 存储 Zhipu AI API Key,并在上游调用中作为 Bearer Token 发送。其行为遵循服务提供方密钥中的凭证处理方式。
❸ api_base 使用一种特殊的路径格式:版本路径段为 v4,位于 /api/paas 下,而不是大多数 OpenAI 兼容服务商使用的 /v1 根地址。AISIX 会将端点路径原样追加到 api_base,因此此值会生成 https://open.bigmodel.cn/api/paas/v4/chat/completions。对此服务提供方,该字段为可选字段;省略时,AISIX Cloud Admin API 会填入相同的规范值。当密钥指向其他 Zhipu AI 部署时,请显式设置该字段。
该命令会把返回的服务提供方密钥 ID 保存到 PROVIDER_KEY_ID。
Zhipu AI 运营两个使用不同目录服务提供方 ID 的平台。对于位于 open.bigmodel.cn 的中国大陆平台,请使用 zhipuai;对于 API 根地址为 https://api.z.ai/api/paas/v4 的国际 Z.ai 平台,请使用 zai。这两个 ID 不能互换。已建模的视频路由只会分发 zhipuai(以及简写 zhipu),因此 zai 服务提供方密钥可以处理 Chat 流量,但在 /v1/videos 上会返回未实现错误。
与部分其他 OpenAI 兼容目录条目不同,zhipuai 条目不需要请求或响应覆盖项。Zhipu AI 接受标准字段名称,并且已经在规范字段上返回推理文本,因此 AISIX 会原样发送 OpenAI 请求格式,不会重命名任何参数。请参阅控制思考模式。
创建模型
Zhipu AI 模型 ID 遵循 glm-<version> 格式。glm-5.2 等不带后缀的版本表示该代旗舰文本模型;-flash、-flashx 或 -air 后缀表示更轻量、更经济的服务级别;末尾的 v(例如 glm-5v-turbo)表示视觉模型。创建模型别名前,请在 Zhipu AI 模型概览中确认当前目录。
创建调用方将在请求中发送的模型别名:
MODEL_ID=$(curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/models" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "glm-flagship-prod",
"model_name": "glm-5.2",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}' | jq -r '.model.id')
echo "$MODEL_ID"
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 Zhipu AI 模型 ID,例如 glm-5.2、glm-5 或 glm-4.7。
❸ provider_key_id 将别名关联到 Zhipu AI 服务提供方密钥。