使用Python免费调用通义千问大模型

Qwen-72b开源模型

        模型的主要用途是预测或描述一个系统或现象的行为模式。它可以帮助人们更好地理解这个系统或现象,例如预测股市变化、天气预报、地震预警、交通流量等。模型也常用于设计和优化产品和工艺。在科学研究中,模型也是一种方法,用于测试和验证理论。总之,模型是一个用于描述和预测现实世界的简化表示。

        最近,阿里云的通义千问Qwen-72b大模型宣布开源了!现可以在魔撘社区(点击跳转)免费体验,也可通过官方限时免费开放的api使用。本文就将讲解如何使用官方api


前提条件

1.需要注册阿里云(点我跳转)账号

注册

2.开通DashScope(点我跳转)并创建API-KEY

创建后点击API-KEY管理

创建新的API_KEY(一定记住且不要随意给别人)

搭建Python(3.7及以上版本)环境并安装DashScope SDK 

搭建Python环境这里忽略,搭建好环境后安装

pip install dashscope

使用dashscope调用api

设置API-KEY

设置API_KET的方法有很多种,这里只讲python代码中添加

import random
from http import HTTPStatusimport dashscope
from dashscope.api_entities.dashscope_response import Roledashscope.api_key = "你的api-key"

messages参数讲解(配合下文使用)

# 需要导入from dashscope.api_entities.dashscope_response import Role
{"role": Role.USER,    # 此处是 'user',代表着用户"content": "content"    # 此处用户输入的内容
}{"role": Role.SYSTEM    # 此处是 'system',代表着是此次对话的标题(用过chatgpt的应该了解)"content": "content"    # 此处是对话的第一句话也是标题。
}{"role": Role.ASSISTANT    # 此处是 'assistant',代表着机器人(api)"content": "content"    # 机器人的输出
}# 这些都用一个列表存储在一起
# 因此,我们可以通过这种方式存储对话的缓存,也可以自定义对话内容。

简单调用

