注目の機能: コマンド ライン インターフェイス (CLI) の統合¶
私の大切な友人、ルブに捧げます
新しい FastAPI ベースのコマンド ライン インターフェイス (CLI) は、ローカルまたはリモート シェルから実行中のコア テキスト処理サービスと対話するクリーンな同期方法を提供します。これは、コア ロジックをシェル環境に統合するように設計された堅牢なソリューションです。
1. アーキテクチャと同期 CLI の概念¶
このサービスは Uvicorn/FastAPI サーバーを利用しており、カスタム エンドポイント (/process_cli) を使用して、本質的に非同期のファイルベースのバックグラウンド プロセスから同期 (ブロッキング) 結果を配信します。
待機して読むポーリング戦略¶
一意の出力オーバーライド: API はリクエストごとに一意の一時ディレクトリを作成します。
プロセスの開始:
process_text_in_backgroundを呼び出して、非ブロッキング スレッドでコア ロジックを実行し、その結果をその固有のフォルダー内のtts_output_*.txtファイルに書き込みます。同期待機: API 関数は出力ファイルが作成されるかタイムアウトに達するまで、一意のフォルダーをブロックし、ポーリングします。
結果の配信: API はファイルの内容を読み取り、必要なクリーンアップ (ファイルと一時ディレクトリの削除) を実行し、最終的に処理されたテキストを JSON 応答の
result_textフィールドに返します。
これにより、CLI クライアントはテキスト処理の完了「後」にのみ応答を受信するようになり、信頼性の高いシェル エクスペリエンスが保証されます。
2. リモート アクセスとネットワーク ポート マッピング¶
Lub の端末のようなリモート クライアントからのアクセスを許可するには、利用可能な外部ポートが限られているという一般的な制約に対処する、次のネットワーク構成が必要でした。
解決策: 外部ポートのマッピング¶
このサービスは内部的に ポート 8000 で実行されており、ネットワーク環境では外部アクセスが特定のポート範囲 (例: 88__-8831) に制限されているため、ルーター (Fritz!Box) に ポート マッピング を実装しました。
エンドポイント |
プロトコル |
ポート |
説明 |
|---|---|---|---|
External/Public |
TCP |
|
クライアント (Lub) が使用する必要があるポート。 |
Internal/Local |
TCP |
|
FastAPI サービスが実際にリッスンするポート ( |
ルーターは、外部ポート (「88__」) 上の受信接続をホスト マシンの内部ポート (「8000」) に変換し、コア サーバーの構成を変更せずにサービスにグローバルにアクセスできるようにします。
クライアントは、パブリック IP アドレス、外部ポート、および正しい API キーを使用して構成されている必要があります。
CODE_BLOCK_0