基于dashscope在线调用千问大模型

前言

dashscope是阿里云大模型服务平台——灵积提供的在线API组件。基于它,无需本地加载大模型,通过在线方式访问云端大模型来完成对话。 

申请API key

老规矩:要想访问各家云端大模型,需要先申请API key。

对于阿里云,需要先访问:https://dashscope.console.aliyun.com/。然后注册一个账号,接着就可以申请sk-开头的api-key了,如下图所示。

有了key后,就可以点击上面选项:模型体验中心,输入简单的prompt来验证本地电脑访问阿里云网络通信有没有问题:

 代码

下面是一个简单python代码,自己封装message,并添加api-key,并通过在线方式访问Qwen大模型进行对话。

import dashscope
from typing import List
import logging

class Params:
    def __init__(self, model, temperature, api_key, messages):
        self.model = model
        self.temperature = temperature
        self.api_key = api_key
        self.messages = messages #List[Dict[str, str]]
        

class QwenClient:
    def __init__(self, log_verbose: bool = False):
        self.log_verbose = log_verbose
        self.logger = logging.getLogger(__name__)
        if log_verbose:
            self.logger.setLevel(logging.INFO)

    def call_qwen(self, params: Params) -> List[dict]:
        # 加载配置文件,根据需要选择第一个模型        
        if self.log_verbose:
            self.logger.info(f'{self.__class__.__name__}:params: {params}')

        # 初始化生成器对象
        gen = dashscope.Generation()

        # 调用千问API并获取回复
        responses = gen.call(
            model=params.model,
            temperature=params.temperature,
            api_key=params.api_key,
            messages= params.messages,
            result_format='message',
            stream=True,
        )        
        print("responses: ", responses)

        # 处理API返回的结果
        response_list = []
        for resp in responses:
            if resp["status_code"] == 200 and "output" in resp and "choices" in resp["output"]:
                choice = resp["output"]["choices"][0]["message"]["content"]
                response_list.append({"error_code": 0, "text": choice})
            else:
                error_data = {
                    "error_code": resp["status_code"],
                    "text": resp["message"],
                    "error": {
                        "message": resp["message"],
                        "type": "invalid_request_error",
                        "param": None,
                        "code": None,
                    }
                }
                self.logger.error(f"请求千问 API 时发生错误:{error_data}")
                response_list.append(error_data)

        return response_list

# 使用示例
if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    #model_names = ["qwen-turbo"]
    client = QwenClient(log_verbose=True)

    user_input = "你好,请问今天北京天气怎么样?"
    messages = [{"role": "user", "content": user_input}]
    params = Params("qwen-turbo", 0.7, "sk-axxxxxx3b4a2fa1cb1dd7e71a4bee", messages)
    
    responses = client.call_qwen(params)

    print("千问的回答:", responses[-1]["text"])

 需要先安装好组件:dashscope,typing以及logging。本平台是ubuntu20.04,直接输入:python3 xxx.py即可到预期结果:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】SpringBoot框架开发陕西非物质文化遗产网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与过程2.3.1 系统设计2.3.2 查阅文献2.3.3 网站分析2.3.4 网站设计2.3.5 网站实现2.3.6 系统测试与效果分析 三、系统展示四、核心代码4.1 查询民间文学4.2 查询传统音乐4.3 增改传统舞…

有趣的CSS - 圆点交互按钮

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个有意思的圆点交互文字按钮效果。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页…

关于汽车E\E架构演进的思考(1)

目录 1.电子电气架构概述 2.下一代架构面临的挑战 2.1 如何实现功能融合 2.2 整车通信的限制 2.3 如何保证融合ECU的功能安全和信息安全 3.小结 最近这段时间,汽车电子电气架构迭代的风吹得很猛烈。其中就包括国际MCU大厂纷纷对自家新推出的高性能MCU打得广告…

QEMU调试——通过获取设备树(dtb文件)查询开发板的外设地址信息

1、适用场景 使用qemu时,想快速知道开发板的地址空间映射情况,特别是某些外设控制器的寄存器基地址 2、查询QEMU支持的开发板 qemu-system-riscv32.exe -M ? 3、获取开发板对应的dtb文件 1、qemu-system-riscv32.exe -M nuclei_evalsoc 2、dumpdtb nucl…

HelpLook VS GitBook:知识库优劣详解

在信息爆炸的时代,企业要保持竞争优势,就必须善于管理和利用内部的知识资产。企业知识库作为一种集中存储和共享知识的工具,正在成为现代企业不可或缺的一部分。 HelpLook和Gitbook是提供专业知识库的两个平台,也被大众熟知。它们…

@ResponseStatus

目录 概述: 用途: 参数: 注意事项: 自定义异常类: 底层原理: 概述: 在 Spring MVC 中,我们有很多方法来设置 HTTP 响应的状态码其中最直接的方法:使用 ResponseSt…

