基于Pyecharts的数据可视化开发(二)调用通义千问api分析爬虫数据

news2025/1/12 13:32:26

        上一篇博客做了关于“广州市2023年天气情况”的数据爬取,并保存为.csv文件。下一步是想用生成的.csv文件,直接调用大模型api进行分析,得出结论。通过调研,阿里云的通义千问大模型qwen-long可以实现对文件数据的分析。

        通义千问大模型提供了 API,可以将数据预处理后传入模型进行分析和总结,实现步骤如下:

  1. 预处理 .csv 文件:使用 pandas 读取 .csv 文件,并将其内容格式化为适合传递给通义千问的自然语言描述,例如表格的结构、数值的统计信息、特征分布等。
  2. 调用 API:使用阿里云的 SDK 或直接通过 HTTP 请求调用通义千问的 API,将处理后的数据传入并询问模型得出结论。
  3. 处理 API 返回结果:通义千问会返回一个文本格式的结果,可以进一步提取关键信息,或根据需要再做数据可视化。

调用通义千问api

api-key的获取和配置

开通DashScope

前往控制台:模型服务灵积-总览 (aliyun.com)

   

获取api-key

  1. 进入网页:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
  2. 选择管理中心 → api-key管理 → 创建新的api-key(因为我已经创建了,所以图标是暗的)

  3. 可以点击“查看” → “复制”

配置api-key

  1. 通过环境变量设置
  2. 直接在代码中输入

验证api-key在代码中是否可用

这一步还蛮关键的,测试一下所配置的api-key是否可用。

import os
from openai import OpenAI

try:
    client = OpenAI(
        # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
        api_key="your_api_key",
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    )

    completion = client.chat.completions.create(
        model="your_model_name",  # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
        messages=[
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': '你是谁?'}
            ]
    )
    print(completion.choices[0].message.content)
except Exception as e:
    print(f"错误信息:{e}")
    print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")

输出有3种情况:

  1. 我是通义千问,由阿里云开发的AI助手。我可以回答各种问题、提供信息和与用户进行对话。有什么我可以帮助你的吗?
  2. 我是Qwen,由阿里云研发的超大规模语言模型。我能够生成各种类型的文本,如文章、故事、诗歌、故事等,并能根据不同的场景和需求进行调整和优化。此外,我还具备代码写作能力,可以辅助编程工作,解决技术问题。如果你有任何需要,欢迎随时向我提问!
  3. 我是Qwen,由阿里云研发的超大规模语言模型。我被设计用于生成各种类型的文本,如文章、故事、诗歌等,并能根据不同的场景和需求进行对话、提供信息查询、创作内容等服务。很高兴为您服务!

        其他输出或者报错的话就是代码出问题了,总结了集中报错的方式:

  1. 我这里是采用直接输入api_key的方法,这种方法可能会导致分享的时候不小心泄露,可以导入环境变量中再引用,这会比较保险。
  2. 报“from openai import OpenAI”的错,说没有办法在openai库中引入OpenAI,这是openai版本过旧导致,需要更新一下:pip install --upgrade openai。
  3. 可能是model的名字没有写对,比如说我用的是qwen-long模型,最开始以为是model="qwen-long",查了一下模型列表才发现qwen-long对应的应该是"qwen-plus"。

模型选择

模型列表_大模型服务平台百炼(Model Studio)-阿里云帮助中心 (aliyun.com)

如果不知道任务与什么模型相匹配,可以去模型广场查阅:阿里云百炼 (aliyun.com)

        根据任务需求,选择供应商、模型类型和上下文长度,我这里是需要分析.csv文件或者.xlsx文件,所以选择了“通义”、“文本生成”、“64k以上”的“Qwen-Long”模型。已经知道要用哪个模型的话,可以在搜索栏里直接搜索。

        点击“查看详情”可以查看模型介绍和API示例。

模型介绍

        Qwen-Long是在通义千问针对超长上下文处理场景的大语言模型,支持中文、英文等不同语言输入,支持最长1000万tokens(约1500万字或1.5万页文档)的超长上下文对话。配合同步上线的文档服务,可支持word、pdf、markdown、epub、mobi等多种文档格式的解析和对话。 说明:通过HTTP直接提交请求,支持1M tokens长度,超过此长度建议通过文件方式提交。

模型计费详情

写入代码

在试错过程中,为了方便操作,把爬取来的.csv文件转换为.xlsx

import pandas as pd

# 读取CSV文件
csv_file_path = 'your_csv_file_path'  #
df = pd.read_csv(csv_file_path)

