LunaTranslator 大模型翻译接口完全指南:通用接口参数调优、字段占位符与离线翻译模型接入
【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator
LunaTranslator(视觉小说翻译器)内置了面向主流大模型(LLM)的大模型通用接口,可一键接入 OpenAI、Gemini、Claude、DeepSeek、千帆、混元等国内外数十个平台,通过流式输出、上下文记忆、多 Key 轮询与自定义 Prompt 等手段提升视觉小说与 Galgame 场景下的翻译质量;同时它还提供了面向 Hy-MT2、SakuraLLM 等专用离线翻译模型的专用接口。本文以项目日语文档docs/ja/guochandamoxing.md为骨架,结合仓库源码与默认配置,完整讲解接口的每个参数、字段占位符用法、主流平台接入方式与离线翻译模型调用原理,帮助你在实际游玩与汉化流程中快速配出稳定、高质量的大模型翻译链路。
大模型通用接口是什么
在 LunaTranslator 中,"大模型通用接口"(配置项名chatgptlike,见 默认配置)是一个遵循 OpenAI Chat Completions 兼容协议的统一翻译通道。它让用户把"翻译引擎"与"具体模型厂商"解耦:无论你用的是 OpenAI、Azure、DeepSeek 还是本地 llama.cpp 服务,只要对方暴露的是兼容接口,就能在同一个配置界面里完成接入。
从实现上看,接口的核心逻辑集中在 gptcommon.py 的gptcommon类(继承自basetrans)。其translate()方法会依次完成:校验API接口地址是否填写、读取流式输出开关、根据接口地址自动识别 API 类型(APIType)并分派到 Gemini / Claude / OpenAI 兼容三种请求路径、解析流式或非流式响应、最后把本轮原文与译文写入_context历史缓冲区供后续轮次参考(gptcommon.py L297-L345)。
正因为这层统一抽象,LunaTranslator 才能在同一个界面里覆盖欧美、中国以及本地离线部署的几乎所有大模型服务。
同时使用多个大模型接口
如果你的诉求只是"多个 Key 轮询",直接把多个 Key 用|分隔填入API Key输入框即可,程序会自动轮换并在出错时根据错误反馈调整各 Key 的权重(对应源码中按SECRET_KEY取当前 Key 的 multiapikeycurrent 机制)。
但如果你想要同时对比多个不同的接口地址 / Prompt / 模型 / 参数下的翻译效果,则需要复制接口实例:
- 点击翻译引擎上方的
+按钮,选择"大模型通用接口"; - 在弹出的窗口中为该副本命名,确认后即会复制一份当前大模型通用接口的全部设置与 API 信息;
- 激活复制出的接口实例,此时可以对其单独修改配置;副本与原接口可同时运行,从而以多套不同参数并行翻译、对比输出。
这一操作本质上对应了配置系统中同名引擎可注册多个实例的设计,复制后各实例的配置互不干扰,非常适合做 Prompt 与模型选型对比实验。
大模型通用接口参数详解
以下参数均在"大模型通用接口"的设置界面中提供,默认值可对照 默认配置 chatgptlike 段。
API 接口地址
常见大模型平台的接口地址通常可以直接从下拉列表中选择;若列表存在遗漏,请查阅目标平台官方文档,手动填写完整的 API 地址。填入后程序会根据地址自动判定协议类型(Gemini / Claude / OpenAI 兼容等,见APIType解析),选择对应的请求头与请求体构造方式。
API Key
在目标平台的后台获取。支持填写多个 Key(用|分隔)实现自动轮询,并会根据错误反馈动态调整各 Key 的使用权重;遇到某一 Key 频繁报错时会自动降低其权重,提升整体稳定性。
model(模型)
大多数平台在正确填写接口地址与 Key 之后,点击model旁的刷新按钮即可拉取该平台可用模型列表。若平台不提供模型枚举接口、且默认列表中没有所需模型,则参照该接口的官方文档手动填写模型名即可。
流式输出
开启后,模型输出将以流式增量逐段显示在翻译窗口中;关闭则等待模型完整输出后一次性显示。对应源码中的usingstream分支:开启时走parsestreamresp逐块解析,关闭时走common_parse_normal_response一次性解析(gptcommon.py L329-L340)。
附带上下文个数
为了让大模型"读得懂前文",接口会把指定条数的历史原文与译文一并提供给模型,从而显著改善人名、代词、剧情连贯性。设置为0即关闭该上下文优化。源码中每次翻译完成后,原文与译文会被追加进_context(gptcommon.py L344-L345),下一轮请求再按需截取。
自定义 system prompt / 自定义 user message / prefill {#anchor-prompt}
这三者是控制模型输出内容的三种手段,可按喜好自定义,也可保持默认。
- 自定义 system prompt:定义模型的角色与总体约束。
- 自定义 user message:定义每轮发送给模型的用户侧消息模板。
- prefill:以
assistant角色的预填内容引导模型续写方向。源码中通过_gptlike_create_prefill("prefill_use", "prefill")生成并以{"role": "assistant", "content": prefill}追加到消息末尾(gptcommon.py L443-L446),常用于强制模型先输出指定格式。
在自定义 system prompt 与 user message 中,可以使用以下字段引用动态信息:
| 字段 | 含义 |
|---|---|
{sentence} | 当前待翻译的文本 |
{srclang}/{tgtlang} | 源语言 / 目标语言。若 prompt 中只使用英文,则替换为语言名称的英文;否则替换为当前 UI 语言下的语言名称 |
{contextOriginal[N]} | N 条历史原文。N 为数字时取指定条数 |
{contextTranslation[N]} | N 条历史译文。N 为数字时取指定条数 |
{contextBoth[N]} | N 条历史原文 + 译文。若写{contextBoth[N]}会引用"附带上下文个数"的设置值;若写{contextBoth[10]}则直接使用 10 条 |
{DictWithPrompt[XXXXX]} | 引用"专有名词翻译"词条。当没有匹配到的词条时,该字段会被整体清除,避免破坏翻译内容;XXXXX是一段引导 LLM 使用给定词条优化翻译的 prompt,可自行定义;若禁用自定义 user message,则使用内置默认引导 prompt |
这些字段在源码中均有对应实现:{contextOriginal/Translation/Both}由__parsecontextN用正则统一替换,N与数字两种写法分别对应"读取配置中的附带上下文个数"与"使用输入的数字"(gptcommon.py L369-L376);{DictWithPrompt[...]}由__if_has_dwp处理,字典为空时按"清除字段、保留相邻换行/字符"的策略回退(gptcommon.py L378-L407)。
Temperature / max tokens / top p / frequency penalty
模型的采样参数,用于调节翻译的随机性与长度上限。注意:部分平台的部分模型不接受top p、frequency penalty等参数,或已弃用max tokens而改用max completion tokens——界面上为这些参数提供了独立开关,遇到平台报错时关闭对应开关即可。默认配置中Temperature默认 0(开启)、top_p默认 0.3(开启)、frequency_penalty默认 0(关闭)、use_max_completion_tokens默认 false(即默认发送max_tokens,默认值 4096)。
reasoning effort
部分平台支持的"思考强度"控制选项(none / minimal / low / medium / high / xhigh,见 默认配置选项列表)。
对Gemini 平台,各选项会自动映射为 Gemini 的thinkingBudget,映射规则为:
none/minimal→0(停用思考;对 Gemini-2.5-Pro 模型不适用)low→512medium→-1(开启动态思考)high/xhigh→24576
thinking.type
部分平台(主要是 DeepSeek)支持的思考模式开关,可选disabled/enabled。开启后可让模型先输出推理过程再给出译文,适合需要可解释翻译结果的场景;结合流式输出时,思考过程会被单独展示。
其他参数
以上仅覆盖通用参数。若你的平台还提供其他有用的参数(如top_k、presence_penalty、logprobs等),可在"其他参数"(customparams,默认配置中rank: -1排在最末)中手动添加键值对,程序会将其合并进请求体与请求头。
常见大模型平台接入速查
大模型通用接口的地址下拉列表内置了大多数主流平台。以下整理各平台的基本接入信息(Key 均在各平台开发者后台获取)。
欧美平台
| 平台 | API Key 获取 | 备注 |
|---|---|---|
| OpenAI | 平台 API Keys 页 | 默认模型示例gpt-4o-mini |
| Gemini | AI Studio API Key 页 | 支持reasoning effort→thinkingBudget自动映射 |
| Nvidia | build.nvidia.com 开发者区 | 提供 NIM 系列模型 |
| Claude (Anthropic) | Anthropic 控制台 | 模型列表见 Anthropic 官方文档 |
| Cohere | Cohere 控制台 API Keys | |
| x.ai | xAI 控制台 | |
| Groq | Groq 控制台 Keys | 主打高速推理 |
| OpenRouter | OpenRouter 设置页 Keys | 聚合多家模型,一个 Key 通用 |
| Mistral AI | Mistral 控制台 API Keys | |
| Azure OpenAI | 需自行拼接口地址 | 格式:https://{endpoint}.openai.azure.com/openai/deployments/{deployName}/chat/completions?api-version=2023-12-01-preview,将{endpoint}与{deployName}替换为你的资源名与部署名 |
| Cerebras | Cerebras 云控制台 → API Keys |
中国平台
| 平台 | 接入要点 | 备注 |
|---|---|---|
| DeepSeek | 平台 API Keys 页获取 | 支持thinking.type思考模式开关 |
| 小米 MiMo | 小米 MiMo 平台控制台 API Keys | |
| 阿里云百炼大模型 | 百炼控制台 API Key 页 | 模型列表见阿里云百炼文档 |
| 字节跳动火山引擎 | 火山方舟控制台创建 API Key | 模型文档见火山方舟文档 |
| 月之暗面 (Moonshot) | Moonshot 平台 API Keys | |
| 智谱 AI | 智谱开放平台 API Keys | 模型列表见智谱文档 |
| 讯飞星火大模型 | 参考官方文档获取APIKey和APISecret | 需按APIKey:APISecret的格式填入API Key输入框,注意是冒号拼接 |
| 腾讯混元大模型 | 参考腾讯云官方文档获取 | 模型列表见腾讯云文档 |
| 百度千帆大模型 | 见下方警告 | |
| MiniMax | MiniMax 平台快速接入文档 |
警告(百度千帆):API Key请使用百度智能云 IAM 的 Access Key、Secret Key 来生成接口 BearerToken 后作为API Key填入;或者直接按
Access Key:Secret Key的格式将两者一起填入API Key输入框。注意:这不是千帆 ModelBuilder 旧版 v1 接口的 API Key、Secret Key,两者不能通用。
使用 API 聚合管理器统一管理
如果你同时使用多个大模型平台、多把 Key,也可以借助new-api之类的 API 中继 / 聚合工具,把多家模型与多个密钥统一管理后再接入 LunaTranslator 的大模型通用接口。这样在 LunaTranslator 中只需维护一个接口地址与一个 Key,便于统一计费与权限管控,中继工具的 LunaTranslator 对接文档可参考其官方使用说明。
特定离线翻译模型:Hy-MT2 与 SakuraLLM
除了通用接口外,还存在一批为离线翻译专门设计或针对特定场景微调的翻译大模型。大部分这类模型部署好之后,直接用上面的大模型通用接口即可调用;但部分模型必须使用专用的 prompt 格式才能发挥最佳翻译效果(例如严格的"只输出译文"指令、术语表引导、历史对话拼接等)。
为此 LunaTranslator 提供了独立的特定离线翻译模型接口(对应实现 sakura_base.py 中的TS类)。该接口的特点是不提供用户自定义 prompt 设置,而是由程序按模型发布者提供的 prompt 格式自动构造消息,从而保证提示词与模型微调时所用的训练格式完全一致。
目前该接口支持以下模型:
| 作者 | 模型 | 语言 |
|---|---|---|
| tencent | Hy-MT2 | 通用 |
| SakuraLLM | SakuraLLM & GalTransl | 日语 → 中文 |
SakuraLLM 系列的 prompt 版本机制
TS类通过prompt_version_1配置选择具体的 prompt 版本,并支持auto自动探测。各版本的 system / user 消息在 sakura_make_messages 中逐条构造:
- SakuraLLM v0.9:轻小说风格翻译,system 提示词定义"轻小说翻译模型"身份,user 消息为"将下面的日文文本翻译成中文:"拼接原文;
- SakuraLLM v0.10:在 v0.9 基础上增加术语表引导——将"专有名词翻译"词条以
src->dst格式列出,并强调注意使役态/被动态主语宾语、不擅自增删换行; - SakuraLLM v1.0:精简术语表用法,词条为空时直接走普通翻译提示;
- GalTransl:面向视觉小说翻译,system 提示词强调"视觉小说翻译模型",user 消息按"历史翻译 → 术语表 → 结合历史剧情 → 翻译文本"的顺序拼接;
- SakuraLLM v1.5:轻小说/漫画/Galgame 通用风格。
翻译完成后,原文与译文分别写入context与contextReal两个历史缓冲区,供下一轮按附带上下文个数截取(translate 尾部逻辑)。
Hy-MT2 的调用逻辑
Hy-MT2版本走 hymt2_make_messages:目标语言为中文(简体/繁体)时使用中文指令"将以下文本翻译成{},注意只需要输出翻译后的结果,不要额外解释",否则使用英文指令;存在专有名词词条时,会以"参考下面的翻译"形式把词条表嵌入 user 消息,并要求"只输出翻译后的结果";同时支持把contextReal中的历史对话以多轮消息的形式拼接到请求前部。
离线模型清单与量化文件
仓库中维护了一份离线翻译模型清单 llm_model_list.json,按series(系列)、account(作者)、repos(仓库)与具体 GGUF 文件(含文件大小、时间戳、sha256)组织,涵盖:
- Hy-MT2:
Hy-MT2-7B-GGUF(Q4_K_M / Q6_K / Q8_0,约 4.6~8.0 GB)与Hy-MT2-1.8B-GGUF(Q4_K_M / Q6_K / Q8_0,约 1.1~1.9 GB),标注为通用语言; - SakuraLLM:
GalTransl-v4-4B-2601、Sakura-14B-Qwen3-v1.5-GGUF、Sakura-GalTransl-14B-v3.8、Sakura-GalTransl-7B-v3.7、Sakura-7B-Qwen2.5-v1.0-GGUF、Sakura-32B-Qwen2beta-v0.10pre1-GGUF等,语言标注为ja->zh(日语→中文),另含 Shisa.AI 等系列。
以Hy-MT2-7B-GGUF/Hy-MT2-7B-Q6_K.gguf为例,清单同时给出 6.16 GB 的文件大小与 sha256 校验值,便于在部署本地 llama.cpp / Ollama 服务后核对下载文件完整性。部署完成后,将该本地服务的 OpenAI 兼容地址填入特定离线翻译模型接口(或直接使用大模型通用接口)即可开始翻译。
总结
LunaTranslator 的大模型翻译体系由"大模型通用接口"与"特定离线翻译模型接口"两层构成:前者用统一的 OpenAI 兼容抽象覆盖国内外数十个云平台与本地服务,通过流式输出、附带上下文、字段占位符、多 Key 轮询与思考参数调节实现精细化调优;后者为 Hy-MT2、SakuraLLM 这类专用离线模型内置发布者提供的 prompt 模板,保证翻译效果与模型微调场景一致。配合文档 docs/ja/guochandamoxing.md(中文对照版见 docs/zh/guochandamoxing.md)、默认配置 config.json 与核心实现 gptcommon.py、sakura_base.py,你可以根据平台兼容性、翻译质量与延迟需求,快速搭建并对比出最适合自己游玩的翻译方案。
【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考