需要科学
#-*- 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("结束")