# 将DataFrame保存为Excel文件
excel_file_path = 'your_xlsx_file_name'  # 指定输出的Excel文件名
df.to_excel(excel_file_path, index=False)  # index=False表示不保存行索引

print(f"文件已成功转换并保存为: {excel_file_path}")

调用通义千问的API进行分析

import pandas as pd
import requests
import json

# 读取 Excel 文件
file_path = 'your_xlsx_file_path'
df = pd.read_excel(file_path)

# 将 DataFrame 转换为 JSON 格式
data_dict = df.to_dict(orient='records')

# Qwen-long API 的配置
api_key = 'your_api_key'  # 替换为你的 API 密钥
api_url = 'your_api_url'  # 替换为你的 API 端点

# 构建请求体
payload = {
    "model": "qwen-long",  # 这里替换为你想要使用的模型ID
    "messages": [
        {"role": "user", "content": str(record)} for record in data_dict  # 假设每条记录都是用户输入
    ]
}

# 设置请求头
headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_key}'
}

try:
    # 发送 POST 请求
    response = requests.post(api_url, json=payload, headers=headers)
    response.raise_for_status()  # 如果响应状态不是 200 类型,抛出异常
except requests.exceptions.RequestException as e:
    print(f"请求过程中发生错误: {e}")
    if response.status_code == 400 and hasattr(response, 'text'):
        print("详细错误信息:")
        print(response.text)  # 打印详细的错误信息
    exit(1)

# 检查响应并提取 content 字段
result = response.json()
if result and 'choices' in result and len(result['choices']) > 0:
    message_content = result['choices'][0]['message']['content']
else:
    message_content = "没有找到有效的响应内容。"

output_file = 'your_save_path'
with open(output_file, 'w', encoding='utf-8') as file:
    file.write(message_content)

print(f'结果已保存到 {output_file}')

报错及其解决方式:

  1. 请求过程中发生错误: 400 Client Error: Bad Request for url:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions  详细错误信息:{"error":{"code":"invalid_parameter_error","param":null,"message":"Single round file-content exceeds token limit, please use fileid to supply lengthy input.","type":"invalid_request_error"},"id":"chatcmpl-2276f596-e854-9cc9-8201-e0c31e0f1b27"}
  2. api_url输入错误

解决方式:

  1. 内容的长度超过了允许的token限制,对于这个报错,我是在如数的.xlsx文件做了删减。
  2. api_url我没有找到具体的查询方式,所以我是通过:阿里云控制台首页 (aliyun.com),有一个阿里云AI助理,在里面对他进行提问即可,比如说我用的是qwen-long模型,那么我提问的是:“Qwen-Long模型的API端点地址是什么”,得出答案后写入代码中

结果呈现

.xlsx文件:

调用API-key生成的语句,保存到.txt文件:

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

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

相关文章

【C++】入门C++

1.C的第一个程序 之前写的C语言文件都是后缀为.c的文件,进入C后就要把后缀改为.c了,vs编译器看到是.cpp就会调⽤C编译器编译。C兼容C语言的绝大多数语法,所以C语言的 hallo word 依旧可以在C下使用。 //test.cpp //c语言的hallo world #inc…

快速上手机器学习-朴素贝叶斯

朴素贝叶斯 引言:本文通过介绍先验概率,后验概率,条件概率计算和贝叶斯定理等概率论内容引入朴素贝叶斯分类算法的基本思路,朴素贝叶斯的最终分类思想是将输入分类给概率最大的类,这也是概率模型算法的共有思想。本文专…

【测试平台】打包 子节点android环境配置

背景 本文记录不是安卓Gradle打包,因为我们google play提审,为了规避跟下架包的相似度避免马甲包封号,使用混淆逻辑。 打包环境部署 申请对应虚拟机会有两个账号root和admin,主要避免root账号权限过高造成脚本误操作。这里面问题…

模型融合新趋势!Transformer领域专家纷纷布局,高分成果轻松达成!

今天给大家分享一个能发A会且不卷的方向:模型融合! 光是ICLR2025的投稿,其增长就跃升至前30,可见热度很高!但相比其他领域,总量还不大,相对蓝海,创新空间很大。 其所以这么热门&am…

1.机器人抓取与操作介绍-深蓝学院

介绍 操作任务 操作 • Insertion • Pushing and sliding • 其它操作任务 抓取 • 两指(平行夹爪)抓取 • 灵巧手抓取 7轴 Franka 对应人的手臂 6轴 UR构型去掉一个自由度 课程大纲 Robotic Manipulation 操作 • Robotic manipulation refers…