教程篇:Groq API+沉浸式翻译插件 体验最快AI翻译

1、进入https://console.groq.com/keys 申请一个API(目前免费!抓紧白嫖) 2、安装Chrome插件:沉浸式翻译。 https://immersivetranslate.com/ 3、照着抄(注意将apikey,换成自己申请的groq的api-key&…

中间件 | Redis - [基本信息]

INDEX 1 常规用法2 QPS3 pipeline 1 常规用法 分布式锁 最常见用法,需要注意分布式锁的redis需要单点 分布式事务 分布式事务中,核心的技术难点其实是分布式事务这个事本身作为数据的持久化 2PC,比如 seata 的 AT 模式下,将 un…

哈希图的应用

位图 位图的概念 首先我们根据一个面试题来进入位图的理解 1. 面试题 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 大家思考一下,如果按照我们以往的思维,用直接遍历的方法…

猫毛过敏又不想扔掉猫怎么办?如何养猫?热门宠物空气净化器分享

养了猫咪一年多,忽然发现自己患上了过敏性鼻炎和结膜炎,就是那种一靠近猫咪就会不断打喷嚏、流鼻涕、流眼泪的症状。有时候还会感到眼睛发痒,发红。有没有什么好的方法治疗过敏性鼻炎呢? 医生建议,从根本上解决问题需…

uniapp图片涂鸦插件(支持多种涂鸦方式,图片放大缩小)

工程地址https://gitee.com/geshijia/ct-graffiti ct-graffiti涂鸦组件使用说明 参考说明 参考链接:https://github.com/ylyuanlu/yl-graffiti 感谢作者的付出,给我提供了一些思路,并做了如下优化: 增加图片放大缩小移动功能添…

刷题日记:面试经典 150 题 DAY5

刷题日记:面试经典 150 题 DAY4 125. 验证回文串28. 找出字符串中第一个匹配项的下标151. 反转字符串中的单词6. Z 字形变换68. 文本左右对齐 125. 验证回文串 原题链接 125. 验证回文串 双指针,一前一后,遇到非数字字母跳过即可 class So…

passwd: Authentication token manipulation error

passwd: Authentication token manipulation error 身份验证令牌操作错误。 可能原因: 1、密码文件无修改权限(有i权限) lsattr /etc/{passwd,shadow} 取消方法 chattr -i /etc/passwd chattr -i /etc/passwd 2、/文件系统无空间或者无inod…

文件另存为保存:无法在未启用宏的工作簿中保存以下功能,

Wb.DoNotPromptForConvert true; Wb.Application.DisplayAlerts false;

【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件

文章目录 一、Cloth组件解释基本介绍出于性能的考虑, 可以对Cloth产生影响的Collider只有两种打开编辑模式绘制 二、基本使用1. 创建出一个空物体2. 在空物体上添加cloth组件,可以直接点击Add Component搜索cloth添加,也可以在工具栏 Component–>phy…

GOWIN软件使用

1、管脚复用 根据自己需求把复用管脚勾选上,管脚当普通管脚使用 JTAG设置成普通管脚,下载程序时候JTAGEN管脚需要上拉高电平(可以在下载器线上上拉个电阻,下载后把下载线拔走,否则JTAG管脚无法使用,管脚充…

2010练习题

5&#xff0c; //几个类&#xff08;Vehicle类 Car类 Streetwheel类 Brake类&#xff09;有着必然的联系&#xff0c;设计类与实现 #include<iostream> using namespace std; class Vechile{public:virtual void function() 0; }; class Streetwheel{public:Streetwhee…

基于ACM32 MCU的电动滑板车方案了,助力低碳出行

随着智能科技的快速发展&#xff0c;电动滑板车的驱动系统也得到了长足的发展。国内外的电动滑板车用电机驱动系统分为传统刷式电机和无刷电机两种类型。其中&#xff0c;传统的刷式电机已经逐渐被无刷电机所取代&#xff0c;无刷电机的性能和寿命都更出色&#xff0c;已成为电…

基于C++中netCDF库读取.nc数据时的一些坑

本文介绍基于C 语言的netCDF库读取.nc格式的栅格文件时&#xff0c;出现数据无法读取、数据读取错误、无法依据维度提取变量等情况的原因与解决方法。 最近&#xff0c;由于需要读取ERA5气象数据&#xff0c;因此使用C语言中的netCDF库读取.nc格式文件&#xff1b;这其中也是踩…

Win8.1 连接Wifi后开启热点

1 首先管理员运行 cmd, 输入命令&#xff0c;其中ssid无线名称&#xff0c;key密码&#xff0c;此时网络连接出现 本地连接 2. netsh wlan set hostednetwork modeallow ssidwahahaad key12345678 netsh wlan start hostednetwork 2 找到当前连接的 WLAN, 设置共享。 3 先停止…