OmniRoute リモート VPS 導入: Codex API ゲートウェイ、自動フォールバック、および Caddy HTTPS

OmniRoute リモート VPS 導入: Codex API ゲートウェイ、自動フォールバック、および Caddy HTTPS、構成、検証、権限境界、フェイルバック、長期メンテナンスをカバーします。

OmniRoute のこのチュートリアルでは、タイトルにある特定のタスクのみを扱います。リモート展開の場合、20128 はループバック アドレスのみをリッスンする必要があり、Caddy は TLS を提供します。 Codex は制限されたエンドポイント トークンを使用しており、自動フォールバックは監視可能である必要があり、モデルをサイレントに変更することはできません。

以下のすべての操作は、最初に、ループバックアドレスのみでリッスンするテストリポジトリ、テスト アカウント、またはサービスに配置されます。コマンド内のドメイン名、ユーザー名、パス、およびキーはプレースホルダーであるため、実行前に置き換える必要があります。

リモートゲートウェイの実際のデータパス

このセクションでは、「リモート ゲートウェイへの実際のデータ パス」について説明します。まず現在の状態を記録し、次に最小限のアクションを実行し、最後に独立した証拠で結果を確認します。

OmniRoute の場合、判断基準は次のとおりです。リモート展開では 20128 がループバック アドレスのリッスンのみを許可し、その後 Caddy が TLS を提供する必要があります。 Codex は制限されたエンドポイント トークンを使用しており、自動フォールバックは監視可能である必要があり、モデルをサイレントに変更することはできません。この段階で誤ってさらに許可を開かないでください。

1
docker version

実行後にコマンド出力とタイムスタンプを保持します。出力が現在のターミナルの一時変数に依存している場合は、新しいターミナルを開いて再度確認してください。

VPS 上に Docker と永続ボリュームを準備する

次の順序で処理します。

  1. 実際のバージョンと現在の構成を読み取ります。
  2. このセクションに関連する設定を 1 つだけ変更します。
  3. 読み取り専用または取り消し可能なリクエストを実行します。
  4. ログ、終了コード、および最終ファイルを確認します。
  5. 失敗した場合は、以前の変更を元に戻します。
1
docker volume create omniroute-data

ここでの完了基準は、インターフェイスが表示されることではなく、「VPS 上の永続ボリュームを使用した Docker の準備」で再現可能な結果が得られることです。

OmniRoute が 127.0.0.1 でのみリッスンするようにします

何を確認するか 許容可能なパフォーマンス 停止する必要がある信号
OmniRoute が 127.0.0.1 のみを監視するようにします。入出力スコープをクリアする 他のプロジェクトまたはアカウントに自動的に展開
権限 タスクを完了するために必要な権限のみを取得します 管理者権限またはフルキーが必要
ログ 見つけられなかったため、感度が解除されました トークン、Cookie、またはプライベート テキストが表示される
ロールバック 以前の状態に戻すことができます 変更は元に戻すことができず、バックアップはありません。
1
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 -p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest

表に停止信号が表示されたら、まずこのセクションの変更を元に戻し、後続の自動化を続行しないでください。

初めてモデルリストを読む

「初読モデルリスト」を中心に成功サンプルと失敗サンプルを用意します。成功したサンプルでは通常のパスが検証され、失敗したサンプルでは制限が実際に有効かどうかが検証されます。

1
curl.exe http://127.0.0.1:20128/v1/models -H 'Authorization: Bearer YOUR_KEY'

以下の4項目を記録することをお勧めします。

  • 実行前バージョンまたは Git コミット。
  • 実際の入力。秘密の値は記録されません。
  • 観察可能な出力、ステータス コード、または差分。
  • 回復アクションと回復後の結果の確認。

失敗の原因がまだ不明な場合は、一度に 1 つの変数のみを変更してください。ポート、ランタイム、プロバイダー、およびプロキシを同時に変更しないでください。

Caddy リバース プロキシの最小構成

このセクションでは、「Caddy リバース プロキシの最小構成」について説明します。まず現在の状態を記録し、次に最小限のアクションを実行し、最後に独立した証拠で結果を確認します。

OmniRoute の場合、判断基準は次のとおりです。リモート展開では 20128 がループバック アドレスのリッスンのみを許可し、その後 Caddy が TLS を提供する必要があります。 Codex は制限されたエンドポイント トークンを使用しており、自動フォールバックは監視可能である必要があり、モデルをサイレントに変更することはできません。この段階で誤ってさらに許可を開かないでください。

1
caddy validate --config Caddyfile

実行後にコマンド出力とタイムスタンプを保持します。出力が現在のターミナルの一時変数に依存している場合は、新しいターミナルを開いて再度確認してください。

HTTPS 発行後に証明書チェーンを確認する

次の順序で処理します。

  1. 実際のバージョンと現在の構成を読み取ります。
  2. このセクションに関連する設定を 1 つだけ変更します。
  3. 読み取り専用または取り消し可能なリクエストを実行します。
  4. ログ、終了コード、および最終ファイルを確認します。
  5. 失敗した場合は、以前の変更を元に戻します。
