云平台得大模型使用以及调用
目录
一、云平台大模型的调用
1、阿里百炼大模型的使用
2、发送http请求调用大模型
二、大模型调用的参数说明
1、请求参数
2、响应参数
一、云平台大模型的调用
部署大模型的平台常见的有阿里云百炼, 百度智能云, 硅基流动, 火山引擎等等, 在咱们本次演示中使用阿里云百炼平台提供的大模型给大家做演示, 其它的平台,大家有兴趣可以自己试一试,因为这不同的平台,使用方式都大差不差!
1、阿里百炼大模型的使用
如果要使用阿里云百炼,需要有如下四个步骤的操作:
- 登录阿里云 https://aliyun.com
- 开通 大模型服务平台百炼 服务
- 申请百炼平台 API-KEY
- 选择大模型使用
2、发送http请求调用大模型
百炼平台对于大模型API的使用,给出了详细的参考文档,其中就包括http方式的调用,大家可以点击目标模型下方的API参考,查看详细的文档
这里需要注意的是,由于百炼平台是一个收费的平台,所以发送http请求的时候,需要以请求投的方式将api-key,接下来我们介绍一下如何在apifox中配置api-key。
api-key配置好了以后,我们调用百炼平台提供的大模型,也需要指定url,请求方式以及请求参数,这里可以参照百炼平台提供的文档,最终效果如下:
二、大模型调用的参数说明
有关大模型调用过程中,请求数据和响应数据都给出了详细的说明,大家可以参照百炼平台的api文档查看,同时不同平台的请求参数,基本都类似,接下来我们挑选几个核心的数据给大家做说明。
1、请求参数
使用大模型需要传递的参数,在访问大模型时都需要在请求体中以json的形式进行传递,下面是给出的一个样例:
{"model": "qwen-plus","messages": [{"role": "system","content": "你是东哥的助手小月月"},{"role": "user", "content": "你是谁?"},{"role": "assistant","content": "您好,有什么可以帮助您?"}],"stream": true, "enable_search": true
}
下面是每一个参数的含义:
model: 告诉平台,当前调用哪个模型
messages: 发送给模型的数据,模型会根据这些数据给出合适的响应
content: 消息内容
role: 消息角色(类型)
user: 用户消息
system: 系统消息
assistant: 模型响应消息
stream: 调用方式
true: 流式调用
false: 流式调用(默认)
enable_search: 联网搜索,启用后,模型会将搜索结果作为参考信息
true: 开启
false: 不开启(默认)
每一个参数的作用不一样,接下来对每一个参数做详细说明。
首先是model,由于百炼平台提供了各种各样的模型,所以你需要通过model这个参数来指定接下来要调用的是哪个模型。
其次是messages,用户发送给大模型的消息有三种,使用role来进行分别,其中user代表的是用户问题,这个在咱们之前的演示中一直在用,不再过多介绍。system代表的系统消息,它是用于给大模型设定一个角色,然后大模型就可以用该角色的口吻跟用户对话了,下面是一个演示案例:
最后assistant代表的是大模型给用户响应的消息,这里很奇怪,为什么大模型响应给用户的消息,再次请求大模型时需要携带给大模型呢?这是因为大模型没有记忆能力,也就是说用户跟大模型交互的过程中,每一次问答都是独立的,互不干扰的。但是实际上我们人与人之间的聊天不是这样的,比如我问你西北大学是211吗?你回答我是!我再问你是985吗?你会回答不是!虽然我第二次问你的时候我并没有问具体哪个大学是985,但是你可以从咱们之前的聊天信息中推断出我要问的是西北大学,因为你已经记住了之前的聊天信息。但是大模型目前做不到,如果要让大模型在与用户沟通的过程中达到人与人沟通的效果,我们唯一的解决方案就是每次与大模型交互的过程中,把之前用户的问题和大模型的响应以及现在的问题,都发送给大模型,这样大模型就可以根据以前的聊天信息从而做出推断了,下面是一个演示的案例:
sream代表调用大模型的方式,如果取值为true,代表流式调用,此时大模型会生成一点儿数据,就给客户端响应一点儿数据,最终通过多次响应的方式把所有的结果响应完毕。如果取值为false,代表阻塞式调用,此时大模型会等待将所有的内容生成完毕,然后再一次性的响应给客户端。默认情况下stream的取值为false,下面是两种不同调用方案的演示案例:
enable_search代表是否开启联网搜索,由于大模型训练完毕后,它的知识库不再更新了,比如大模型时2023年10月训练完毕的,那么2023年10月以后新产生的数据,大模型就无法感知了,如果要让大模型可以根据最新的数据回答问题,其中有一种解决方案就是开启联网搜索,大模型可以根据联网搜索的结果生成最终的答案。默认情况下enable_seach为false,也就是不开启,如果要开启联网搜索,需要手动设置请求参数enable_search为true。下面是一个演示案例:
2、响应参数
在与大模型交互的过程中,大模型响应的数据是json格式的数据,下面是一份响应数据的示例:
{"choices": [{"message": {"role": "assistant",“content”: “我是通义千问,阿里巴巴…"},"finish_reason": "stop","index": 0}],"object": "chat.completion","usage": {"prompt_tokens": 22,"completion_tokens": 80,"total_tokens": 102, },"created": 1748068508,"system_fingerprint": null,"model": "qwen-plus","id": "chatcmpl-99f8d040-0f49-955b-943a-21c83"
}
下面是每一个参数的含义:
choices: 模型生成的内容数组,可以包含一条或多条内容
- message: 本次调用模型输出的消息
- finish_reason: 自然结束(stop),生成内容过长(length)
- index: 当前内容在choices数组中的索引
object: 始终为chat.completion, 无需关注
usage: 本次对话过程中使用的token信息
- prompt_tokens: 用户的输入转换成token的个数
- completion_tokens: 模型生成的回复转换成token的个数
- total_tokens: 用户输入和模型生成的总token个数
created: 本次会话被创建时的时间戳
system_fingerprint: 固定为null,无需关注
model: 本次会话使用的模型名称
id: 本次调用的唯一标识符
有关响应数据,大家基本上作为了解的知识,种地那关注choices和usage,其中choices里面封装的是大模型响应给客户端的核心数据,也就是用户问题的答案。而usage代表本次对话过程中使用的token信息,这里对token给大家做一个解释:在大语言模型中,token 是大模型处理文本的基本单位,可以理解为模型"看得懂"的最小文本片段,用户输入的内容都需要转换成token,才能让大模型更好的处理。将来文本要转化成token,需要使用到一个叫分词器的东西,不同的分词器,相同的文本转化成token的个数不完全一致,但是目前大部分分词器在处理英文的时候,一个token大概等于4个字符,而处理中文的时候,一个汉字字符大概等于1~2个token。顺便给大家说一下, 其实我们通过API调用百炼平台提供的大模型,是按照流量收费的, 其实更准确的说法应该是按照token数量进行收费。