flag

[开发日志] AI翻译系统的试错:本地与服务器的差异,以及curl版本的陷阱

大家好。今天想分享一下在博客开发过程中遇到的有趣的技術问题以及解决过程。



1. 问题的开端



在本地开发环境(Windows)中,用语音(Dictation)编写的文章可以正常翻译,但实际运营服务器(Linux)上却无法翻译。

最初显示为简单的日志错误(sh: curl.exe: command not found),判断为路径问题,但实际上有更深层的原因。



2. 原因分析




- OS差异: Windows使用curl.exe,Linux使用curl命令。代码未能自动检测到这一点。
- Curl版本兼容性: 服务器上安装的curl版本是7.61.1(2018年)。我应用的快速并行处理选项(--parallel)仅支持7.66.0以上的最新功能。因此,服务器上的翻译请求本身就失败了。
- AI安全过滤器: 发现部分包含口语或俚语的句子被AI的安全过滤器(Safety Filter)拦截,导致翻译被拒绝。


3. 解决过程




- OS自动检测: 使用PHP_OS常量判断执行环境是Windows还是Linux,并修改代码以选择适当的命令。
- 引入顺序处理方式: 为了服务器兼容性,放弃了最新功能“并行处理”,全面改版为稳定的“顺序批量处理(Sequential Batch Processing)”方式。速度可能会稍慢,但保证在任何环境下都能100%运行。
- 解除安全过滤器: 为了博客文章的自由表达,将翻译时的安全过滤器设置为BLOCK_NONE,以便在没有审查的情况下进行翻译。


4. 结论



即使是最新技术,也必须首先了解运营环境(Legacy),我再次意识到了这一点。现在,可以在任何环境下稳定地提供多语言翻译。

评论

暂无评论。成为第一个分享想法的人吧!

© 2026 My Blog. All rights reserved.