【python】调用openAI api接口批量处理excel中的文本

news2024/9/19 19:47:56

调用openAI api接口批量处理文本


主页:github;

BLOG:BLOG;

教程:视频

1. project简介

(1)概况

用于在python中调用open AI的API,处理xlsx表格中的自然语言文本。一个专门做dirty work的好帮手

(2)主要功能

我们把自然语言放到excel的某一列,比如是一段文本
我们可以在promot中说‘请帮我提炼关键词’,‘请帮我总结’,‘请帮我翻译’,‘请判断是积极还是消极’,‘请帮我做相应的处理’
AI会根据我们输入的文本,给出相应的处理结果,并输出到excel的某一列

(为了提高运行速度,我将每个xlsx拆成了10个,同时运行。)

(3)应用场景

  1. 文本分析:对文本进行分析,提取关键词,判断情感倾向等
  2. 文本处理:对文本进行清洗,去除无用信息,提取关键信息等
  3. 文本翻译:将文本翻译成另一种语言
  4. 文本分类:对文本进行分类,比如新闻、评论、微博等
  5. 文本生成:根据输入文本,生成相应的文本
  6. 文本推荐:根据用户的兴趣,推荐相关的文本
  7. 文本摘要:对文本进行摘要,生成简短的文本
  8. 文本风格迁移:将文本风格迁移到另一种风格
  9. 文献综述撰写:根据文献,生成综述



2.本地部署教程

(1)将项目下载到本地

在这里插入图片描述

或者在cmd中可直接clone

d:
git clone https://github.com/mengke25/proj_textOpenAI.git

比如在这里,我直接将项目整体放在了D盘中

在这里插入图片描述



(2)安装依赖

在cmd中安装需用到的packages

# 首先,将路径切换到根目录下
d: 
cd d:\proj_textOpenAI-main


# 选择1:使用python安装,requirements.txt中的包
python -m pip install -r requirements.txt


# 选择2:如果是conda用户,安装requirements.txt中的包方式如下(附虚拟环境)
conda create -n env2 python=3.11    # 创建anaconda环境
conda activate env2                 # 激活anaconda环境
python -m pip install -r requirements.txt

下面我们就要进入正题了!

但在运行之前,还需要找到两个核心文件:

用编译器打开该项目的文件夹,此处我用vscode来演示

在这里插入图片描述

打开文件夹后,请找到config路径下的json文件,以及script路径下的main.py

这两个文件是本项目的核心文件

其中config.json中定义了宏变量,main.py则是主脚本

在这里插入图片描述

至此,本地部署已完成。下面我来介绍该如何使用。



3. 使用方法

使用方法非常简单,分两步——修改宏变量+运行主脚本

(1)step1:改宏变量

第一步,修改config路径下的json配置文件,prompt改成自己的需求,其中:

  • root_path: 项目路径,即本地路径,例如打包下载到D盘,那项目路径就应该是D:\\proj_textOpenAI-main,注意这里是双斜杠
  • chatfile:待处理文件,也即要读取的文件
  • apikey:是openai的api key,需要自己申请,也可以第三方(如柏拉图),或者直接某宝去购买
  • apiurl:是openai的api url,若使用openai个人申请的API,空着即可
  • model_name:是AI模型的名称,支持 "gpt-3.5-turbo"等
  • input_col:是输入文本所在的列,也即想输入给AI的列
  • output_col:是输出结果所在的列,也即想让AI输出在excel的哪一列
  • python_env:所使用的python环境,一般情况下应该是"base"
  • script_parallelism:是脚本并行度,即运行几个脚本,一般设置为10,最多不超过30
  • prompt_template:是AI的提示模板,可以自己修改
  • system_message:是系统提示语,可以自己修改

一个示例:

