• 作者:老汪软件技巧
  • 发表时间:2024-09-14 17:03
  • 浏览量:

最近工作中遇到了一需求,主要是一个表格有 2000 多行数据,这些数据都属于同一个任务,将这些数据以同一个 AI 函数进行分析。

需求

已有可实现的方案分析Copilot for Excel

微软的 Copilt 我只能 2 个词形容就是 强大、烧钱

Copilot for Microsoft 365 – Microsoft Adoption

WPS AI

wps 也有一个 AI 功能,这个简单看了一下功能还不是太多

直接询问 Cursor

但由于长文本 2000 多行数据,token 原因,不能一次性输出,需要分段输出。所以需要比较麻烦多次复制输出后粘贴

【HumanMessage】-1 我提供一些数据,麻烦帮忙标注哪些是付费的,哪些是免费的,如果是付费帮我评估大致多少费用,以 CSV 格式进行输出

【HumanMessage】-2

最终结果

函数设计 -(使用 Cursor 进行设计)

_批量脚本怎么写_批量运行脚本

阿里 DashScope 灵积 API 调用

代码 Review 及测试

使用 WPS 云文档 PY 脚本编辑器

office 由于本人本地电脑没有装,所以想了一个替代方案,用 WPS 云文档的 PY 脚本编辑

调整代码设置【读取数据源】及【回写数据源】

不同大语言模型的执行结果对比

在对同一个软件查询付费情况和价格估计,整体看下准确度及信息完整性:claude-3.5 与 qwen-max 貌似在于博众之间,各有千秋。qwen-turbo 完败

最终 WPS 云文档 - 完整 PY 脚本

import pandas as pd
import requests
import json
def 软件信息(软件名称):
    # 设置API密钥和端点
    api_key = "替换成自己的API_Key"
    api_endpoint = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"
    # 构建API请求
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    prompt = f"""
    请为以下软件提供付费状态和估计价格范围信息:
    软件名称: {软件名称}
    请直接回复,格式如下:
    免费/付费,基础版免费/专业版约100-300/年
    请保持回复简洁,不要有其他额外信息。
    如果不确定,请只回复"未知-需要进一步调查"
    如果软件是完全免费的,请只回复"免费"。
    """
    data = {
        "model": "qwen-max",
        "input": {
            "messages": [
                {
                    "role": "system",
                    "content": "你是一个专业的软件信息助手。"
                },
                {
                    "role": "user",
                    "content": prompt
                }
            ]
        },
        "parameters": {}
    }
    try:
        response = requests.post(api_endpoint, headers=headers, json=data)
        response.raise_for_status()
        result = response.json()['output']['text'].strip()
        return result
    except Exception as e:
        return f"错误: {str(e)}"
# 读取数据
df = xl("$B:$B", headers=True)
# 创建一个新的列来存储软件信息
df['软件信息'] = ''
# 逐行执行函数并写入结果
for index, row in df.iterrows():
    软件名 = row['软件名称']
    信息 = 软件信息(软件名)
    df.at[index, '软件信息'] = 信息
    # 逐行写入结果
    write_xl(信息, f"$D{index+2}")

联系我

Bilibili学习站

Fun_Fox投稿视频-Fun_Fox视频分享-哔哩哔哩视频

个人博客