You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用GPT-4批量翻译TXT文件?OpenAI SDK 1.0+报错求助

解决OpenAI SDK 1.0+版本的文本翻译脚本兼容问题

错误原因

OpenAI SDK 1.0.0及以上版本重构了API调用逻辑,废弃了旧版直接通过openai.ChatCompletion调用的模式,改为基于Client类的实例化调用,同时响应内容的访问方式也有调整。

修复步骤

  1. 升级OpenAI包(确保使用最新兼容版本)
pip install --upgrade openai
  1. 适配新版SDK的脚本代码
    以下是完整的修复后脚本:
import os
from openai import Client

# 初始化OpenAI客户端(推荐通过环境变量OPENAI_API_KEY设置密钥,也可直接传入api_key参数)
client = Client(
    # api_key="your-api-key-here"  # 未设置环境变量时可取消注释并填入密钥
)

folder_path = "你的源文件夹路径"
folder_translated_path = "你的目标文件夹路径"

# 确保目标文件夹存在,避免写入失败
os.makedirs(folder_translated_path, exist_ok=True)

for file_name in os.listdir(folder_path):
    if file_name.endswith('.txt'): 
        file_path = os.path.join(folder_path, file_name)
        
        try:
            with open(file_path, 'r', encoding='utf-8') as file:
                text = file.read() 
                
                # 调用新版OpenAI聊天完成API
                response = client.chat.completions.create(
                    model="gpt-4",
                    messages=[
                        {"role": "system", "content": "你是专业翻译人员,需将英文文本准确翻译为西班牙语。"},
                        {"role": "user", "content": f"Translate this English text to Spanish: '{text}'"}
                    ]
                ) 

                # 新版API通过属性访问响应内容
                translated_text = response.choices[0].message.content.strip()

                translated_file_path = os.path.join(folder_translated_path, file_name)
                
                with open(translated_file_path, 'w', encoding='utf-8') as translated_file:
                    translated_file.write(translated_text)
                    
                print(f"翻译完成:{file_name}")
        except Exception as e:
            print(f"处理文件{file_name}出错:{str(e)}")

核心修改点

  • 导入openai.Client并实例化客户端对象,替代旧版直接调用模块属性的方式
  • 将openai.ChatCompletion.create替换为client.chat.completions.create,符合新版API命名规范
  • 响应内容从字典索引response['choices'][0]['message']['content']改为属性访问response.choices[0].message.content
  • 添加encoding='utf-8'指定文件编码,避免特殊字符乱码
  • 增加异常捕获逻辑,便于排查文件读写或API调用问题
  • 自动创建目标文件夹,避免路径不存在导致的写入失败

内容的提问来源于stack exchange,提问作者eera5607

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 10:02:48