python免费调用阿里云通义千问(q-wen-max)大模型API

文章目录

        • 通义千问
        • 开通免费API Key
        • python调用阿里云通义千问API

通义千问

通义千问,是基于阿里巴巴达摩院在自然语言处理领域的研究和积累。采用更先进的算法和更优化的模型结构,能够更准确地理解和生成自然语言、代码、表格等文本。

支持更多定制化需求。除了基本的文本生成和问答能力,还支持更多的定制化需求,可以针对不同场景和应用进行扩展和定制,提供更加个性化的服务和解决方案。

开通免费API Key

网址:https://bailian.console.aliyun.com/?spm=5176.28515448.J_TC9GqcHi2edq9zUs9ZsDQ.1.11fc38b19UJPh6#/home

进入阿里云大模型服务百炼平台,可以看到所有通义千问模型,选择适当的模型进行调用。

在这里插入图片描述
创建好API Key之后,进入阿里云服务百炼的个人账号即可看到调用需要的API Key。
在这里插入图片描述

产品文档中有详尽的参数设置以及使用指引和具体的各种调用代码。

在这里插入图片描述
在这里插入图片描述

python调用阿里云通义千问API
  • 单轮对话
import random
from http import HTTPStatus
from dashscope import Generation
import dashscope
dashscope.api_key  = "sk-xxxx"def call_with_messages():messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},{'role': 'user', 'content': '如何做西红柿炒鸡蛋?'}]response = Generation.call("qwen-turbo",messages=messages,# 设置随机数种子seed,如果没有设置,则随机数种子默认为1234seed=random.randint(1, 10000),# 将输出设置为"message"格式result_format='message')if response.status_code == HTTPStatus.OK:print(response)else:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))if __name__ == '__main__':call_with_messages()
{"status_code": 200, "request_id": "d7823140-7709-9545-8849-f256e5ee7d5a", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "stop", "message": {"role": "assistant", "content": "材料:\n西红柿2个,鸡蛋3个,油适量,盐适量,糖适量,葱花适量\n\n步骤:\n\n1. 西红柿洗净切块,鸡蛋打入碗中搅拌均匀。\n\n2. 热锅凉油,油热后倒入鸡蛋液,用筷子快速搅拌,炒至半熟后盛出备用。\n\n3. 锅中再加少许油,放入西红柿块,中小火慢慢翻煮,让西红柿出汁。\n\n4. 当西红柿软烂出汁时,加入适量的糖,可以中和西红柿的酸味。\n\n5. 加入炒好的鸡蛋,继续翻煮均匀,让鸡蛋充分吸收西红柿的汁水。\n\n6. 最后撒上适量的盐调味,撒上葱花提香,翻煮均匀即可出锅。\n\n7. 可以根据个人口味适当调整糖和盐的量。\n\n这样一道美味的西红柿炒鸡蛋就做好了,色泽红亮,酸甜适口,营养丰富。"}}]}, "usage": {"input_tokens": 25, "output_tokens": 206, "total_tokens": 231}}
  • 多轮对话
