如果,你面前摆着一份「原汁原味」的英文文档、英文书,让你生啃的话……
别说你了,160 多斤的我,也都会不自觉哆嗦一下的,至少一分钟。
怎么办啊?不怕,有我呢,干它就是了,先干为敬!!!
这次,我们直接上 OpenAI,咱这次通过调用它的 API来实现「翻译自由」—— 主要是,相当简单!!
第一步:熟悉 OpenAI,配置 API Key
1.1 打开官网:platform.openai.com/apps
1.2 配置 API Key
进入页面后,点一下页面右上角的「Personal」,在弹出的窗口中选「View API keys」,咱们需要去创建一个。
1.3 绑定支付方式
不过呢,这个 API Key 是需要付费的,而且要先绑定好你支付用的卡。
此时不着急,同一个页面的左侧目录了中,选「Billing - Overview」即可看到一个按钮「Set up paid account」
点它还会弹出如下窗口,问你是个人用,还是代表企业使用?
我选了「I'm an individual」个人的,然后弹出的窗口是用来填写你的海外信用卡相关信息(暂时不支持国内的哇)。
⚠️ 有解决办法吗?—— 悄悄跟你说,某宝有,即买即用~
第二步,开干
2.1 下载文件
先将需要翻译的文件,下载回本地。具体代码如下:
# 从网上获取指定的文件
# 我找的文件是《纳瓦尔宝典》的英文版,好书,推荐大家看
res = requests.get('https://navalmanack.s3.amazonaws.com/Eric-Jorgenson_The-Almanack-of-Naval-Ravikant_Final.pdf')
# 将其下载回本地
with open('naval.pdf', 'wb') as f:
f.write(res.content)
❤️ 帅帅要上架新的「超实用的 Python 专业课程」啦 🎉🎉🎉
❤️ 期待与你一起学好 Python 这门终身「硬技能」,可私信~
2.2 翻译文件
接着,开始读取、翻译。具体代码如下:
# 使用 pypdf
from pypdf import PdfReader
# 引入
from nltk.tokenize import sent_tokenize
import openai
# 如果没有付费的话,会报 RateLimitError: You exceeded your current quota, please check your plan and billing details.
TOKEN = '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'
openai.api_key = TOKEN
# 指定文件
pdf_name = "naval.pdf"
# 读取文件和获取文件总页数
reader = PdfReader(pdf_name)
number_of_pages = len(reader.pages)
data = []
# 获取每一页
for i in range(number_of_pages):
page = reader.pages[i]
# 获取当前页内容
text = page.extract_text()
# 将文章切分为句子
sentences = sent_tokenize(text)
# 如果句子长度大于 1000 就丢到数组中保存
# GPT4.0 前不能超 4096
input_sentences = ''
for sentence in sentences:
input_sentences += sentence
if len(input_sentences) > 1000:
data.append(input_sentences)
input_sentences = ''
data.append(input_sentences)
for i in range(10):
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "翻译文档成中文"},
{"role": "user", "content": data[i]},
]
)
print("原文:", data[i])
print("中文:", completion.choices[0].message.content)
⚠️注意,上面的 TOKEN 是要自己在 Open AI 官方充值才有的,按使用量计费。
如果说,你还想要好看的格式,那么还需要自己结合 HTML、CSS、JavaScript 等知识来实现,想怎么设置就怎么设置。
咱们后面有机会,可以看我直播,或者在课程里去拆解一下其中的实现细节,一步一步地把相关的技术整合一起使用,实现一个专属的又超级实用的「翻译工具」,是不是很爽?!