使用API_KEY向chatGPT(gpt-3.5)批量提问

需要科学

#-*- coding:utf-8 -*-

import time
import re
import os
import openai
import pandas as pd
import xlsxwriter

openai.api_key = "你的API_KEY"

def ask_gpt(prompt):
    '''
        参数:
            prompt : 问题
    
        returns :
            answer :回答
    '''
    completion = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": prompt}
    ]
    )
    answer = completion.choices[0].message.content
    return answer

def main_word():

    # 数据文件地址
    data_file_name = '文件名'

    # 读取数据文件
    data_df = pd.read_excel(data_file_name)
    
    # 定义个空列表 用来储存每行的数据
    answer_list = []

    # 使用 iterrows() 遍历数据文件中每一行 获取词语
    for index, row in data_df[:].iterrows():
        # 生成开始时间
        start_time = time.time()

        # 获取你的问题
        question = row['问题'] 

        # 清空每个单词的句子列表 然后储存这一行新的内容
        sentence_list = []

        # 死循环获取输出 防止报错
        while(True):
            try:
                answer = ask_gpt(question)
                # 成功获取回答 

                # 可以对answer进行后续处理
                # pass

                sentence_list.append(answer)
                break; # 退出循环
            except Exception as e:
                # 如果有错误 等10秒钟后继续发起请求
                print(e)
                time.sleep(10)
                continue

        end_time = time.time()

        # 计算句子生成时间
        run_time = end_time-start_time
        print(answer)
        print(r'消耗时间:{}s'.format(run_time))

        
        answer_list.append(sentence_list)

        # 转换为 DataFrame
        df = pd.DataFrame(answer_list)

        # 保存到 Excel 文件
        df.to_excel('文件名', engine='xlsxwriter', index=False, encoding='utf-8')



if __name__ == '__main__':


    main_word()
    print("结束")
    
 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值