Skip to content

使用 OpenAI 兼容接口自动生成小说、漫画、字幕、游戏脚本等内容文本中实体词语表的翻译辅助工具

Notifications You must be signed in to change notification settings

neavo/KeywordGacha

Repository files navigation

KeywordGacha

使用 OpenAI 兼容接口自动生成小说、漫画、字幕、游戏脚本等内容文本中实体词语表的翻译辅助工具

   

概述 📢

  • KeywordGacha,简称 KG,使用 AI 技术来自动生成 实体词语表 的次世代工具
  • 实体词语表 可以在一定程度上解决在长篇文本翻译过程中 人名 等实体词语翻译版本不统一的问题
  • 根据 中、英、日、韩 文本内容自动生成 实体词语表,并且 自动翻译自动总结自动分析
  • 相较传统工具,具有高命中、语义化、智能总结角色信息等特色,对文本的兼容性更好
  • 极大的提升 小说漫画字幕游戏脚本 等内容译前准备时制作词语表的工作效率
  • 随机选取 绿站榜单作品 作为测试样本,与人工校对制作的词表对比,命中率约为 80%-90%
image/01.jpg
image/02.jpg

特别说明 ⚠️

  • 如您在翻译过程中使用了 KeywordGacha,请在作品信息或发布页面的显要位置进行说明!

配置要求 🖥️

使用流程 🛸

  • 发布页百度网盘 下载应用
  • 打开配置文件 config.json,填入 API 信息,默认为使用本地接口
  • 双击 01_启动.bat 启动应用,处理流程结束后,结果会保存在 output 文件夹内
  • 其中:

应用效果 ⚡

  • 抓取分析翻译 效果取决于模型的能力,使用 💪 更昂贵 更强力 的模型可以显著提升效果
  • 是的,氪金可以变强
  • 总体来说 在线接口 的效果和速度都远好于 本地接口,建议使用 在线接口

文本格式 🏷️

  • 支持从 .txt.csv.json 三种文件中读取文本
  • 大部分主流的 小说游戏脚本 数据格式都可以直接或者通过转换被 KG 识别
  • 输入路径是文件夹时,会读取文件夹内所有的 .txt.csv.json 文件
  • 当应用目录下有 input 文件夹时,会自动读取 input 内所有的 .txt.csv.json 文件
  • 具体可见 Wiki - 支持的文件格式

近期更新 📅

  • 20240925 v0.5.1

    • 修正 - 接口测试功能不能执行的问题
  • 20240921 v0.5.0

    • 新增 - 快速模式
      • 可以节约一半左右的 时间Token
      • 不执行 语义分析 步骤,所以无法提供 角色性别故事总结
    • 调整 - 使用本地接口时,自动设置请求频率阈值
    • 调整 - 模型版本更新至 kg_ner_20240912
  • 20240909 v0.4.1

    • 调整 - 优化规则以尝试减少结果中的杂质
      • 更严格的 Prompt
      • 更严格的 上下文出现次数 的匹配规则
      • 在不同测试用例中,减少了 20%-40% 不等的角色实体杂质
    • 修正 - 一些常见的 JSON 解析错误
    • 修正 - 汉字词语翻译时偶尔翻译成拼音的问题
  • 20240826 v0.4.0

    • 新增 - 初步完成对 韩文 的支持
      • 完全不懂 韩文,所以无法评估表现水平
      • 寻求懂 韩文 的用户协助测试
    • 调整 - 优化了 NER 实体识别步骤的执行速度
      • CPUGPU 版本都提速了一倍左右

设置说明 🎚️

{
    "api_key": [
        "no_key_required",
        "接口密钥,从接口平台方获取,使用在线接口时一定要设置正确。"
    ],
    "base_url": [
        "http://localhost:8080/v1",
        "请求地址,从接口平台方获取,使用在线接口时一定要设置正确。"
    ],
    "model_name": [
        "no_name_required",
        "模型名称,从接口平台方获取,使用在线接口时一定要设置正确。"
    ],
    "count_threshold": [
        1,
        "出现次数阈值,出现次数低于此值的词语会被过滤掉以节约时间。"
    ],
    "request_timeout": [
        180,
        "网络请求超时时间,如果频繁出现 timeout 字样的网络错误,可以调大这个值。"
    ],
    "request_frequency_threshold": [
        3,
        "网络请求频率阈值,单位为 次/秒,值可以小于 1,如果频繁出现 429 代码的网络错误,可以调小这个值。",
        "使用 llama.cpp 运行的本地模型时,将根据 llama.cpp 的配置调整自动设置,无需手动调整这个值。",
        "使用 DeepSeek 等不限制并发数的在线接口时可以调大这个值。"
    ],
    "translate_context_per": [
        1,
        "是否翻译人名实体上下文,1 - 翻译,0 - 不翻译,比较慢,根据需求自己决定是否开启。"
    ],
    "translate_context_other": [
        0,
        "是否翻译其他实体上下文,1 - 翻译,0 - 不翻译,比较慢,根据需求自己决定是否开启。"
    ]
}

常见问题 📥

  • 处理 小说

    • 注意单行不要太长
    • 目前模型能处理的单行最大长度约为500字,过长的句子会被截断
  • 处理 游戏文本

    • 建议使用 SExtractorTranslator++ 导出的文本
    • MTool 导出的文本抓取效果很不稳定
    • 如果抓取效果不好,可以多试几种导出工具和导出格式,往往会有奇效

开发计划 📈

  • 支持 Translator++ 导出的 CSV 文本
  • 添加 对 组织、道具、地域 等其他名词类型的支持
  • 添加 对 英文内容 的支持
  • 添加 对 中文内容 的支持
  • 添加 对 韩文内容 的支持
  • 添加 对 俄文内容 的支持
  • 添加 对 GPU 加速的支持
  • 添加 全自动生成模式

问题反馈 😥

  • 运行时的日志保存在程序目录下的 KeywordGacha.log 等日志文件内
  • 反馈问题的时候请附上这些日志文件

About

使用 OpenAI 兼容接口自动生成小说、漫画、字幕、游戏脚本等内容文本中实体词语表的翻译辅助工具

Resources

Stars

Watchers

Forks