智谱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>
| 是
| 调用语言模型时,将当前对话信息列表作为提示输入给模型, 按照
|
request_id
| String
| 否
| 由用户端传参,需保证唯一性;用于区分每次请求的唯一标识,用户端不传时平台会默认生成。
|
do_sample
| Boolean
| 否
| do_sample 为 true 时启用采样策略,do_sample 为 false 时采样策略 temperature、top_p 将不生效
|
stream
| Boolean
| 否
|
使用同步调用时,此参数应当设置为 fasle 或者省略。表示模型生成完所有内容后一次性返回所有内容。 如果设置为 true,模型将通过标准 Event Stream ,逐块返回模型生成内容。Event Stream 结束时会返回一条 注意:在模型流式输出生成内容的过程中,我们会分批对模型生成内容进行检测,当检测到违法及不良信息时,API会返回错误码(1301)。开发者识别到错误码(1301),应及时采取(清屏、重启对话)等措施删除生成内容,避免其造成负面影响。
|
temperature
| Float
| 否
|
采样温度,控制输出的随机性,必须为正数
取值范围是: 建议您根据应用场景调整 |
top_p
| Float
| 否
| 用温度取样的另一种方法,称为核取样 取值范围是: 模型考虑具有 例如:0.1 意味着模型解码器只考虑从前 10% 的概率的候选集中取 tokens 建议您根据应用场景调整
|
max_tokens
| Integer
| 否
| 模型输出最大 tokens
|
stop
| List
| 否
| 模型在遇到stop所制定的字符时将停止生成,目前仅支持单个停止词,格式为
|
tools
| List
| 否
| 可供模型调用的工具列表,tools 字段会计算 tokens ,同样受到 tokens 长度的限制
|
tool_choice
| String 或 Object
| 否
| 用于控制模型是如何选择要调用的函数,仅当工具类型为function时补充。默认为auto,当前仅支持auto
|
System Message格式
role
| String
| 是
| 消息的角色信息,此时应为
|
content
| String
| 是
| 消息内容
|
User Message格式
role
| String
| 是
| 消息的角色信息,此时应为
|
content
| String
| 是
| 消息内容
|
Assisant Message格式
role
| String
| 是
| 消息的角色信息,此时应为
|
content
| String
| "content"与"tool_calls"二必选一
| 消息内容。其中包括了
|
tool_calls
| List
| "content"与"tool_calls"二必选一
| 模型产生的工具调用消息
|
Tool Message格式
tool message 代表工具被调用后返回的结果。模型根据tool message向用户输出自然语言格式的消息。
role
| String
| 是
| 消息的角色信息,此时应为
|
content
| String
| 是
|
|
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 数量统计。
|
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。