智谱AI:ChatGLM API调用说明

幸福清风 2024-06-17 12:31:02 阅读 51

一、前言:

智谱AI与清华KEG实验室发布的ChatGLM大语言模型,支持8k上下文,在内容创作、文本理解、信息抽取等任务上表现突出。经过海量中英标识符的预训练与人类偏好对齐训练,相比一代模型在 MMLU、C-Eval、GSM8K 分别取得了16%、36%、280%的提升,并登顶中文任务榜单C-Eval。

二、获取API Key:

1、打开网址:智谱AI开放平台 注册账号登录

2、登录——右上角(查看API Key)

3、注册后赠送100万token,实名认证后多赠送400万(有效期一个月)

三、安装及调用:

首先请通过如下方式进行安装:

pip install zhipuai

我们升级了最新的模型 GLM-4、GLM-3-Turbo,支持了System Prompt、Function Call、Retrieval、Web_Search等新功能。使用以上新功能需升级最新版本的 Python SDK。如您已安装老版本SDK,请您更新到最新版SDK。

pip install --upgrade zhipuai

调用方式

示例1:

from zhipuai import ZhipuAIclient = ZhipuAI(api_key="") # 填写您自己的APIKeyresponse = client.chat.completions.create( model="glm-4", # 填写需要调用的模型名称 messages=[ {"role": "user", "content": "作为一名营销专家,请为我的产品创作一个吸引人的slogan"}, {"role": "assistant", "content": "当然,为了创作一个吸引人的slogan,请告诉我一些关于您产品的信息"}, {"role": "user", "content": "智谱AI开放平台"}, {"role": "assistant", "content": "智启未来,谱绘无限一智谱AI,让创新触手可及!"}, {"role": "user", "content": "创造一个更精准、吸引人的slogan"} ],)print(response.choices[0].message)

示例2:

from zhipuai import ZhipuAIclient = ZhipuAI(api_key="") # 填写您自己的APIKeyresponse = client.chat.completions.create( model="glm-4v", # 填写需要调用的模型名称 messages=[ { "role": "user", "content": [ { "type": "text", "text": "图里有什么" }, { "type": "image_url", "image_url": { "url" : "https://img1.baidu.com/it/u=1369931113,3388870256&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1703696400&t=f3028c7a1dca43a080aeb8239f09cc2f" } } ] } ])print(response.choices[0].message)

示例3:

from zhipuai import ZhipuAIclient = ZhipuAI(api_key="") # 请填写您自己的APIKeyresponse = client.chat.completions.create( model="glm-3-turbo", # 填写需要调用的模型名称 messages=[ {"role": "system", "content": "你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。"}, {"role": "user", "content": "我对太阳系的行星非常感兴趣,特别是土星。请提供关于土星的基本信息,包括其大小、组成、环系统和任何独特的天文现象。"}, ], stream=True,)for chunk in response: print(chunk.choices[0].delta)

四、接口说明:

模型编码:glm-4

根据输入的自然语言指令完成多种语言类任务,推荐使用 SSE 或异步调用方式请求接口

传输方式

https

请求地址

https://open.bigmodel.cn/api/paas/v4/chat/completions

调用方式

同步调用,等待模型执行完成并返回最终结果或 SSE 调用

字符编码

UTF-8

接口请求格式

JSON

响应格式

JSON 或标准 Stream Event

接口请求类型

POST

开发语言

任意可发起 HTTP 请求的开发语言

接口参数请求

model

String

所要调用的模型编码

messages

List<Object>

调用语言模型时,将当前对话信息列表作为提示输入给模型, 按照 {"role": "user", "content": "你好"} 的json 数组形式进行传参; 可能的消息类型包括 System message、User message、Assistant message 和 Tool message。

request_id

String

由用户端传参,需保证唯一性;用于区分每次请求的唯一标识,用户端不传时平台会默认生成。

do_sample

Boolean

do_sample 为 true 时启用采样策略,do_sample 为 false 时采样策略 temperature、top_p 将不生效

stream

Boolean

使用同步调用时,此参数应当设置为 fasle 或者省略。表示模型生成完所有内容后一次性返回所有内容。

如果设置为 true,模型将通过标准 Event Stream ,逐块返回模型生成内容。Event Stream 结束时会返回一条data: [DONE]消息。

注意:在模型流式输出生成内容的过程中,我们会分批对模型生成内容进行检测,当检测到违法及不良信息时,API会返回错误码(1301)。开发者识别到错误码(1301),应及时采取(清屏、重启对话)等措施删除生成内容,避免其造成负面影响。

temperature

Float

采样温度,控制输出的随机性,必须为正数

取值范围是:(0.0, 1.0),不能等于 0,默认值为 0.95,值越大,会使输出更随机,更具创造性;值越小,输出会更加稳定或确定

建议您根据应用场景调整 top_p 或 temperature 参数,但不要同时调整两个参数

top_p

Float

用温度取样的另一种方法,称为核取样

取值范围是:(0.0, 1.0) 开区间,不能等于 0 或 1,默认值为 0.7

模型考虑具有 top_p 概率质量 tokens 的结果

例如:0.1 意味着模型解码器只考虑从前 10% 的概率的候选集中取 tokens

建议您根据应用场景调整 top_p 或 temperature 参数,但不要同时调整两个参数

max_tokens

Integer

模型输出最大 tokens

stop

List

模型在遇到stop所制定的字符时将停止生成,目前仅支持单个停止词,格式为["stop_word1"]

tools

List

可供模型调用的工具列表,tools 字段会计算 tokens ,同样受到 tokens 长度的限制

tool_choice

String 或 Object

用于控制模型是如何选择要调用的函数,仅当工具类型为function时补充。默认为auto,当前仅支持auto

System Message格式

role

String

消息的角色信息,此时应为system

content

String

消息内容

User Message格式

role

String

消息的角色信息,此时应为user

content

String

消息内容

Assisant Message格式

role

String

消息的角色信息,此时应为assistant

content

String

"content"与"tool_calls"二必选一

消息内容。其中包括了tool_calls字段,content字段为空。

tool_calls

List

"content"与"tool_calls"二必选一

模型产生的工具调用消息

Tool Message格式

tool message 代表工具被调用后返回的结果。模型根据tool message向用户输出自然语言格式的消息。

role

String

消息的角色信息,此时应为tool

content

String

tool_message消息内容,为工具被调用后返回的结果

tool_call_id

String

tool的调用记录

模型同步调用响应内容

id​

String

任务ID

created

Long

请求创建时间,是以秒为单位的 Unix 时间戳

model

String

模型名称

choices

List

当前对话的模型输出内容

usage

Object

结束时返回本次模型调用的 tokens 数量统计。

内容生成流式响应块内容

id

String

智谱 AI 开放平台生成的任务订单号,调用请求结果接口时请使用此订单号

created

Long

请求创建时间,是以秒为单位的 Unix 时间戳

choices

List

当前对话的模型输出内容

usage

Object

结束时返回本次模型调用的 tokens 数量统计。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。