def call_with_messages(content: str):messages = [{'role': 'user', 'content': content}]response = dashscope.Generation.call('qwen-72b-chat',    # 采用模型messages=messages,    # 信息列表result_format='message',    # 设置格式为message)if response.status_code == HTTPStatus.OK:return response.output.choices[0]['message']['content']else:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))while True:content = input("user>")print(call_with_messages(content))

这就是最简单的调用,但是没有缓存缓存记录。

缓存调用

def multi_round_conversation(content: str):messages = [{'role': Role.SYSTEM, 'content': '我是谁'},{'role': Role.USER, 'content': '我是PYmili,你记住了!'},{'role': Role.ASSISTANT, 'content': '好的,我记住了!'}]response = dashscope.Generation.call('qwen-72b-chat',messages=messages,# 设置一个种子,并不是必要参数seed=random.randint(1, 10000),result_format='message',)if response.status_code == HTTPStatus.OK:print(response)messages.append({'role': response.output.choices[0]['message']['role'],'content': response.output.choices[0]['message']['content']})else:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))messages.append({'role': Role.USER, 'content': content})response = dashscope.Generation.call('qwen-72b-chat',messages=messages,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))print(messages)

messages中将存放所有对话缓存。

流式调用

def call_stream_with_messages():messages = [{'role': 'user', 'content': '用c语言写一个插入算法。'}]responses = dashscope.Generation.call('qwen-72b-chat',messages=messages,seed=random.randint(1, 10000),  # set the random seed, optional, default to 1234 if not setresult_format='message',  # set the result to be "message"  format.stream=True,output_in_full=True  # get streaming output incrementally)full_content = ''for response in responses:if response.status_code == HTTPStatus.OK:full_content += response.output.choices[0]['message']['content']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))print('Full content: \n' + full_content)

这样将会对于机器人输出长字符串,很好的优化。就可以实现机器人在打字的效果。


官方文档

更详细的内容可以到官网文档(点我跳转)看看 


结束语

好的,这就是本篇文章内容,有问题的话,可以联系我:Q群 706128290

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

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

相关文章

仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能

仿京东淘宝商品列表筛选组件:实现一个高效的侧边栏弹框筛选功能 一、引言 随着电子商务的快速发展,用户体验成为了竞争的关键因素。在众多的电商网站中,如京东和淘宝,商品列表筛选功能为用户提供了便捷的途径来找到心仪的商品。本…

使用JSP+Servlet+MySQL实现登录注册功能

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏&#xf…

【电路笔记】-并联电阻

并联电阻 文章目录 并联电阻1、概述2、并联电阻示例13、并联电阻示例24、并联电阻电路中的电流5、并联电阻器示例36、总结 当电阻器的两个端子分别连接到另一个或多个电阻器的每个端子时,电阻器被称为并联连接在一起。 1、概述 与之前的串联电阻电路不同&#xff0…

神经网络 模型表示2

神经网络 模型表示2 使用向量化的方法会使得计算更为简便。以上面的神经网络为例,试着计算第二层的值: 我们令 z ( 2 ) θ ( 1 ) x {{z}^{\left( 2 \right)}}{{\theta }^{\left( 1 \right)}}x z(2)θ(1)x,则 a ( 2 ) g ( z ( 2 ) ) {{a}…

动态规划 | 打家劫舍1、2、3

198. 打家劫舍 https://leetcode.cn/problems/house-robber/description/ dp[i] 表示 考虑到下标为 i (包括i)的房子,可以偷到的最大金额。 dp[i] 有两个状态,分别是 偷 和 不偷。 偷,则需要考虑前 i-2 天的最大金额…

Linux常见指令大全及周边知识:让你的命令行变得更加强大

文章目录 目录 文章目录 前言 一,Linux操作系统是啥? 二,Linux操作系统具有以下特点 三,指令的学习 1,指令是什么? 2,ls 指令及其常用的衍生指令: 周边知识: ls…

Selenium page object模式Python

目录 概述 优点 示例 项目结构: 基础页面类BasePage 业务页面类BaiduHomePage 测试类test_baidu: 文件工具类file_util 运行日志: 测试结果: 概述 在web应用程序的UI中,有一些区域可以与测试交互。页面对象…

【虚拟机】Docker基础 【二】

2.2.数据卷 容器是隔离环境,容器内程序的文件、配置、运行时产生的容器都在容器内部,我们要读写容器内的文件非常不方便。大家思考几个问题: 如果要升级MySQL版本,需要销毁旧容器,那么数据岂不是跟着被销毁了&#x…

微信小程序实现打分效果代码整理

一、微信小程序点击对应点击高亮 js代码 Page({data: {list: [1, 2, 3, 4, 5],active: 0},itemClickOne(e){var nume.currentTarget.dataset.value;this.setData({active:num});}, }) wxml代码 <view class"list"><view class"item {{itemactive?…

IDC MarketScape2023年分布式数据库报告:OceanBase位列“领导者”类别,产品能力突出

12 月 1 日&#xff0c;全球领先的IT市场研究和咨询公司 IDC 发布《IDC MarketScape:中国分布式关系型数据库2023年厂商评估》&#xff08;Document number:# CHC50734323&#xff09;。报告认为&#xff0c;头部厂商的优势正在扩大&#xff0c;OceanBase 位列“领导者”类别。…

C#语言高阶开发

目录 数据结构 集合 动态数组ArrayList 习题&#xff1a;声明一个Monster类&#xff0c;有一个Attack方法,用一个ArrayList去封装Monster的对象,装10个&#xff0c;遍历monster的list让他们释放攻击方法 哈希表HashTable 创建一个武器类&#xff0c;有一个属性叫做id,每个…

【数据中台】开源项目(3)-Linkis

关于 Linkis Linkis 在上层应用程序和底层引擎之间构建了一层计算中间件。通过使用Linkis 提供的REST/WebSocket/JDBC 等标准接口&#xff0c;上层应用可以方便地连接访问MySQL/Spark/Hive/Presto/Flink 等底层引擎&#xff0c;同时实现统一变量、脚本、用户定义函数和资源文件…

web:very_easy_sql(sql、ssrf、gopher协议sql注入)

题目 页面显示如下 显示不是内部用户&#xff0c;无法识别信息 查看源码&#xff0c;找到一个use.php 访问之后显示如下 随便输入了一个&#xff0c;发现url有参数显示 试一下靶机的网址&#xff0c;返回nonono 联系之前原始页面写的“不是内网用户&#xff0c;无法别识身份”…

【PTA-C语言】实验三-循环结构I

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 实验三-循环结构I 7-1 求交错序列前N项和 &#xff08;分数 15&#xff09;7-2 寻找250&#xff08;分数 15&#xff09;7-3 最大公约数和最小公倍数&#xff08;分数 15&#xff09;7-4 统计字符&#xff0…

Redis 发布订阅机制深入探索

Redis 的发布订阅&#xff08;pub/sub&#xff09;机制是一种消息传递模式&#xff0c;允许消息的发送者&#xff08;发布者&#xff09;和消息的接收者&#xff08;订阅者&#xff09;通过一个中介层&#xff08;频道&#xff09;进行通信&#xff0c;而无需彼此直接交互。以下…

231202 刷题日报

周四周五&#xff0c;边值班边扯皮&#xff0c;没有刷题。。 今天主要是做了: 1. 稀疏矩阵压缩&#xff0c;十字链表法 2. 快速排序 3.349. 两个数组的交集​​​​​ 4. 174. 地下城游戏 要注意溢出问题&#xff01;

外包搞了6年,技术退步明显......

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

vue项目报错及解决npm run build:prod打包错误

vue项目报错及解决npm run build:prod打包错误 执行dev环境时加载失败了该变量&#xff0c;在package.json文件中 删掉 解决方法&#xff1a; 打包成功&#xff1a;

使用 OpenFunction 在任何基础设施上运行 Serverless 工作负载

作者&#xff1a; 霍秉杰&#xff1a;KubeSphere 可观测性、边缘计算和 Serverless 团队负责人&#xff0c;Fluent Operator 和 OpenFunction 项目的创始人&#xff0c;还是多个可观测性开源项目包括 Kube-Events、Notification Manager 等的作者&#xff0c;热爱云原生技术&am…

Hdoop学习笔记(HDP)-Part.16 安装HBase

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …