0 / 0
資料の 英語版 に戻る
Cloud Pak for Data コマンドラインインターフェース(CPDCTL)を使用したAIサービスの展開
最終更新: 2025年1月23日
Cloud Pak for Data コマンドラインインターフェース(CPDCTL)を使用したAIサービスの展開

CPDCTLは、 IBM Cloud Pak for Data (CPD)プラットフォーム上でAIサービスを展開および管理するためのコマンドラインツールです。 これは、AIサービスの展開をシンプルかつ合理的に行う方法を提供し、手動での設定を不要にし、エラー発生のリスクを低減します。 Cloud Pak for Data (CPDCTL)コマンドラインインターフェイスを使用して、AIサービスをプログラムで使用する生成型AIソリューションを展開することができます。

プロセスの概要

CPDCTL を使用して AI サービスをデプロイするプロセスには、CPDCTL のインストールと環境変数の設定による環境の準備、AI サービスインスタンスの作成、AI サービスのコードのアップロード、AI サービスのデプロイによる利用可能化が含まれます。 デプロイメントは、AIサービスインスタンスの作成、コードのアップロード、AIサービスの展開を含む一連のCPDCTLコマンドを実行することで開始されます。 展開されたAIサービスは、REST APIエンドポイントを通じてアクセスでき、リアルタイムでの予測と意思決定が可能になります。 CPDCTLは、AIサービスの展開、管理、拡張をシンプルかつ効率的に行う方法を提供します。

前提条件

CPDCTLでAIサービスを展開する前に、以下の前提条件を満たす必要があります

  1. CPDCTLをインストールして設定します。 詳細については 、 IBM Cloud Pak for Data コマンドラインインターフェースを参照してください。
  2. Create a deployment space with access to watsonx.ai.
  3. Save the deployment space ID, service URL, and API key as environment variables: SPACE_ID, WML_URL, and API_KEY.
  4. runtime-24.1-py3.11 のソフトウェア仕様書を用意し、 langgraph: SOFT_SPEC にアクセスできるようにする。

コードの準備

  1. AIサービスコードをダウンロード: deployable_code.py

    wget -O deployable_code.py https://raw.githubusercontent.com/IBM/watson-machine-learning-samples/refs/heads/ai-service-cli-sample/cloud/definitions/ai_service/deployable_function_ai_service_cli.py
    

    AIサービスに space_idurl を提供する必要があります。

  2. コードファイルを gzip ファイルに用意します。

    gzip -k deployable_code.py
    

AIサービスインスタンスの作成

  1. CPDCTL を使用して AI サービスインスタンスを作成します

    cpdctl wx-ai ai-service create \
      --space-id $SPACE_ID \
      --name ai-service-app \ 
      --description "Sample AI Service" \
      --tags langgraph,example \
      --code-type python \
      --software-spec-id $SOFT_SPEC
    

これは作成されたAIサービスインスタンスの基本情報を返します。 より詳細なデータを得るには、 --output JSON フラグを使用してください。

  1. 取得したIDを AI_SERVICE_ID として保存します。

AIサービスインスタンスへのコードのアップロード

CPDCTL を使用して、AI サービスインスタンスにコードをアップロードします

cpdctl wx-ai ai-service upload-code \
  --space-id $SPACE_ID \
  --ai-service-id $AI_SERVICE_ID \
  --upload-code deployable_code.py.gz

AIサービスを展開する

CPDCTL を使用して AI サービスを展開します

cpdctl wx-ai deployment create \
  --space-id $SPACE_ID \
  --asset-id $AI_SERVICE_ID \
  --name ai-service-deployment \
  --description "Deployed AI Service" \
  --tags ai_service,example,langgraph \
  --online '{}' \
  --output json

generate_stream メソッドへのアクセスを担当するレスポンス内の URL を URL_STREAM として保存します。

カスタムパラメータオブジェクトの提供

When creating a deployment, you can provide a custom parameters object by using the --custom flag. このフラグは、キーと値のペアを持つJSONオブジェクトを受け入れます。

例えば、以下のカスタムオブジェクトを提供したい場合:

{
  "avatar_icon": "Bot",
  "avatar_color": "background",
  "placeholder_image": "image4.png",
  "sample_questions": [
    "Question 1",
    "Question 2"
  ]
}

次のようなコマンドを使用できます。

cpdctl wx-ai deployment create \
  --space-id $SPACE_ID \
  --asset-id $AI_SERVICE_ID \
  --name ai-service-deployment \
  --description "Deployed AI Service" \
  --tags ai_service,example,langgraph \
  --online '{}' \
  --output json \
  --custom '{"avatar_icon": "Bot", "avatar_color": "background", "placeholder_image": "image4.png", "sample_questions": ["Question 1", "Question 2"]}'

または、カスタムパラメータを含むJSONファイルを用意し、 @ シンボルとともに --custom フラグを使用して、このファイルのパスを渡すこともできます。 例:

cpdctl wx-ai deployment create \
  --space-id $SPACE_ID \
  --asset-id $AI_SERVICE_ID \
  --name ai-service-deployment \
  --description "Deployed AI Service" \
  --tags ai_service,example,langgraph \
  --online '{}' \
  --output json \
  --custom @path_to_file_with_params.json

path_to_file_with_params.json を、お客様のJSONファイルへの実際のパスに置き換えてください。

Cloud Identity and Access Management トークンの生成

デプロイメントを呼び出すには、IAMトークンを提供する必要があります。 curl を使用して IAM トークンを生成します

curl -X POST \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "Accept: application/json" \
  --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
  --data-urlencode "apikey=$API_KEY" \
  "https://iam.test.cloud.ibm.com/identity/token"

取得したトークンを IAM_TOKEN として保存します。

エンドポイントの推論

curl を使用してエンドポイントにリクエストを送信します

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $IAM_TOKEN" \
  -d "{\"space_id\": \"$SPACE_ID\", \"url\": \"$WML_URL\", \"question\": \"What is the total sum of the numbers 11,   13, and 20? Remember to always return the final result using the last tool message.\"}" \
  $URL_STREAM

これは、モデルからの出力のストリームを返します。

親トピック: 直接コーディングによるAIサービスの展開