chatqna-docker-deploy について
Docker Compose で Chat Question and Answer Core をデプロイするスキルです。コンテナアプリを起動または停止する運用担当者向けで、OpenVINO の CPU/GPU と Ollama CPU の構成に対応し、コンテナ状態とヘルスエンドポイントで稼働を確認します。
主な機能
- 01Docker Compose によるアプリ起動
- 02OpenVINO CPU/GPU と Ollama CPU に対応
- 03事前構築イメージまたはローカルビルドの選択
- 04コンテナ、ログ、ヘルスエンドポイントの確認
- 05UI と API ドキュメントの URL 表示
活用シーン
- 01ChatQnA Core コンテナの起動
- 02OpenVINO GPU 構成の選択
- 03Ollama CPU バックエンドの利用
- 04サービス確認とアクセス URL の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ open-edge-platform/ edge-ai-libraries --skill chatqna-docker-deployインストール後、Claude Code で/chatqna-docker-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
benchmark/benchmark.mdevals/evals.jsontrigger-evals.json詳細
ChatQnA の Docker デプロイ
Docker Compose を使用して、Chat Question and Answer Core のサンプルアプリケーションをコンテナーとしてデプロイします。
コードベースのルート:sample-applications/chat-question-and-answer-core/
このスキルで実現すること
- 次のいずれかのバックエンドプロファイルで ChatQnA Core を実行します。
- OpenVINO CPU(
OPENVINO) - OpenVINO GPU(
OPENVINO-GPU) - Ollama CPU(
OLLAMA)
- OpenVINO CPU(
- コンテナーのステータス、ログ、ヘルスエンドポイントを使用して、起動状態を検証します。
- 次の内容を含む簡潔なデプロイレポートを作成します。
- 選択したランタイムプロファイル
- 使用したイメージソース(事前ビルド済みタグまたはローカルビルド)
- 固定のデフォルトタグとユーザー指定タグのどちらを使用したか
- アクセス URL と API ドキュメントの URL
- 警告(トークン/モデル/デバイスの制約)
使用するタイミング
- 「chat question and answer core をデプロイして」
- 「chatqna コンテナーを起動して」
- 「chatqna の docker compose を実行して」
- 「OpenVINO GPU プロファイルをデプロイして」
- 「ollama バックエンドをデプロイして」
確認する入力
コマンドを実行する前に、次の値を確認するか、推定してください。
- バックエンド/ランタイム:
openvinoまたはollama - デバイス:
cpuまたはgpu(GPU は OpenVINO でのみ有効です) - イメージソース:
- 事前ビルド済みのレジストリーイメージ(
REGISTRY、BACKEND_TAG、UI_TAG)、または - ローカルソースビルド(通常、タグは
latest)
- 事前ビルド済みのレジストリーイメージ(
- 任意のモデル設定パス:
MODEL_CONFIG_PATH - プライベート/ゲート付きモデル用の任意の Hugging Face トークン:
HUGGINGFACEHUB_API_TOKEN
ランタイム/デバイスの値が指定されていない場合は、openvino + cpu をデフォルトにします。
事前ビルド済みイメージを使用し、ユーザーがタグを指定していない場合は、固定のリリースタグをデフォルトとして使用します。
このスキルでのデプロイ操作には、Docker Compose コマンドのみを使用してください。
判断ロジック
- バックエンドが
ollamaの場合:- CPU パスを強制します
source scripts/setup_env.sh -b ollamaを使用します
- バックエンドが
openvinoで、デバイスがgpuの場合:source scripts/setup_env.sh -d gpuを使用します/dev/dri/render*が存在しない場合は警告し、CPU パスにフォールバックします
- それ以外の場合:
source scripts/setup_env.sh(OpenVINO CPU)を使用します
デプロイのワークフロー
sample-applications/chat-question-and-answer-core から実行します。
1. 事前確認
docker --version
docker compose version
事前ビルド済みイメージが要求され、ユーザーからタグが指定されていない場合は、固定のデフォルト値を使用します。
export REGISTRY="intel/"
export BACKEND_TAG="core_1.3.3" # or core_gpu_1.3.3 / core_ollama_1.3.3
export UI_TAG="core_1.3.3"
ユーザーが別のタグまたはレジストリーを明示的に指定した場合は、固定のデフォルト値ではなく、その値を使用します。
任意のモデル設定の上書き:
export MODEL_CONFIG_PATH="/absolute/path/to/config.yaml"
ゲート付き/プライベートモデル用の任意のトークン:
export HUGGINGFACEHUB_API_TOKEN="<token>"
2. プロファイルを選択して環境をエクスポート
次のいずれか 1 つだけを選択します。
# OpenVINO CPU (default)
source scripts/setup_env.sh
# OpenVINO GPU
source scripts/setup_env.sh -d gpu
# Ollama CPU
source scripts/setup_env.sh -b ollama
3. コンテナーを起動
デフォルトの起動モードはデタッチモードです。
docker compose -f docker/compose.yaml up -d
4. デプロイを検証
docker compose -f docker/compose.yaml ps
docker compose -f docker/compose.yaml logs --tail=150
curl -sf "http://${HOST_IP:-127.0.0.1}:8102/v1/chatqna/health"
デプロイ要求に対応する場合は、証拠としてコマンドの生出力を回答に含めてください。
- 期待されるサービスが
Upと表示されているdocker compose -f docker/compose.yaml psの出力。 - 次のコマンドによるヘルスチェックの出力と HTTP ステータス:
curl -sS -w "\nHTTP_STATUS:%{http_code}\n" "http://${HOST_IP:-127.0.0.1}:8102/v1/chatqna/health"
期待される準備完了の指標:
- バックエンドコンテナーが
runningである - UI コンテナーが
runningである - 選択したプロファイルの nginx コンテナーが
runningである - ヘルスエンドポイントが成功を返す
アクセス URL:
- UI:
http://<HOST_IP>:8102 - API ドキュメント:
http://<HOST_IP>:8102/v1/chatqna/docs
5. 停止またはリセット
# Stop and remove service containers
docker compose -f docker/compose.yaml down
# Evidence: show running containers after shutdown
docker ps
# Optional deep cleanup (only when explicitly requested)
docker compose -f docker/compose.yaml down -v --remove-orphans
停止要求に対応する場合は、コンテナーが終了している証拠として、docker ps の出力をそのまま回答に含めてください。
完全に停止した状態を示す証拠:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
障害への対応
setup_env.shが未対応のバックエンド/デバイスを返す場合:openvinoまたはollamaのいずれかに修正し、デバイスはcpu/gpuにします
- GPU が要求されているが、レンダーノードがない場合:
- OpenVINO CPU で続行し、フォールバックしたことを報告します
- コンテナーの起動に失敗した場合:
docker compose ... logs --tail=200を収集します- 失敗したサービス名と、最初に対処可能なエラーを報告します
- 起動後にヘルスチェックが失敗した場合:
- バックエンドのログを確認し、
HOST_IP、プロファイル、モデルのダウンロード状況を確認します - 初回起動ではモデルのダウンロード/変換に時間がかかる場合があることを記載します
- バックエンドのログを確認し、
完了条件
- 要求されたランタイムプロファイルが正常に起動していること。
docker compose psで想定されるサービスが実行中であることが確認できること。- ヘルスエンドポイント
/v1/chatqna/healthが応答すること。 - ユーザーにアクセス URL、API ドキュメントの URL、正確な停止コマンド、および使用したイメージタグを案内すること。
- デプロイのリクエストでは、準備完了の証拠として、生の
docker compose ps出力とHTTP_STATUS:200を含む生のヘルスチェック出力を提示すること。 - 停止のリクエストでは、終了の証拠として生の
docker ps出力を提示すること。また、完全に停止した状態では、次の形式と一致すること:CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES