
翻译完成手机秒提醒TranslateBooksWithLLMs Webhook通知功能实战【免费下载链接】TranslateBooksWithLLMsTranslate full-length books and documents with Ollama, OpenAI-compatible, Gemini, Mistral, DeepSeek, Poe or OpenRouter. Preserves formatting. Resumes where you left off. No file size limits.项目地址: https://gitcode.com/gh_mirrors/tr/TranslateBooksWithLLMs一本完整的小说用 AI 翻译动辄要跑几个小时难道要一直守在电脑前盯着终端开源项目TranslateBooksWithLLMs一款用 Ollama、Gemini、Mistral、DeepSeek 等模型整本翻译书籍与文档的工具内置了Webhook 通知功能翻译一结束你的手机、Discord 频道就能秒级收到推送提醒让你安心放下电脑干别的去。长书翻译的痛点如何不用干等 TranslateBooksWithLLMs 支持 EPUB、SRT、DOCX、PDF、TXT 等格式且没有文件大小上限。但本地模型翻译一本长书往往耗时数小时中途暂停、换模型也是常事——任务一旦暂停你甚至不知道它何时恢复、何时完成。此时如果能把翻译完成/失败这个事件推送到你的设备整个等待过程就彻底解放了。三步配置手机秒提醒ntfy 路线 官方推荐的个人用法是配合ntfy免注册的推送服务第 1 步在手机安装 ntfy App订阅一个独一无二的主题名Topic 是公开的别用常见词建议如tbl-你的名字-K8x9p2。第 2 步在项目根目录的.env文件中加一行NOTIFY_WEBHOOK_URLhttps://ntfy.sh/tbl-你的名字-K8x9p2第 3 步重启应用。此后每次翻译成功或失败手机都会收到推送零额外代码。就这么简单其余配置全部可选。Webhook 通知配置变量全解所有变量均在启动时从.env读取完整说明见 docs/NOTIFICATIONS.md核心配置在 src/config.py变量默认值作用NOTIFY_WEBHOOK_URL空禁用要调用的通知地址支持占位符NOTIFY_WEBHOOK_METHODPOSTHTTP 方法Healthchecks 之类只需 ping 的用GETNOTIFY_WEBHOOK_HEADERS空JSON 格式的自定义请求头如 Bearer 鉴权NOTIFY_WEBHOOK_PAYLOAD空JSON 请求体模板留空则用兼容 gotify 的默认模板NOTIFY_ON_SUCCESStrue翻译成功时通知NOTIFY_ON_FAILUREtrue翻译失败时通知NOTIFY_ON_INTERRUPTIONfalse暂停/中断时通知默认关因为通常是人为操作NOTIFY_TIMEOUT_SECONDS5请求超时网络慢可调大好用的占位符URL、请求头和请求体里都可以写{event}、{file}、{output}、{duration_seconds:.0f}、{provider}、{model}、{source_lang}、{target_lang}、{error}等发送时自动替换例如消息里带上文件用 {model} 花了 {duration_seconds:.0f} 秒。Discord、Slack 等平台的翻译完成通知同一个 Webhook 机制也兼容 Discord、Slack、自建的 gotify 和 Healthchecks.io区别只在请求体格式DiscordNOTIFY_WEBHOOK_PAYLOAD{content:Translation **{event}**: {file} ({duration_seconds:.0f}s)}SlackNOTIFY_WEBHOOK_PAYLOAD{text:翻译{event}{file}用时 {duration_seconds:.0f} 秒}gotify自建默认模板的titlemessage字段恰好符合其 schema无需自定义事件触发逻辑在 src/api/handlers.py任务进入成功、失败、中断三种终态之一时才会发通知像自动重试的限流这类中间状态不会打扰你。不跑翻译也能先测试 Webhook ✅配置好.env后不必真等一本书翻完才能验证。在 Python 里执行python -c from src.utils.notifier import notify, EVENT_SUCCESS; print(notify(EVENT_SUCCESS, {file:test.txt,duration_seconds:1.0}))返回True且收到通知即为配置成功。也可以在Web 界面里通过 notifications-manager.js 提供的发送测试通知按钮选择 success/failure 事件一键试发后端逻辑见 config_routes.py。常见问题排查 ⚠️脚本返回 True 但收不到通知ntfy 把 JSON 发到了带主题名的 URL此时被当纯文本处理。去掉NOTIFY_WEBHOOK_PAYLOAD或把 URL 改为裸的https://ntfy.sh并把主题写进请求体。返回 False 且报超时调大NOTIFY_TIMEOUT_SECONDS30仍失败则检查防火墙是否拦截了 HTTPS。日志出现 4xx请求体格式与服务端不匹配Discord 要content、Slack 要text调整NOTIFY_WEBHOOK_PAYLOAD即可。会不会拖垮翻译任务不会。通知模块 src/utils/notifier.py 会捕获所有网络异常只记录警告绝不中断翻译流水线。 隐私提醒Webhook 地址常含令牌等同于秘密——不要把.env提交到仓库公开提问时请打码。小结只需一行NOTIFY_WEBHOOK_URLTranslateBooksWithLLMs 就把长书翻译跑几小时变成了扔给 AI 然后等手机响。配合占位符和自定义请求体它还能接入 Discord、Slack 乃至监控平台是长文档批量翻译场景下非常实用的一个小功能。【免费下载链接】TranslateBooksWithLLMsTranslate full-length books and documents with Ollama, OpenAI-compatible, Gemini, Mistral, DeepSeek, Poe or OpenRouter. Preserves formatting. Resumes where you left off. No file size limits.项目地址: https://gitcode.com/gh_mirrors/tr/TranslateBooksWithLLMs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考