{
    "global": {
        "root_path": "D:\\proj_textOpenAI-main",
        "chatfile": "D:\\proj_textOpenAI-main\\orig_file\\targetfile.xlsx", 
        "apikey": "sk-aUF5e29*****************8f6SeLz",
        "apiurl": "https://api.gptsapi.net/v1",
        "model_name": "gpt-3.5-turbo",
        "input_col": 4,
        "output_col": 10,
        "python_env": "env2", 
        "script_parallelism": 20, 
        "prompt_template": "请根据我输入给你的文本,帮我判断一下这段文本是否属于abc。",
        "system_message": "你是一个帮助判断是否未规制的助手"
    }
}





(2)step2:运行

第二步,修改好配置文件后,运行main.py

在这里插入图片描述

等运行完,去output文件夹将'****_AIextract.xlsx'找出来,即可。再生成最终文件的同时,还会生成若干个子文件,用于备份。如果不需要的话,可以直接删掉。

在这里插入图片描述



(3)补充

对于pycharm用户,可能会遇到找不到相对路径的问题,

此时需要您去配置run config

具体步骤如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此,整个项目就已经部署好且已经完成运行。




欢迎star,打赏渠道

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

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

相关文章

Linux系统-系统信息网络目录文件的相关命令

1.系统信息和性能查看 查看磁盘的占用情况: df -Th 这是参数连着写。相当于df -T -h df -Th 此命令主要用于监控服务器的磁盘空间,如果空间不够用了,会导致服务器和应用的性能严重下降。这时候要手动清理一些不用的垃圾文件,比…

el-image-pro点击文本也能预览图片,支持下载

背景 element-ui:2.15.14 el-image的预览是没有下载功能的,默认是这样的 且默认是通过点击图片才能预览的,有时候我们显示的是图片名称,那么能不能直接点击图片名称来预览呢? 现在想在预览的时候,给它加一…

探秘陆生生态秘境:eDNA视角下的多营养级物种世界

现今的生物多样性和气候危机迫使我们开发更有效的陆地生态系统监测工具,eDNA宏条形码技术(eDNA metabarcoding),能够非侵入性地调查许多生态系统的物种丰富度,不会对生态环境造成干扰。通过分析这些信息,我…

树莓派开发笔记06-树莓派的SPI控制(点亮0.96OLED)

实验说明 我们这里会使用SPI去驱动一个0.96的OLED,首先需要打开SPI sudo raspi-config Interfacing Options------>SPI------>Yes------->OK------->finsh然后将屏幕接到树莓派上,接mosi和sclk的脚,DC接28,RST接29&…

C语言 ——— 学习并使用malloc和free函数

目录 malloc函数的功能 学习malloc函数​编辑 使用malloc函数 free函数的功能 学习并使用free函数​编辑 malloc动态开辟10个整型空间后赋值为0-9,再打印,打印后free malloc函数的功能 malloc函数能向内存申请一块连续可用的空间,并返…

模拟信号-放大器

放大器 放大器的输出信号是直流源和信号源经过放大器后,共同的作用,缺一不可。 直流参数 与放大器中电压源部分有关的参数,即放大器的直流参数。 采用直流电压源供电,电源电压是恒定的,但是电压源的输出电流是变化…

什么是OV SSL证书?如何申请

什么是OVSSL证书 OVSSL证书,全称是Organization Validation SSL Certificate,即组织验证型SSL证书。这是一种高级的SSL证书类型,用于保护网站和应用程序的安全性,特别是在电子商务和企业级网站中广泛应用。OVSSL证书不仅加密网站…

Linux:进程替换

什么是进程替换? 我们的可执行程序,在运行起来的时候就上一个进程 一个进程就会有他的内核数据结构代码和数据 把一个已经成型的进程的代码和数据替换掉,这就叫进程替换 也就是可以通过系统调用把当前进程替换位我们需要的进程 那么替换…

正点原子linux开发板 qt程序交叉编译执行

1.开发板光盘 A-基础资料->5、开发工具->1、交叉编译器->fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 拷贝到 Ubuntu 虚拟机 用文件传输系统或者共享文件夹传输到linux虚拟机 用ls -l查看权限,如果是白色的使…

