注目の機能: コマンド ライン インターフェイス (CLI) の統合

私の大切な友人、ルブに捧げます

新しい FastAPI ベースのコマンド ライン インターフェイス (CLI) は、ローカルまたはリモート シェルから実行中のコア テキスト処理サービスと対話するクリーンな同期方法を提供します。これは、コア ロジックをシェル環境に統合するように設計された堅牢なソリューションです。


1. アーキテクチャと同期 CLI の概念

このサービスは Uvicorn/FastAPI サーバーを利用しており、カスタム エンドポイント (/process_cli) を使用して、本質的に非同期のファイルベースのバックグラウンド プロセスから同期 (ブロッキング) 結果を配信します。

待機して読むポーリング戦略

  1. 一意の出力オーバーライド: API はリクエストごとに一意の一時ディレクトリを作成します。

  2. プロセスの開始: process_text_in_background を呼び出して、非ブロッキング スレッドでコア ロジックを実行し、その結果をその固有のフォルダー内の tts_output_*.txt ファイルに書き込みます。

  3. 同期待機: API 関数は出力ファイルが作成されるかタイムアウトに達するまで、一意のフォルダーをブロックし、ポーリングします。

  4. 結果の配信: API はファイルの内容を読み取り、必要なクリーンアップ (ファイルと一時ディレクトリの削除) を実行し、最終的に処理されたテキストを JSON 応答の result_text フィールドに返します。

これにより、CLI クライアントはテキスト処理の完了「後」にのみ応答を受信するようになり、信頼性の高いシェル エクスペリエンスが保証されます。

2. リモート アクセスとネットワーク ポート マッピング

Lub の端末のようなリモート クライアントからのアクセスを許可するには、利用可能な外部ポートが限られているという一般的な制約に対処する、次のネットワーク構成が必要でした。

解決策: 外部ポートのマッピング

このサービスは内部的に ポート 8000 で実行されており、ネットワーク環境では外部アクセスが特定のポート範囲 (例: 88__-8831) に制限されているため、ルーター (Fritz!Box) に ポート マッピング を実装しました。

エンドポイント

プロトコル

ポート

説明

External/Public

TCP

88__ (Example)

クライアント (Lub) が使用する必要があるポート。

Internal/Local

TCP

8000

FastAPI サービスが実際にリッスンするポート (--port 8000)。

ルーターは、外部ポート (「88__」) 上の受信接続をホスト マシンの内部ポート (「8000」) に変換し、コア サーバーの構成を変更せずにサービスにグローバルにアクセスできるようにします。

クライアントは、パブリック IP アドレス、外部ポート、および正しい API キーを使用して構成されている必要があります。

CODE_BLOCK_0