from dashscope import Generationdef get_response(messages):response = Generation.call("qwen-turbo",messages=messages,# 将输出设置为"message"格式result_format='message')return responsemessages = [{'role': 'system', 'content': 'You are a helpful assistant.'}]# 您可以自定义设置对话轮数,当前为3
for i in range(3):user_input = input("请输入:")messages.append({'role': 'user', 'content': user_input})assistant_output = get_response(messages).output.choices[0]['message']['content']messages.append({'role': 'assistant', 'content': assistant_output})print(f'用户输入:{user_input}')print(f'模型输出:{assistant_output}')print('\n')
  • 流式输出
from http import HTTPStatus
from dashscope import Generationdef call_with_stream():messages = [{'role': 'user', 'content': '如何做西红柿炖牛腩?'}]responses = Generation.call("qwen-turbo",messages=messages,result_format='message',  # 设置输出为'message'格式stream=True, # 设置输出方式为流式输出incremental_output=True  # 增量式流式输出)for response in responses:if response.status_code == HTTPStatus.OK:print(response.output.choices[0]['message']['content'],end='')else:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))if __name__ == '__main__':call_with_stream()
  • 定义工具
import json
from dashscope import Generation
from datetime import datetime# 定义工具列表,模型在选择使用哪个工具时会参考工具的name和description
tools = [# 工具1 获取当前时刻的时间{"type": "function","function" :{"name": "get_current_time","description": "当你想知道现在的时间时非常有用。",# 因为获取当前时间不需要设置参数,因此这里的parameters设置为空字典"parameters": {}}},# 工具2 获取指定城市的天气{"type": "function","function": {"name": "get_current_weather","description": "当你想查询指定城市的天气时非常有用。",# 模型在决策输入工具的参数时会参考parameters信息"parameters": {"type": "object","properties": {"location": {"type": "string","description": "城市或县区,比如北京市、杭州市、余杭区等。"}}},"required": ["location"]}}
]def call_with_messages():# 此处的content是用户的问题messages = [{"content": "北京天气怎么样?", # 您也可以用"北京天气怎么样?"进行测试"role": "user"}]response = Generation.call(model='qwen-turbo',messages=messages,tools=tools,seed=random.randint(1, 10000),  # 设置随机数种子seed,如果没有设置,则随机数种子默认为1234result_format='message' # 将输出设置为message形式)print(response.output.choices[0].message['tool_calls'][0])print(response)if __name__ == '__main__':call_with_messages()
{'function': {'name': 'get_current_weather', 'arguments': '{"location": "北京市"}'}, 'id': '', 'type': 'function'}
{"status_code": 200, "request_id": "82a610b3-f225-9e4c-9294-e1883ab023e4", "code": "", "message": "", "output": {"text": null, "finish_reason": null, "choices": [{"finish_reason": "tool_calls", "message": {"role": "assistant", "content": "", "tool_calls": [{"function": {"name": "get_current_weather", "arguments": "{\"location\": \"北京市\"}"}, "id": "", "type": "function"}]}}]}, "usage": {"input_tokens": 224, "output_tokens": 18, "total_tokens": 242}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/636411.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习500问——Chapter08:目标检测(2)

文章目录 8.2.4 R-FCN 8.2.5 FPN 8.2.6 Mask R-CNN 8.2.4 R-FCN R-FCN 有哪些创新点 R-FCN仍然属于two-stage目标检测算法:RPN R-FCN Fully convolutional位置敏感得分图(position-sentive score maps) our region-based detector is ful…

vs code server for wsl closed unexpectedly

前言: 我的Windows 版本: 10.0.19045.4291 (如果你是Win11或者你要使用WSL2请谨慎) 之前是可以用的,但安装Vmware(并安装了Ubuntu进行了一番实验后,就出现如标题所述问题) 问题&a…

【SpringBoot实战篇】获取用户详细信息

1 明确需求 1需要获取用户详细信息 2 接口文档 1基本信息 2请求参数 无 3 响应数据 响应数据类型:application/json 响应参数说明: 响应数据样例 3 思路分析 1用户名在请求头里获取 4 开发 4.1 控制器usercontroller GetMapping("/userInfo")p…

Solidworks 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包,选择“解压到Solidworks.2024”。 打开解压后的文件夹下的“SolidSQUAD”,双击“sw2024_network_serials_licensing”。 点击“是”。 点击“确定”。 复制“SolidWorks_Flexnet_Server”文件夹。 将其粘贴至C盘。 打开复制后的文件夹…

LabVIEW多设备控制与数据采集系统

LabVIEW多设备控制与数据采集系统 随着科技的进步,自动化测试与控制系统在工业、科研等领域的应用越来越广泛。开发了一种基于LabVIEW平台开发的多设备控制与数据采集系统,旨在解决多设备手动设置复杂、多路数据显示不直观、数据存储不便等问题。通过RS…

Matlab|【复现】主动配电网故障定位方法研究

目录 1 主要内容 算例模型 期望故障电流状态函数 评价函数(膨胀率函数) 算例验证方法 详实的文档说明 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序方法复现了《基于改进多元宇宙算法的主动配电网故障定位方法研究》_郑聪,建…

【R语言】概率密度图

概率密度图是用来表示连续型数据的分布情况的一种图形化方法。它通过在数据的取值范围内绘制一条曲线来描述数据的分布情况,曲线下的面积代表了在该范围内观察到某一数值的概率。具体来说,对于给定的连续型数据,概率密度图会使用核密度估计&a…

【记录】Python3|Selenium 下载 PDF 不预览不弹窗(2024年)

版本: Chrome 124Python 3.12Selenium 4.19.0 版本与我有差异不要紧,只要别差异太大比如 Chrome 用 57 之前的版本了,就可以看本文。 如果你从前完全没使用过、没安装过Selenium,可以参考这篇博客《【记录】Python3|Se…

3D感知生成对抗网络的高斯溅射解码器

Gaussian Splatting Decoder for 3D-aware Generative Adversarial Networks 3D感知生成对抗网络的高斯溅射解码器 Florian Barthel1, 2  Arian Beckmann1  Wieland Morgenstern1  Anna Hilsmann1  Peter Eisert1,2 Florian Barthel 1, 2 阿里安贝克曼Wieland晨星Anna Hils…

【数据结构练习题】堆——top-k问题

♥♥♥♥♥个人主页♥♥♥♥♥ ♥♥♥♥♥数据结构练习题总结专栏♥♥♥♥♥ ♥♥♥♥♥上一章:【数据结构练习题】二叉树(1)——1.相同的树2.另一颗树的子树3.翻转二叉树4.平衡二叉树5.对称二叉树♥♥♥♥♥ 文章目录 1.top-k问题1.1问题描述1.2思路分析1.3绘图分析…

数据分析_商品维度占比及变化可视化分析(Pandas和Matplotlib)

数据分析_商品维度占比及变化可视化分析(Pandas和Matplotlib) 分析维度包括: 各商品年度销量占比 各商品月度销量变化 构建测试数据 这里你可以了解到: 如何生成时间相关的数据。 如何从列表(可迭代对象)中生成随机数据。 Pandas 的 DataFrame 自…

LabVIEW仪器信息管理系统

LabVIEW仪器信息管理系统 在计量检测实验室的日常工作中,仪器检定校准是一项基础而重要的任务。随着科技的进步和实验室工作量的增加,传统的人工管理方式已经难以满足现代实验室对效率和准确性的要求。开发一套基于LabVIEW的仪器信息管理系统显得尤为必…