1

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

 1 year ago
source link: https://blog.amamiyayuuko.com/p/use-chatgpt-for-translation/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
技术

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

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

Mar 28, 2023

阅读时长: 4 分钟

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

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

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

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

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这个工具把偷来的活拷贝到本地。准备工作完成。下一步就要开始编辑人家的文件了。

202303282150327.png
202303282150411.png

2.设置API key

202303282151064.png
202303282152920.png

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

202303282155330.png

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.翻译成功

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

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

202303282212797.png

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

5.如果你嫌麻烦……

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

openai

Licensed under CC BY-NC-SA 4.0


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK