OpenAI API兼容问题:调用openai.Completion报错求助(GPT-4翻译场景)
问题:使用OpenAI API翻译CSV文本时出现APIRemovedInV1错误
想要用GPT-4将Excel文件中的土耳其语文本翻译成英文,但调用API时触发APIRemovedInV1错误,即使更新OpenAI包版本也无法解决。
错误原因
当前代码使用的是旧版openai.Completion.create接口,而OpenAI Python包1.0.0及以上版本已彻底移除该接口,改用全新的聊天模型请求格式。
解决方案
方案1:升级代码适配OpenAI v1.0+版本(推荐,支持GPT-4)
替换旧的补全接口为新的聊天完成接口,调整参数格式以适配新版本API:
import openai import pandas as pd import os from tqdm import tqdm # 初始化OpenAI客户端(v1.0+版本要求) client = openai.OpenAI(api_key=os.getenv("API")) def translate_text(text): response = client.chat.completions.create( model="gpt-4", # 使用GPT-4模型 messages=[ {"role": "system", "content": "你是专业翻译人员,需将土耳其语准确翻译成地道英语。"}, {"role": "user", "content": f"Translate the following Turkish text to English: '{text}'"} ], max_tokens=100 # 根据实际文本长度调整token上限 ) return response.choices[0].message.content.strip() # 读取目标Excel文件 df = pd.read_excel('/content/3500-turkish-dataset-column-name.xlsx') column_to_translate = 'review' # 创建翻译结果列 df[f"{column_to_translate}_en"] = "" # 逐行翻译并保存结果 for index, row in tqdm(df.iterrows(), total=df.shape[0]): translated_text = translate_text(row[column_to_translate]) df.at[index, f"{column_to_translate}_en"] = translated_text # 导出翻译后的CSV文件 df.to_csv('path/to/your/translated_csvfile.csv', index=False)
方案2:降级到OpenAI旧版本(不推荐,无法使用GPT-4新特性)
如果不想修改代码,可安装旧版OpenAI包,继续使用原有接口:
pip install openai==0.28
注意:此方案仅支持text-davinci-003等旧模型,无法调用GPT-4。
内容的提问来源于stack exchange,提问作者Kaan Tiftikci
相关产品推荐
相关产品推荐

