3.3. vLLM モデルのエンドポイントのテスト
デプロイした Llama 3.2 モデルが外部からアクセス可能であることを確認するには、vLLM モデルサーバーがネットワークエンドポイントとして公開されていることを確認します。その後、OpenShift クラスターと OpenShift AI インターフェイスの両方の外部からモデルへのアクセスをテストできます。
デプロイ時に Make deployed models available through an external route を選択した場合、vLLM モデルのエンドポイントはクラスター外部からすでにアクセス可能です。モデルサーバーを手動で公開する必要はありません。たとえば、oc expose を使用して vLLM モデルエンドポイントを手動で公開すると、認証を設定しない限り、セキュアでないルートが作成されます。不正アクセスを防ぐために、セキュリティー制御なしでエンドポイントを公開しないでください。
前提条件
- OpenShift クラスターのクラスター管理者権限を持っている。
- Red Hat OpenShift AI にログインしている。
- OpenShift AI で Llama Stack Operator をアクティブ化した。
- llama-3.2-3b-instruct モデルなどの推論モデルをデプロイした。
-
OpenShift CLI (OpenShift Dedicated) のインストール または OpenShift CLI (Red Hat OpenShift Service on AWS) のインストール の説明に従って、OpenShift コマンドラインインターフェイス (
oc) をインストールした。
手順
新しいターミナルウィンドウを開きます。
- CLI から OpenShift クラスターにログインします。
- OpenShift Web コンソールの右上隅で、ユーザー名をクリックし、Copy login command を選択します。
- ログイン後、Display token をクリックします。
Log in with this token をコピーし、OpenShift コマンドラインインターフェイス (CLI) に貼り付けます。
$ oc login --token=<token> --server=<openshift_cluster_url>
モデルのデプロイ時に Require token authentication を有効にした場合は、トークンを取得します。
$ export MODEL_TOKEN=$(oc get secret default-name-llama-32-3b-instruct-sa -n <project name> --template={{ .data.token }} | base64 -d)モデルのエンドポイント URL を取得します。
- モデルのデプロイ時に Make deployed models available through an external route を有効にした場合は、OpenShift AI ダッシュボードの Model deployments ページで Endpoint details をクリックして、モデルのエンドポイント URL を取得します。
さらに、モデルのデプロイ時に Require token authentication を有効にしなかった場合は、次のコマンドを入力してエンドポイント URL を取得することもできます。
$ export MODEL_ENDPOINT="https://$(oc get route llama-32-3b-instruct -n <project name> --template={{ .spec.host }})"
サンプルのチャット完了リクエストを使用してエンドポイントをテストします。
モデルのデプロイ時に Require token authentication を有効にしなかった場合は、チャット完了リクエストを入力します。以下に例を示します。
$ curl -X POST $MODEL_ENDPOINT/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "llama-32-3b-instruct", "messages": [ { "role": "user", "content": "Hello" } ] }'モデルのデプロイ時に Require token authentication を有効にした場合は、リクエストにトークンを含めます。以下に例を示します。
curl -s -k $MODEL_ENDPOINT/v1/chat/completions \ --header "Authorization: Bearer $MODEL_TOKEN" \ --header 'Content-Type: application/json' \ -d '{ "model": "llama-32-3b-instruct", "messages": [ { "role": "user", "content": "can you tell me a funny joke?" } ] }' | jq .注記-kフラグは SSL 検証を無効にするため、テスト環境または自己署名証明書を使用する場合にのみ使用してください。
検証
チャットの完了を含む JSON レスポンスを受信したことを確認します。以下に例を示します。
{
"id": "chatcmpl-05d24b91b08a4b78b0e084d4cc91dd7e",
"object": "chat.completion",
"created": 1747279170,
"model": "llama-32-3b-instruct",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": null,
"content": "Hello! It's nice to meet you. Is there something I can help you with or would you like to chat?",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}],
"usage": {
"prompt_tokens": 37,
"total_tokens": 62,
"completion_tokens": 25,
"prompt_tokens_details": null
},
"prompt_logprobs": null
}
例のようなレスポンスが返されない場合は、エンドポイント URL とトークンが正しいことを確認し、モデルのデプロイが実行中であることを確認してください。