Featured image of post 用Chatgpt机翻整本哲学书,然后超越蓝江

用Chatgpt机翻整本哲学书,然后超越蓝江

拳打蓝江脚踢夏颖,站在北师大门口没有季广茂敢喘气。最后看到吴子枫跪下来叫爸爸。

Chatgpt被开发出来许多奇奇怪怪的用途。异次元软件那边收集了一堆基于其API的第三方程序,小众软件那边也收集了许多。我这里是找到一个叫做 bilingual_book_maker 的python程序,能调用openai API机翻整本外文书生成双语的epub,但是因为这个东西是python程序,要用命令行去调用,等作者做成exe又遥遥无期,用起来比较困难,所以我写个教程来简单地使用这个工具。

在进入这篇教程之前,首先我要列出一张清单,确认你有这些东西:

  • 有待翻译的外文书,txt或者epub都行,但是不可以是pdf
  • github账号
  • git客户端,可以是命令行,但如果你是小白我推荐用github desktop
  • 文本编辑器,理论上来说windows自带的记事本也可以,但是还是推荐你用VSCode、Sublime Text之类的
  • 已经绑卡的openai账号

如果这些你都有了,那我们可以进入正文。

如果没有,那请直接从网页右侧的目录跳转到文章最后一节,那是一个简化方案。

如果你有openai账号,但是觉得我这个路子又是搞github又是修改配置文件特别麻烦,那可以跳到这篇文章的倒数第二章,那个方法省事,就已经封装成一个程序了。

0.首先你需要给openai账号绑定银行卡

这个虽然在前文的那个列表里也提到了,但是因为很麻烦,所以再提一嘴。网上给的教程基本都是用的depay的虚拟卡,我用的也是这个法子,但是我得先说一句,这个法子给的虚拟卡非常坑爹,如果你有条件还是最好找国外的哥们搞张卡,不然真的太坑了。

使用depay虚拟卡绑定openai的流程如下

  • 注册dapay账号,这里可以使用我的邀请码715205
  • 给depay提交非常恶俗的个人信息之后,可以开一张虽然免费但是月费巨高的卡
  • 给depay充值虚拟币(没错,depay只能先充值虚拟币再兑换成美元)
  • 为了搞虚拟币,你还得注册一个虚拟币交易平台,比如说欧易,这里你还可以使用我的邀请码85118482
  • 在交易平台上面买USDT,等待24小时候后把币冲到depay账户上,转换成USD再冲到卡里,在经过漫长的等待和N手抽手续费之后,终于实现卡的解锁
  • 最后在openai的billing页面绑卡,这一步需要用浏览器的无痕模式,挂美国节点,然后账单地址随便填写一个美国的地址(我填了谷歌总部,但是可能填一个免税州地址更好一点)

这样子你就得到了一个绑卡的openai账号。绑卡对于openai至关重要,因为不绑卡的账号api响应速度奇慢无比,基本没法实现翻译一本书的任务。

1.从人家的项目仓库里偷活

首先我们找到人家的项目仓库地址,点击人家右上角的Fork按钮,进行一个活的偷。

然后用github desktop这个工具把偷来的活拷贝到本地。准备工作完成。下一步就要开始编辑人家的文件了。

2.设置API key

我们先进网页,按照如图所示的步骤添加一个名为 OPENAI_API_KEY 的secret,内容则是在openai的API管理页面设置好的API。

3.放入需要翻译的文件,编辑workflows文件

之前把人家的仓库偷活偷到了本地。现在要做的事情是

  1. 首先把人家的test_books文件夹删掉,这个是人家测试翻译是否正常用的文件夹,我们用不着
  2. 把需要翻译的书放在根目录下,记下文件名。

比如说我这个目录的文件结构就是

│  .dockerignore
│  .gitignore
│  disclaimer.md
│  Dockerfile
│  LICENSE
│  make_book.py
│  prompt_template_sample.json
│  prompt_template_sample.txt
│  README-CN.md
│  README.md
│  requirements.txt
│  setup.py
│  Sex_and_the_Failed_Absolute.epub
│  
├─.github
│  └─workflows
│          make_test_ebook.yaml
│          
└─book_maker
    │  cli.py
    │  obok.py
    │  utils.py
    │  __init__.py
    │  __main__.py
    │  
    ├─loader
    │      base_loader.py
    │      epub_loader.py
    │      helper.py
    │      srt_loader.py
    │      txt_loader.py
    │      __init__.py
    │      
    └─translator
            base_translator.py
            caiyun_translator.py
            chatgptapi_translator.py
            deepl_translator.py
            google_translator.py
            gpt3_translator.py
            __init__.py

这里别的都不用在意,唯一需要注意的就是 Sex_and_the_Failed_Absolute.epub ,这个是我打算要翻译的书,记下来文件名,等下用得着。

然后找到 \.github\workflows\make_test_ebook.yaml 这个目录下的这个文件,直接从我这个已经改好的文件依样画葫芦。代码不想看没关系,会改几个关键词就行。

      - name: translate
        run: |
              python3 make_book.py --book_name "Sex_and_the_Failed_Absolute.epub" --language zh-hans
      - name: Rename and Upload ePub
        if: env.OPENAI_API_KEY != null
        uses: actions/upload-artifact@v2
        with:
          name: epub_output
          path: "Sex_and_the_Failed_Absolute_bilingual.epub"

这里可以看到还提到了之前要翻译的那本书的名字,每次翻译不同的书都要改这个文件,改成和你要的那个文件相同。

都改好了之后,在github desktop上把这些本地的修改推送到网上。

那之后就可以去睡一觉,起来再看有没有翻译成功了。

3.5.为什么使用持续集成

顺便说一下这个的正经玩法是在本地用python跑,我因为搞不来本地的python运行环境所以是白嫖的微软服务器来跑这个。好处在于:

  • 人家的服务器本来就在国外,不用担心openai被墙的问题
  • 本地跑这个程序需要python的运行环境,我弄不来
  • 本地跑这个程序需要一直开机,而这个可以睡前种菜第二天醒来收菜

4.翻译成功

如果报错了的话估计提前就给你发邮件了,如果第二天还没报错,那估计就是好的。

可以用如图所示下载到翻译好的文件。

最后开始品鉴东欧郭楠又说了什么怪话。

替代方案其一:Calibre插件 Ebook Translator

这是书伴做的一个工具,下载地址在此。

相当简化了流程,填好api key设置好代理基本就是傻瓜式的了。

6.替代方案其二:风声雨声

我搞这个搞了超久才搞定,虽然这个流程已经简化过很多遍了,但是如果你还是嫌麻烦,可以用风声雨声这个人家已经搭建好的服务。记得用我的邀请码:65BC5C

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计