spark豆瓣书籍推荐系统-计算机毕业设计源码53447

摘要 本论文主要论述了如何基于Spark开发一个豆瓣书籍推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述豆瓣书籍推荐系统的当前背景以及系统开发的目的,后续章节将严…

macOS开发环境配置与应用开发教程

macOS开发环境配置与应用开发教程 引言 macOS是一个强大的操作系统,广泛应用于软件开发,尤其是iOS和macOS应用开发。本文将详细介绍如何配置macOS开发环境,并通过实例演示如何进行应用开发。希望通过这篇文章,帮助读者快速上手m…

Unity吃鸡背包系统笔记

功能需求 查看玩家拥有的所有物品,可以放下其中的任意物品;查看已死的他人背包的物品,可以拿起其中的任意物品;查看附近的物品,可以拿起其中的任意物品(暂时不考虑背包容量); 难点 …

《Linux系统编程篇》fork函数——基础篇

文章目录 引言fork() 函数概述父子进程 fork函数fork() 的常见问题fork() 的优势与限制 结论 命为志存。 —— 朱熹 引言 《Linux系统编程篇》——基础篇首页传送门 本节我们正式进入Linux的进程代码编写。 fork() 是 Unix 系统中一个重要的系统调用,用于创建一个…

MySQL 8 下载与安装攻略

MySQL是一个流行的关系型数据库管理系统,目前MySQL属于Oracle公司的,关于MySQL的详细介绍可以参考: MySQL 的完整介绍 本篇主要关注MySQL 的下载和安装。 MySQL 下载 官方下载 进入MySQL 的下载页面 :https://dev.mysql.com/do…

HarmonyOS 鸿蒙开发 路由跳转报错this uri is empty, not support in route push.

检查方案1: 工程目录下 entry > src > main > resources > base > profile > main_pages.json中检查是否配置了NextPage 检查方案2: 在路由跳转的代码中检查是否路径配置错误 这里要注意,url的路径一定要和main_pages.json…

芯片上音频相关的验证

通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场…

【VSCode】配置

安装插件 C vscode-icons gdb调试 https://www.bilibili.com/video/BV15U4y1x7b2/?spm_id_from333.999.0.0&vd_sourcedf0ce73d9b9b61e6d4771898f1441f7f https://www.bilibili.com/video/BV1pU4y1W74Z?spm_id_from333.788.recommend_more_video.-1&vd_sourcedf0…

springboot使用枚举作为接口的参数

1.定义枚举类 2.定义接口 3.具体实现方法 4.apifox传入参数 枚举的具体’名称’就可以了 5.调试 6.进入断点,这样我们发现在接口的参数就映射到应的枚举类上了

数据结构(8.4_3)——堆的插入删除

在堆中插入新元素 在堆中删除元素 总结:

《计算机网络网络层:连接虚拟世界的关键桥梁》

一、网络层概述 网络层在计算机网络中占据着至关重要的地位,它作为连接不同网络的关键层次,起着承上启下的作用。网络层的主要任务是实现网络互连,将数据设法从源端经过若干个中间节点传送到目的端,为分组交换网上的不同主机提供通…

【linux】fdisk磁盘分区管理

介绍 fdisk是一个磁盘分区管理工具,可以用来创建、删除、修改和查看磁盘分区。 fdisk一般都是交互式使用,基础语法: fdisk /dev/sdd。进入交互窗口后,有一些选项,需要了解下: 选项含义n创建新分区p查看磁盘的分区情…

项目成本管理系统有哪些功能?9款工具详解

本文推荐的9大主流项目成本管理工具有: 1. PingCode;2. Worktile;3. 用友U8项目管理;4. 金蝶K3 Cloud;5. 泛微e-Project;6. 亿方云项目管理; 7. SAP Project System; 8. Trello; 9. …

基于opencv的眼镜试戴系统

对于正在准备毕业设计或者想在技术项目上加点“创新”的同学们,推荐一款基于OpenCV的眼镜试戴系统!这不仅是一个实现个人创意的项目,更是一个结合AI技术和实用应用的完美范例。 🌟 系统核心功能: 图片试戴&#xff1a…

解决cuda环境使用dgl

Dgl 是实现图结构数据构造的工具包,想在gpu环境下使用它,如果安装的是pip install dgl 会有下面错误 dgl._ffi.base.DGLError: [09:10:13] /opt/dgl/src/runtime/c_runtime_api.cc:82: Check failed: allow_missing: Device API cuda is not enabled. P…