一个翻译文本的程序。
TkTransl 是自由软件:你可以再分发之和/或依照由自由软件基金会发布的GNU 通用公共许可证修改它,无论是版本 3 许可证,还是(按你的决定)任何以后版都可以。
你应该随程序获得一份 GNU 通用公共许可证的复本。如果没有,请看这个链接。
# 安装依赖
pip install -r requirements.sakurallm.txt
# 翻译
python tktransl.py \
--input proj/input/ \
--output proj/output/ \
--config proj/config.json \
--pre-dict proj/preDict.txt \
--post-dict proj/postDict.txt \
--gpt-dict proj/gptDict.txt \
--builtin-pre-dict \
--builtin-post-dict \
--builtin-gpt-dict
--input
: 必选。要翻译的文件。
--output
: 必选。翻译的输出路径。
--config
: 必选。配置文件。
--pre-dict
: 多选。译前(预处理)词典。
--post-dict
: 多选。译后词典。
--gpt-dict
: 多选。GPT词典(用于大语言模型的词典)。
--not-allowed-logging-level
: 多选。不允许某个等级的日志输出。等级: [Debug, Info, Warning, Error, Fatal]。
--builtin-pre-dict
: 建议。使用内置的译前词典。
--builtin-post-dict
: 建议。使用内置的译后词典。
--builtin-gpt-dict
: 建议。使用内置的GPT词典。
[
{
"message": "原文",
"speaker": "说话的人,如果有的话。可以不写。",
"additional_info": "附加信息,翻译时不会用到,输出时会带有这个。类型可以是字符串、数值、列表、字典等等都行。"
},
{
"message": "另一则原文",
}
]
[
{
// 该文本对象在原文的索引。
"index": 0,
"source": "原文",
"translation": "译文",
"translate_by": "哪个翻译器翻译的",
// 以下键值对都只有相应的值不为空(或假)时才会包含在输出内
"original_speaker": "说话的人的名字原文",
"speaker_translation": "说话的人的名字译文",
"additional_info": "原封不动的附加信息"
}
]
译前词典: 翻译前对原文处理。
译后词典: 翻译后对译文处理。
格式如下:
原文1->译文1
// 注释
原文2->译文2
用于SakuraLLM、ChatGPT等大语言模型,以提高AI翻译的质量。
格式如下:
// 即使翻译与原文相同也要写
白上->白上 #白上フブキ的姓,少女
フブキ->吹雪 #白上フブキ的名,少女
配置顶层的设置是各个翻译器的通用设置,translators
内的设置是个性化设置。
{
"sakurallm": {
// 翻译时上文、下文分别的行数。此例中上文2行,下文1行。
"previous_lines": 2,
"next_lines": 1,
// 翻译风格,可以是“文艺”或者“流畅”。
"style": "文艺",
// 一次翻译多少行
"number_per_request_translate": 7,
// 支持的模型有`galtransl-v2`
"model": "galtransl-v2"
},
"translators": {
"sakurallm": [
{
// 通用设置。翻译器的名称。记录日志时会显示此名称。
"name": "SakuraLLM-1",
// 以下皆为SakuraLLM专有。
// OpenAI格式的API、时间限制(单位:秒)。
"api": "http://127.0.0.1:10086",
"timeout": 5,
// 可选。重启服务器的API、时间限制(单位:秒)。
"restart_api": "http://127.0.0.1:14514/10086",
"restart_timeout": 60
}
]
}
}