智谱 AI¶
1. 概述¶
智谱 AI 由清华大学推出,致力于打造新一代认知智能通用模型。
2. 请求说明¶
- 请求方法:
POST -
请求地址:
https://gateway.serevixai.ai/v1/chat/completions
3. 请求参数¶
3.1 Header 参数¶
| 参数名称 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
Content-Type |
string | 是 | 设置请求头类型,必须为 application/json |
application/json |
Accept |
string | 是 | 设置响应类型,建议统一为 application/json |
application/json |
Authorization |
string | 是 | 身份验证所需的 API_KEY,格式 Bearer $YOUR_API_KEY |
Bearer $YOUR_API_KEY |
3.2 Body 参数 (application/json)¶
| 参数名称 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| model | string | 是 | 要使用的模型 ID。详见模型列表列出的可用版本,如 glm-4.7。 |
glm-4.7 |
| messages | array | 是 | 聊天消息列表,格式与 OpenAI 兼容。数组中的每个对象包含 role(角色) 与 content(内容)。 |
[{"role": "user","content": "你好"}] |
| role | string | 否 | 消息角色,可选值:system、user、assistant。 |
user |
| content | string | 否 | 消息的具体内容。 | 你好,请给我讲个笑话。 |
| temperature | number | 否 | 采样温度,取值 0~2。数值越大,输出越随机;数值越小,输出越集中和确定。 |
0.7 |
| top_p | number | 否 | 另一种调节采样分布的方式,取值 0~1。和 temperature 通常二选一设置。 |
0.9 |
| n | number | 否 | 为每条输入消息生成多少条回复。 | 1 |
| stream | boolean | 否 | 是否开启流式输出。设置为 true 时,返回类似 ChatGPT 的流式数据。 |
false |
| stop | string | 否 | 最多可指定 4 个字符串,一旦生成的内容出现这几个字符串之一,就停止生成更多 tokens。 | "\n" |
| max_tokens | number | 否 | 单次回复可生成的最大 token 数量,受模型上下文长度限制。 | 1024 |
| presence_penalty | number | 否 | -2.0 \~ 2.0。正值会鼓励模型输出更多新话题,负值会降低输出新话题的概率。 | 0 |
| frequency_penalty | number | 否 | -2.0 \~ 2.0。正值会降低模型重复字句的频率,负值会提高重复字句出现的概率。 | 0 |
4. 请求示例¶
POST /v1/chat/completions
Content-Type: application/json
Accept: application/json
Authorization: Bearer $YOUR_API_KEY
{
"model": "glm-4.7",
"messages": [
{
"role": "user",
"content": "你好,给我科普一下量子力学吧"
}
],
"temperature": 0.7,
"max_tokens": 1024
}
curl https://gateway.serevixai.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer $YOUR_API_KEY" \
-d "{
\"model\": \"glm-4.7\",
\"messages\": [{
\"role\": \"user\",
\"content\": \"你好,给我科普一下量子力学吧\"
}]
}"
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
apiKey := "sk-123456789012345678901234567890123456789012345678"
client := openai.NewClient(
option.WithAPIKey(apiKey),
option.WithBaseURL("https://gateway.serevixai.ai/v1"),
)
resp, err := client.Chat.Completions.New(
context.Background(),
openai.ChatCompletionNewParams{
Model: "glm-4.7",
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("你好,给我科普一下量子力学吧"),
},
},
)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Println(resp.Choices[0].Message.Content)
}
#!/usr/bin/env python3
from openai import OpenAI
def main():
api_key = "sk-123456789012345678901234567890123456789012345678"
client = OpenAI(
api_key=api_key,
base_url="https://gateway.serevixai.ai/v1"
)
response = client.chat.completions.create(
model="glm-4.7",
messages=[
{"role": "user", "content": "你好,给我科普一下量子力学吧"}
]
)
print(response.choices[0].message.content)
if __name__ == "__main__":
main()
5. 响应示例¶
{
"id": "chatcmpl-1234567890",
"object": "chat.completion",
"created": 1699999999,
"model": "glm-4.7",
"choices": [
{
"message": {
"role": "assistant",
"content": "量子力学是研究微观世界的物理学分支……"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 30,
"total_tokens": 40
}
}