AI测试 使用 Cursor 生成 AI 工具函数或脚本 - 实现 Excel 数据批量分析

Fun_Fox · 2024年09月13日 · 最后由 Fun_Fox 回复于 2024年09月14日 · 4957 次阅读

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

需求

  • 表格如下

  • 需求如下,输出软件名称的【付费状态】和【价格估算】

已有可实现的方案分析

Copilot for Excel

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

Copilot for Microsoft 365 – Microsoft Adoption

Copilot Success Kit – Microsoft Adoption

WPS AI

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

直接询问 Cursor

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

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

【HumanMessage】-2<复制数据上传>

最终结果

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

  • 【HumanMessage】-1 设计一个 Excel 自定义函数,完成你在做的事情

  • 【HumanMessage】-2 设个函数调用 LLM 大语言模型 API 进行实现

  • 【HumanMessage】-3 转为阿里云灵积 API

阿里 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}")

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册