1
curl.exe -I https://ai.example.com/v1/models

ここでの完了基準は、インターフェイスが表示されることではなく、「HTTPS 発行後の証明書チェーンの確認」で再現可能な結果が得られることです。

Codex のプライベート アクセス トークンを作成する

何を確認するか 許容可能なパフォーマンス 停止する必要がある信号
Codex 用の専用アクセス トークンを作成する 入出力スコープをクリアする 他のプロジェクトまたはアカウントに自動的に展開
権限 タスクを完了するために必要な権限のみを取得します 管理者権限またはフルキーが必要
ログ 見つけられなかったため、感度が解除されました トークン、Cookie、またはプライベート テキストが表示される
ロールバック 以前の状態に戻すことができます 変更は元に戻すことができず、バックアップはありません。
1
curl.exe https://ai.example.com/v1/models -H 'Authorization: Bearer YOUR_KEY'

表に停止信号が表示されたら、まずこのセクションの変更を元に戻し、後続の自動化を続行しないでください。

自動ルーティングと固定モデルの選択方法

「自動ルーティングと固定モデルの選び方」を中心に成功サンプルと失敗サンプルを用意します。成功したサンプルでは通常のパスが検証され、失敗したサンプルでは制限が実際に有効かどうかが検証されます。

1
curl.exe http://127.0.0.1:20128/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"auto","messages":[{"role":"user","content":"ping"}]}'

以下の4項目を記録することをお勧めします。

  • 実行前バージョンまたは Git コミット。
  • 実際の入力。秘密の値は記録されません。
  • 観察可能な出力、ステータス コード、または差分。
  • 回復アクションと回復後の結果の確認。

失敗の原因がまだ不明な場合は、一度に 1 つの変数のみを変更してください。ポート、ランタイム、プロバイダー、およびプロキシを同時に変更しないでください。

プロバイダーは電流を制限するときにロールバックを監視します

このセクションでは、「プロバイダーの電流制限中のロールバックの監視」について説明します。まず現在の状態を記録し、次に最小限のアクションを実行し、最後に独立した証拠で結果を確認します。

OmniRoute の場合、判断基準は次のとおりです。リモート展開では 20128 がループバック アドレスのリッスンのみを許可し、その後 Caddy が TLS を提供する必要があります。 Codex は制限されたエンドポイント トークンを使用しており、自動フォールバックは監視可能である必要があり、モデルをサイレントに変更することはできません。この段階で誤ってさらに許可を開かないでください。

1
docker logs --since 10m omniroute

実行後にコマンド出力とタイムスタンプを保持します。出力が現在のターミナルの一時変数に依存している場合は、新しいターミナルを開いて再度確認してください。

圧縮関数は最初にオフラインで評価されます。

次の順序で処理します。

  1. 実際のバージョンと現在の構成を読み取ります。
  2. このセクションに関連する設定を 1 つだけ変更します。
  3. 読み取り専用または取り消し可能なリクエストを実行します。
  4. ログ、終了コード、および最終ファイルを確認します。
  5. 失敗した場合は、以前の変更を元に戻します。
1
docker exec omniroute npm run eval:compression

ここでの完了基準はインターフェイスの外観ではなく、「圧縮機能が最初にオフラインで評価され、再現可能な結果が得られる」ことです。

イメージをバックアップするだけではなく、オムニルート データをバックアップします。

何を確認するか 許容可能なパフォーマンス 停止する必要がある信号
イメージをバックアップするだけではなく、オムニルート データをバックアップします。入出力スコープをクリアする 他のプロジェクトまたはアカウントに自動的に展開
権限 タスクを完了するために必要な権限のみを取得します 管理者権限またはフルキーが必要
ログ 見つけられなかったため、感度が解除されました トークン、Cookie、またはプライベート テキストが表示される
ロールバック 以前の状態に戻すことができます 変更は元に戻すことができず、バックアップはありません。
1
docker run --rm -v omniroute-data:/data -v ${PWD}:/backup alpine tar czf /backup/omniroute-data.tgz -C /data .

表に停止信号が表示されたら、まずこのセクションの変更を元に戻し、後続の自動化を続行しないでください。

障害が発生した場合に Codex が元のエンドポイントに戻るようにします

「失敗した場合に Codex を元のエンドポイントに戻す」を中心に成功サンプルと失敗サンプルを用意します。成功したサンプルでは通常のパスが検証され、失敗したサンプルでは制限が実際に有効かどうかが検証されます。

1
docker stop omniroute

以下の4項目を記録することをお勧めします。

  • 実行前バージョンまたは Git コミット。
  • 実際の入力。秘密の値は記録されません。
  • 観察可能な出力、ステータス コード、または差分。
  • 回復アクションと回復後の結果の確認。

失敗の原因がまだ不明な場合は、一度に 1 つの変数のみを変更してください。ポート、ランタイム、プロバイダー、およびプロキシを同時に変更しないでください。

