Skip to content

jexjws/AutoTranslate

Repository files navigation

AI应用类 / AutoTranslate for Mediawiki / demo(beta版)

AutoTranslate Logo

借助AI的能力,自动化 翻译Mediawiki条目的流程。

重要的事情说 3 遍

Important

你使用该工具生成的内容由你负责。向站点提交内容前,不要忘了严格审校这些内容!

Important

你使用该工具生成的内容由你负责。向站点提交内容前,不要忘了严格审校这些内容!

Important

你使用该工具生成的内容由你负责。向站点提交内容前,不要忘了严格审校这些内容!

运行本项目

因作者能力有限,暂时只有cli版可用

  1. 我们使用uv管理本项目包括python本身在内的依赖,若你没有uv,请先下载安装uv
  2. clone本项目,cd到本项目,复制config.toml.template一份到config.toml
  3. config.toml 中改配置;你可以直接使用默认配置为 archwikicn 站点生成 安装指南 条目的翻译。
  4. deepseek开放平台 那边获取 API key,export OPENAI_API_KEY=your-api-key-here
  5. uv run cli.py 即可运行cli版本
  6. 翻译结果输出到 output/newB

工具原理

  1. 一些简写

    • oldA 旧版英文文档
    • newA 最新英文文档
    • oldB 旧版中文文档
    • newB 最新中文文档(本项目要生成的)
  2. 使用 src/connector 拉取 oldA, oldB, newA

分块覆写模式

  1. 拆分块:
  • 基于 oldA oldB,使用 src/alignment 切分文档,获得 oldA 中的文段 <=> oldB 中对应的文段
  • 使用 src/alignment 切分 newA
  1. 处理块: 遍历 newA:
  • 调用get_newB生成最新翻译
  • 会先查找有没有对应旧版,有的话把旧版信息一并塞给AI
  1. 把块块们合并: 合并这些翻译,使用 src/connector 对文本进行平台相关处理,最后得到 newB

不分块,全覆写模式

AI一次能获取到更多的信息,感觉更准确

不值得为原文变更极少的条目使用(token会浪费在没变更的地方)

很长的文章会超AI服务商的token限制导致newB输出不完整

  1. 从 oldA 、 newA 生成diff信息
  2. 把 diff信息、oldB全文 直接给AI,AI返回 newB

细节

条目内容拉取

  • src/connector/mediawiki.py pywikibot 套壳

分块算法

  • src/alignment/wikitext.py 基于章节的分块

业务逻辑

  • cli.py

About

AutoTranslate for Mediawiki

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages