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.