ゲートウェイとアップストリームのエラーを Caddy ログから区別する

このセクションでは、「Caddy ログからのゲートウェイ エラーとアップストリーム エラーの区別」について説明します。まず現在の状態を記録し、次に最小限のアクションを実行し、最後に独立した証拠で結果を確認します。

OmniRoute の場合、判断基準は次のとおりです。リモート展開では 20128 がループバック アドレスのリッスンのみを許可し、その後 Caddy が TLS を提供する必要があります。 Codex は制限されたエンドポイント トークンを使用しており、自動フォールバックは監視可能である必要があり、モデルをサイレントに変更することはできません。この段階で誤ってさらに許可を開かないでください。

1
caddy validate --config Caddyfile

実行後にコマンド出力とタイムスタンプを保持します。出力が現在のターミナルの一時変数に依存している場合は、新しいターミナルを開いて再度確認してください。

リモートトークンで呼び出せるモデルを制限する

次の順序で処理します。

  1. 実際のバージョンと現在の構成を読み取ります。
  2. このセクションに関連する設定を 1 つだけ変更します。
  3. 読み取り専用または取り消し可能なリクエストを実行します。
  4. ログ、終了コード、および最終ファイルを確認します。
  5. 失敗した場合は、以前の変更を元に戻します。
1
curl.exe https://ai.example.com/v1/models -H 'Authorization: Bearer YOUR_KEY'

ここでの完了基準は、インターフェイスが表示されることではなく、「リモート トークンで呼び出せるモデルを制限する」ことで再現可能な結果が得られることです。

メインプロバイダーの障害をシミュレートする

何を確認するか 許容可能なパフォーマンス 停止する必要がある信号
メインプロバイダーの障害をシミュレートする 入出力スコープをクリアする 他のプロジェクトまたはアカウントに自動的に展開
権限 タスクを完了するために必要な権限のみを取得します 管理者権限またはフルキーが必要
ログ 見つけられなかったため、感度が解除されました トークン、Cookie、またはプライベート テキストが表示される
ロールバック 以前の状態に戻すことができます 変更は元に戻すことができず、バックアップはありません。
1
docker logs --follow omniroute

表に停止信号が表示されたら、まずこのセクションの変更を元に戻し、後続の自動化を続行しないでください。

イメージをアップグレードするときのロールバック ラベルを修正しました

「イメージのアップグレード時のロールバック ラベルの修正」に関する成功サンプルと失敗サンプルを用意します。成功したサンプルでは通常のパスが検証され、失敗したサンプルでは制限が実際に有効かどうかが検証されます。

1
docker image ls diegosouzapw/omniroute

以下の4項目を記録することをお勧めします。

  • 実行前バージョンまたは Git コミット。
  • 実際の入力。秘密の値は記録されません。
  • 観察可能な出力、ステータス コード、または差分。
  • 回復アクションと回復後の結果の確認。

失敗の原因がまだ不明な場合は、一度に 1 つの変数のみを変更してください。ポート、ランタイム、プロバイダー、およびプロキシを同時に変更しないでください。

オムニルートに関するよくある質問

テスト環境をスキップして、公式プロジェクトで直接 OmniRoute を使用することは可能ですか?

お勧めしません。まず、少なくとも 1 つの最小限の成功リクエスト、1 つの意図的な失敗、および 1 つの回復訓練を完了します。

OmniRoute コマンドは実行できますが、結果が正しくありません。最初にどこを確認すればよいですか?

まず入力範囲、実際の有効構成、および上流の応答を確認し、次にモデルの概要を確認します。プロセスが正常であっても、ビジネス結果が正しいとは限りません。

OmniRoute キーまたはトークンが Git に入るのを防ぐにはどうすればよいですか?

システム環境変数、シークレット管理、またはプロジェクト外部の構成ファイルを使用し、コミットする前に差分を検索します。侵害が発見された後は、キーをローテーションする必要があります。

OmniRoute をアップグレードするときに見逃しがちなことは何ですか?

最も見逃しやすいのは、構成形式、デフォルトのリスニング アドレス、アクセス許可の範囲、キャッシュの互換性です。アップグレードする前に、バージョンと検証サンプルを保存してください。

OmniRoute の受け入れ問題

完了すると、次の質問に答えられるようになります。

  • 正確にどのバージョンを使用していますか?
  • どのディレクトリ、ポート、アカウント、外部サービスにアクセスできますか?
  • 成功結果を元のデータまたは Git diff に戻すにはどうすればよいですか?
  • アップストリームに障害が発生した場合、エラーが報告されるか、再試行されるか、または切り替えられますか?
  • キーがログまたは履歴に表示される可能性はありますか?
  • 10分以内に修正前の状態に戻すにはどうすればよいですか?

これらのいずれかに回答できない場合、OmniRoute はまだ試用段階にあるため、権限を拡張したり、運用自動化を利用したりすべきではありません。