使用 Python + GPT3.5 模型写一个翻译脚本,嘎嘎好用

本文介绍了一款基于Python和GPT3.5模型开发的翻译脚本,为用户提供了高效、准确、便捷的翻译功能。

用 Apifox,节省研发团队的每一分钟

使用 Python + GPT3.5 模型写一个翻译脚本,嘎嘎好用

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

该脚本利用了 gpt-3.5-turbo 的强大语言生成能力,能够理解输入的源语言文本,并生成高质量的目标语言翻译。

该脚本可以应用于各种翻译情景,无论是文档翻译、商务会议、国际交流、学术研究还是个人日常交流,都可以借助这个脚本轻松地进行翻译工作。你只需输入待翻译的文本,脚本将迅速生成准确、流畅的目标语言翻译。

该脚本针对长文本会进行分割,翻译的文本可以是 .mdtxtpdf等文件,具体细节详情见下文。

环境配置

脚本是用 Python 来写的,所以在运行脚本之前,你需要安装相关的 Python 环境OpenAI 库(可点击进去把相关依赖装好),当然,你还需要准备一个 API_KEY,不然最后无法调用 OpenAI 的接口。MacOS 系统自带 Python 环境,安装好 OpenAI 库 后可尝试运行脚本。

脚本

你可以在 IED 编辑器(比如:VScode) 中新建一个以 .py 为后缀命名的文件,将代码拷贝进去。然后在同级目录下新建一个 hello.md文件,文件内容随便写点通顺的英文语句进去即可。

Python ChatGPT 翻译文本
新建 hello.md文件

翻译脚本如下:

import openai
import os

# 读取环境变量中的 api_key
openai.api_key = os.environ.get("OPENAI_API_KEY")
# 也可直接写 api_key
# openai.api_key = 'API_KEY'

# 源文件
source_file = "hello.md"

# 当前脚本所在的目录路径
script_dir = os.path.dirname(os.path.abspath(__file__))
print("当前脚本所在的目录路径:" + script_dir)

def get_markdown_file(source_file): 
    source_path = os.path.join(script_dir, source_file)
    print("源文件路径:" + source_path)
    
    # 读取源文件内容
    with open(source_path, 'r', encoding='utf-8') as file:
        content = file.read()
        # print(content)
        return content

zh_text = get_markdown_file(source_file)

# 调用翻译API将内容从英文翻译成中文
def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": f"""将英文文本翻译成中文,相关的专有名词不做翻译:{prompt}"""}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=.1,  # 值越低则输出文本随机性越低
    )
    return response.choices[0].message["content"]

# 分割翻译的文本
segments = zh_text.split("\n\n")
segments = [zh_text[i:i+ 2000] for i in range(0, len(zh_text), 2000)]
translated_segments = []

print("分割完成,开始翻译")
# 逐段进行翻译
for i, segment in enumerate(segments):
    prompt = f"```{segment}```"
    response = get_completion(prompt)
    translated_segments.append(response)

    # 在控制台实时显示翻译进度
    print(f"Translated segment {i+1} of {len(segments)}. Remaining segments: {len(segments)-(i+1)}")

# 组合翻译后的文本
translated_content = "\n\n".join(translated_segments)

# 目标文件
target_file = "hello-zh.md"

# 获取目录路径
target_dir = os.path.join(script_dir, os.path.dirname(target_file))
print("获取目录路径: " + target_dir)

# 创建目标目录(如果不存在)
os.makedirs(target_dir, exist_ok=True)

target_path = os.path.join(script_dir, target_file)
print("写入目标路径:" + target_path)

# 将翻译结果写入目标文件
with open(target_path, 'w', encoding='utf-8') as file:
    file.write(translated_content)

print('翻译完成!')

运行

点击编辑器右上角的三角符号,即可运行。控制台会显示翻译过程,翻译完成后会在同级目录新建一个.md文件,详情如下图:

Python ChatGPT 翻译脚本
运行

脚本解释

脚本当中有相关注释参考,其中,主要有以下 3 点要注意:

1、API_KEY

api_key 你可以从 环境变量 中读取(如果你配置有的话),也可直接写在脚本中。

OpenAI 的 api_key
API_KEY

2、源文件(source_file)、目标文件(target_file)

注:不管是源文件还是目标文件,都需带完整文件名后缀,如.md

源文件就是你要翻译的文件,它可以是与脚本同级的一个文件,也可以是与脚本同级的目录下的一个文件(如果是某个目录下,路径开头无需带/),详情见下图:

python ChatGPT 翻译源文件
源文件

目标文件是翻译成功的文件,你可以将其写入同级的.md文件下,也可以写入与脚本同级的某个目录下的一个文件(如果是某个目录下,路径开头无需带/)。只需要提供相关路径即可,详情见下图:

Python ChatGPT 目标文件
源文件

3、Prompt 提示

针对不同的文档类型,你需要更改不同的 Prompt 提示,比如:

我要将 Stylus 英文文档翻译成中文,Prompt 可写为:

将代码语言 Stylus 的英文文本翻译成中文,相关的专有名词不做翻译
ChatGPT 的 Prompt 提示
Prompt 提示

FAQ

  • FileNotFoundError: [Errno 2] No such file or directory.

如果出现这个错,你需要检查你的源文件和目标文件路径是否正确。

  • openai.error.Timeout: Request timed out: HTTPSConnectionPool(host='``api.openai.com``', port=443)

连接超时表示需要科学上网。

  • openai.error.AuthenticationError: No API key provided.

提示 api_key 获取不到或无法使用,你可能需要检查你的 api_key 是否能使用;或者如果你将 api_key 添加 到了系统的环境变量中,你可能需要重启编辑器或者系统,否则无法读取新增的变量。

OpenAI 在线调试工具

OpenAI API 的在线调试地址为:https://openai.apifox.cn/ ,点击即可访问。

项目中包含了 OpenAI 官方提供的所有 API,你可以根据需要进行操作,比如你可以通过 OpenAI 的接口来生成图像、上传音视频文件并转文本、翻译、创建聊天机器人、创建微调等。项目中有些目录下会有相关的 MarkDown 文件,里面会简要介绍某个功能模块怎么使用。

OpenAI 在线调试工具
OpenAI API
注:在使用该项目之前,请查看 “项目说明”

其它扩展

如果你想要学习更多 AI 相关的知识,欢迎访问如下扩展:

OpenAI 中文学习文档:OpenAI 中文文档

ChatGPT 提示词指南:Prompt 学习指南

面向开发者的 Prompt 指南: Prompt 工程指南