通义千问大模型API调用示例

通义千问是由阿里云自主研发的大语言模型,用于理解和分析用户输入的自然语言。

模型概览

模型名称模型简介模型输入/输出限制
qwen-turbo通义千问超大规模语言模型,支持中文、英文等不同语言输入模型支持8k tokens上下文,为了保证正常的使用和输出,API限定用户输入为6k tokens
qwen-turbo通义千问超大规模语言模型,支持中文、英文等不同语言输入模型支持32k tokens上下文,为了保证正常的使用和输出,API限定用户输入为30k tokens
qwen-max通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。随着模型的升级,qwen-max将滚动更新升级,如果希望使用固定版本,请使用下面的历史快照版本。当前qwen-max模型与qwen-max-0428快照版本等价,均为最新版本的qwen-max模型,也是当前通义千问2.5产品版本背后的API模型模型支持8k tokens上下文,为了保证正常的使用和输出,API限定用户输入为6k tokens
qwen-max-longcontext通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入模型支持30k tokens上下文,为了保证正常的使用和输出,API限定用户输入为28k tokens

API调用

一、开通DashScope并创建API-KEY

  • 开通DashScope灵积模型服务
    1、 访问DashScope管理控制台:https://dashscope.console.aliyun.com ,
    在这里插入图片描述
    2、在控制台“总览”页下,单击去开通。
    在这里插入图片描述
    3、阅读服务协议,确认无误后单击立即开通
    在这里插入图片描述

  • 创建API-KEY
    1、访问DashScope管理控制台API-KEY管理页面:前往API-KEY管理,单击创建新的API-KEY。
    在这里插入图片描述
    2、系统创建生成API-KEY,并在弹出的对话框中展示,可以单击复制按钮将API-KEY的内容复制保存。
    在这里插入图片描述

  • API-KEY添加至系统变量
    1、方式一:通过环境变量设置API-KEY
    环境变量添加方式不再赘述。
    2、在代码中显式配置API-KEY

import dashscope
dashscope.api_key="YOUR_DASHSCOPE_API_KEY"

二、示例

示例使用代码中显示配置API-KEY的方式。

from http import HTTPStatus
import dashscope

# 替换为自己的 API Key
dashscope.api_key="sk-***********"
def sample_call_streaming():
    prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'
    response_generator = dashscope.Generation.call(
        model='qwen-turbo',
        prompt=prompt_text,
        # 设置stream为True,开启流式输出
        stream=True,
        incremental_output=True,
        top_p=0.9)

    for response in response_generator:
        if response.status_code == HTTPStatus.OK:
            print(response.output.text, end="")  # 输出文本
        else:
            print(response.code)  # 错误码
            print(response.message)  # 错误信息


if __name__ == '__main__':
    sample_call_streaming()


输入参数

参数数据类型默认值说明
model(必选)string指定用于对话的通义千问模型名
messagesarray户与模型的对话历史。array中的每个元素形式为{“role”:角色, “content”: 内容},角色当前可选值:system、user、assistant和tool。system:表示系统级消息,用于指导模型按照预设的规范、角色或情境进行回应。是否使用system角色是可选的,如果使用则必须位于messages的最开始部分。user和assistant:表示用户和模型的消息。它们应交替出现在对话中模拟实际对话流程。tool:表示工具的消息。在使用function call功能时,如果要传入工具的结果,需将元素的形式设为{“content”:“工具返回的结果”, “name”:“工具的函数名”, “role”:“tool”}。其中name是工具函数的名称,需要和上轮response中的tool_calls[i][‘function’][‘name’]参数保持一致;content是工具函数的输出
promptstring无(与messages不可同时为空)用户输入的指令,用于指导模型生成回复
seed(可选)integer生成时使用的随机数种子,用于控制模型生成内容的随机性。seed支持无符号64位整数。
max_tokens(可选)integer1500或2000指定模型可生成的最大token个数
top_p(可选)float生成过程中的核采样方法概率阈值,例如,取值为0.8时,仅保留概率加起来大于等于0.8的最可能token的最小集合作为候选集。取值范围为(0,1.0),取值越大,生成的随机性越高;取值越低,生成的确定性越高
top_k(可选)integer生成时,采样候选集的大小。例如,取值为50时,仅将单次生成中得分最高的50个token组成随机采样的候选集。取值越大,生成的随机性越高;取值越小,生成的确定性越高。取值为None或当top_k大于100时,表示不启用top_k策略,此时,仅有top_p策略生效。
repetition_penalty(可选)float用于控制模型生成时连续序列中的重复度。提高repetition_penalty时可以降低模型生成的重复度,1.0表示不做惩罚。没有严格的取值范围。
presence_penalty(可选)float用户控制模型生成时整个序列中的重复度。提高presence_penalty时可以降低模型生成的重复度,取值范围[-2.0, 2.0]。
temperature(可选)float用于控制模型回复的随机性和多样性。具体来说,temperature值控制了生成文本时对每个候选词的概率分布进行平滑的程度。较高的temperature值会降低概率分布的峰值,使得更多的低概率词被选择,生成结果更加多样化;而较低的temperature值则会增强概率分布的峰值,使得高概率词更容易被选择,生成结果更加确定
stop (可选)string or arraystop参数用于实现内容生成过程的精确控制,在模型生成的内容即将包含指定的字符串或token_id时自动停止。stop可以为string类型或array类型
stream (可选)booleanFalse用于控制是否使用流式输出。当以stream模式输出结果时,接口返回结果为generator,需要通过迭代获取结果,默认每次输出为当前生成的整个序列,最后一次输出为最终全部生成结果,可以通过设置参数incremental_output为False改变输出模式为非增量输出
enable_search(可选)booleanFalse用于控制模型在生成文本时是否使用互联网搜索结果进行参考
result_format(可选)stringtext用于指定返回结果的格式,默认为text,也可选择message。推荐您优先使用message格式
incremental_output (可选)booleanFalse控制在流式输出模式下是否开启增量输出,即后续输出内容是否包含已输出的内容。设置为True时,将开启增量输出模式,后面输出不会包含已经输出的内容,您需要自行拼接整体输出;设置为False则会包含已输出的内容
toolsarrayNone用于指定可供模型调用的工具库,一次function call流程模型会从中选择其中一个工具
tool_choicestring or object在使用tools参数时,用于控制模型调用指定工具

出参描述

返回参数数据类型说明
status_codeinteger200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。
request_idstring系统生成的标志本次调用的id。
codestring表示错误码,调用成功时为空值。仅适用于Python
messagestring表示调用失败的详细信息,调用成功时为空值。仅适用于Python
outputobject表示调用结果信息。
output.finish_reasonstring有四种情况:正在生成时为null;因触发输入参数中的stop条件而结束为stop;因生成长度过长而结束为length;因发生工具调用为tool_calls。
output.choicesarray当result_format为message时输出choices
output.choices[i].finish_reasonstring有三种情况:正在生成时为null;因触发输入参数中的stop条件而结束为stop;因生成长度过长而结束为length。
output.choices[i].messageobject模型输出的消息
output.choices[i].message.rolestring模型的角色,固定为assistant
output.choices[i].message.contentstring模型生成的文本。
output.choices[i].message.tool_callsobject如果模型需要调用工具,则会生成tool_calls参数,应用于function call场景
usageobject计量信息,表示本次请求所消耗的token数据
usage.input_tokensinteger用户输入文本转换成token后的长度。
usage.output_tokensinteger模型生成回复转换为token后的长度。
usage.total_tokensintegerusage.input_tokens与usage.output_tokens的总和
  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值