【银河麒麟高级服务器操作系统】实际案例分析,xfsaild占用过高

了解银河麒麟操作系统更多全新产品,请点击访问麒麟软件产品专区:https://product.kylinos.cn 服务器环境及配置 物理机/虚拟机 物理机 处理器: Intel(R) Xeon(R) Silver 4110 CPU 2.10GHz 内存: 65536 MiB (64 GiB) 主板…

HTML5简洁的通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 模板页面11.3 模板页面21.4 模板页面31.5 模板页面41.6 模板页面5 2.效果和源码2.1 动态效果2.2 源码目录2.3 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/1413235…

【AD24报错】GND contains IO Pin and Power Pin objects 的解决方案

【AD24报错】GND contains IO Pin and Power Pin objects 的解决方案 在原理图设计过程中,在元器件接线引脚位置出现红色波浪线,显示错误GND contains IO Pin and Power Pin objects。 点击错误信息可以直接跳转到相关位置。 经查明,是在元…

【FPGA数字信号处理】- 数字信号处理如何入门?

​数字信号处理(Digital Signal Processing,简称DSP)是一种利用计算机或专用数字硬件对信号进行处理的技术,在通信、音频、视频、雷达等领域发挥着越来越重要的作用,也是FPGA主要应用领域之一。 本文将详细介绍数字信…

高德地图数据采集器|高德地图数据采集软件_一键导出表格

南斗地图数据采集是一款专业采集百度地图、360地图、高德地图、腾讯地图、必应、google、公司、店铺的手机、座机、地址、坐标等数据信息的软件,它与同类软件相比最显著特点是采集地图更专业、采集速度更快、采集更精准、操作方法更简单。 可以导出地图搜索结果数据…

运维学习————Linux环境下Tomcat的部署

目录 一、环境准备 二、 启动测试 三、访问端口修改 四、部署web项目 1、材料准备 2、部署 2.1、上传war包到webapps目录下 2.2、修改项目配置 2.3、浏览器访问 引申 一、环境准备 tomcat安装包:apache-tomcat-9.0.52 JDK环境: 我使用的y…

【TCP】连接管理:三次握手和四次挥手

连接管理 建立连接:三次握手断开连接:四次挥手 网络中的握手/挥手,就是发送不携带业务数据(没有载荷,只有报头)的数据包,但是能起到“打招呼”这样的效果。次数就是指网络通信的次数。 建立连…

【数学分析笔记】第2章第2节数列极限(3)

2. 数列极限 2.2 数列极限 2.2.5 数列极限的性质 保序性&#xff1a;【定理2.2.3】 { x n } , { y n } , lim ⁡ n → ∞ x n a , lim ⁡ n → ∞ y n b , a < b \{x_{n}\},\{y_{n}\},\lim\limits_{n\to\infty}x_{n}a,\lim\limits_{n\to\infty}y_{n}b,a<b {xn​},{yn…

Android强大的滚动控件RecyclerView

文章目录 Android强大的滚动控件RecyclerViewRecyclerView的基本用法RecyclerView实现横向滚动RecyclerView实现瀑布流布局RecyclerView**的点击事件 Android强大的滚动控件RecyclerView ListView由于其强大的功能&#xff0c;在过去的Android开发当中可以说是贡献卓越&#x…

C语言 | Leetcode C语言题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; int cmp(const void* _a, const void* _b) {int *a _a, *b (int*)_b;return *a *b ? 0 : *a > *b ? 1 : -1; }int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size,int* returnSize) {qsort(nums1, nums1Size, s…

你还在手动刷公众号吗?‌试试 RSS 订阅,‌让信息自动汇聚

微信对于反爬的限制非常严格&#xff0c;之前有很多的方案&#xff0c;最后都是被封杀了。我这里列出一些我知道的、实践过的方案。 ‍ RSSHub 在路由“社交媒体”以及路由“新媒体”上都有很多方案&#xff0c;我基本都试过&#xff0c;但这些平台要么是收费的&#xff0c;…