Codifica e distribuzione di servizi AI con l'interfaccia a riga di comando Cloud Pak for Data (CPDCTL)
CPDCTL è uno strumento a riga di comando per la distribuzione e la gestione dei servizi AI sulla piattaforma IBM Cloud Pak for Data (CPD). Fornisce un modo semplice e snello per distribuire i servizi di intelligenza artificiale, eliminando la necessità di configurazione manuale e riducendo il rischio di errori. È possibile utilizzare l'interfaccia a riga di comando Cloud Pak for Data (CPDCTL) per distribuire in modo programmatico le soluzioni di IA generativa che utilizzano i servizi di IA.
Panoramica dei processi
Il processo di distribuzione di un servizio AI con CPDCTL prevede la preparazione dell'ambiente installando CPDCTL e configurando le variabili d'ambiente, la creazione di un'istanza del servizio AI, il caricamento del codice per il servizio AI e la distribuzione del servizio AI per renderlo disponibile all'uso. Il processo di distribuzione viene avviato eseguendo una serie di comandi CPDCTL, tra cui la creazione di un'istanza del servizio AI, il caricamento del codice e la distribuzione del servizio AI. Il servizio di intelligenza artificiale implementato può essere consultato attraverso un endpoint API REST, consentendo previsioni e processi decisionali in tempo reale. Durante tutto il processo, CPDCTL fornisce un modo semplice ed efficiente per distribuire, gestire e scalare i servizi di IA.
Prerequisiti
Prima di distribuire i servizi AI con CPDCTL, è necessario soddisfare i seguenti prerequisiti:
- Installare e configurare il CPDCTL. Per ulteriori informazioni, vedere IBM Cloud Pak for Data Command Line Interface.
- Creare uno spazio di distribuzione con accesso a watsonx.ai.
- Salvare l'ID dello spazio di distribuzione, il servizio URL e la chiave API come variabili d'ambiente:
SPACE_ID
,WML_URL
, eAPI_KEY
. - Preparare le specifiche del software
runtime-24.1-py3.11
con accesso alanggraph: SOFT_SPEC
.
Preparazione del codice
Scaricare il codice di servizio AI:
deployable_code.py
.wget -O deployable_code.py https://raw.githubusercontent.com/IBM/watsonx-ai-samples/refs/heads/ai-service-cli-sample/cloud/definitions/ai_service/deployable_function_ai_service_cli.py
È necessario fornire i siti
space_id
eurl
al servizio AI.Preparare un file
gzip
con il file di codice.gzip -k deployable_code.py
Creazione di un'istanza di servizio AI
Creare un'istanza del servizio AI utilizzando CPDCTL:
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
Restituisce informazioni di base sull'istanza di servizio AI creata. Utilizzare il flag --output
JSON per ottenere dati più dettagliati.
- Salvare l'ID ottenuto come
AI_SERVICE_ID
.
Caricamento del codice nell'istanza del servizio AI
Caricare il codice nell'istanza del servizio AI usando CPDCTL:
cpdctl wx-ai ai-service upload-code \
--space-id $SPACE_ID \
--ai-service-id $AI_SERVICE_ID \
--upload-code deployable_code.py.gz
Distribuire il servizio AI
Distribuire il servizio AI utilizzando CPDCTL:
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
Salvare il URL trovato nella risposta responsabile dell'accesso al metodo generate_stream
come URL_STREAM
.
Fornire un oggetto parametri personalizzato
Durante la creazione di un'installazione client, è possibile fornire un oggetto parametri personalizzato utilizzando il flag --custom
. Questo flag accetta un oggetto JSON con le coppie chiave-valore.
Ad esempio, se si vuole fornire il seguente oggetto personalizzato:
{
"avatar_icon": "Bot",
"avatar_color": "background",
"placeholder_image": "image4.png",
"sample_questions": [
"Question 1",
"Question 2"
]
}
Puoi utilizzare il seguente comando:
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"]}'
In alternativa, si può preparare un file JSON con i parametri personalizzati e passare il percorso di questo file usando il flag --custom
con il simbolo @
. Ad esempio:
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
Assicurarsi di sostituire path_to_file_with_params.json
con il percorso effettivo del file JSON.
Generazione del token Cloud Identity and Access Management
Per chiamare l'endpoint di distribuzione, è necessario fornire un token IAM. Generare un token IAM utilizzando curl
:
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"
Salvate il token ottenuto come IAM_TOKEN
.
Inferenza del punto finale
Inviare una richiesta all'endpoint utilizzando 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
Restituisce un flusso di output da un modello.
Argomento principale: Distribuzione di servizi AI con codifica diretta