Test delle implementazioni dei servizi di intelligenza artificiale

I servizi di intelligenza artificiale offrono funzionalità di inferenza online, che possono essere utilizzate per l'inferenza in tempo reale su nuovi dati. Per i casi d'uso che richiedono l'assegnazione di un punteggio in batch, è possibile eseguire un processo di distribuzione in batch per testare la distribuzione del servizio AI.

Metodi per testare le distribuzioni di servizi di intelligenza artificiale

I servizi di intelligenza artificiale offrono funzionalità di inferenza online, che possono essere utilizzate per l'inferenza in tempo reale su nuovi dati. Questa capacità di inferenza è utile per le applicazioni che richiedono previsioni in tempo reale, come i chatbot, i sistemi di raccomandazione e i sistemi di rilevamento delle frodi.

Per testare i servizi di intelligenza artificiale per l'inferenza online, è possibile utilizzare l'interfaccia utente watsonx.ai, la libreria client Python o l'API REST. Per ulteriori informazioni, consultare la sezione Implementazioni del servizio di inferenza AI per il punteggio online.

Per i casi d'uso che richiedono l'assegnazione di un punteggio in batch, creare ed eseguire un processo di distribuzione in batch. È possibile fornire qualsiasi input JSON valido come payload all'endpoint dell'API REST per l'inferenza. Per ulteriori informazioni, vedere Test delle distribuzioni batch per i servizi AI.

Test di implementazioni di servizi di intelligenza artificiale per il punteggio online

È possibile creare il proprio servizio di IA online utilizzando l'interfaccia utente di watsonx.ai, l'API REST o la libreria client Python watsonx.ai.

Inferenza con l'interfaccia utente

È possibile utilizzare l'interfaccia utente per l'inferenza dei servizi di intelligenza artificiale, fornendo qualsiasi payload JSON valido che sia in linea con lo schema del modello. Seguire i seguenti passaggi per l'inferenziazione dell'implementazione del servizio AI:

  1. Nello spazio di distribuzione o nel progetto, aprire la scheda Deployments e fare clic sul nome dell'installazione client.

  2. Fare clic sulla scheda Test per immettere un testo di richiesta e ottenere una risposta dall'asset distribuito.

  3. Immettere i dati del test in formato JSON per generare l'output in formato JSON.

    Limitazione:

    Non è possibile inserire dati di input in formato testo per testare la distribuzione del servizio AI. Per i test è necessario utilizzare il formato JSON.

    Distribuzione di servizi di intelligenza artificiale con schema JSON

Per eseguire l'inferenza delle applicazioni di streaming distribuite come servizi AI dall'interfaccia utente, procedere come segue:

  1. Nello spazio di distribuzione o nel progetto, aprire la scheda Deployments e fare clic sul nome dell'installazione client.

  2. Fare clic sulla scheda Anteprima per chattare con l'applicazione distribuita.

    Distribuzione di servizi di intelligenza artificiale con la chat

Inferenza con API REST

Nota:

Se il tuo servizio non viene utilizzato, potrebbe trovarsi in dormant quello stato. L'avvio di tale servizio non va a buon fine. Per verificare lo stato di tutte le tue distribuzioni, esegui questo comando:

curl -X GET "<Your watsonx URL>/ml/v4/deployments?space_id=<spaceid>&version=2025-08-01

Se la tua distribuzione è inattiva, esegui questo comando:

curl -X GET /ml/v4/deployments/<your deployment ID or name>?attempt_activation=true&version=2025-08-01

Assicurati che il version parametro sia almeno 2025-08-01. Le versioni precedenti dell'API funzionano in modo diverso.

Questo comando restituisce i metadati di distribuzione con lo stato initializing e il codice di stato 202.

Attendi qualche minuto, quindi esegui nuovamente il comando.

Se il comando restituisce i metadati di distribuzione e il codice di stato 200, è possibile avviare l'inferenza del servizio.

Utilizzare l'endpoint REST " /ml/v4/deployments/{id_or_name}/ai_service per l'inferenza dei servizi AI per il punteggio online (servizi AI che includono la funzione " generate() ):

# Any valid json is accepted in POST request to /ml/v4/deployments/{id_or_name}/ai_service
payload = {
    "mode": "json-custom-header",
    't1': 12345 ,
    't2': ["hello", "wml"],
    't3': {
        "abc": "def",
        "ghi": "jkl"
    }
}

response = requests.post(
    f'{HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}',
    headers=headers,
    verify=False,
    json=payload
)

print(f'POST {HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}', response.status_code)

from json.decoder import JSONDecodeError
try:
    print(json.dumps(response.json(), indent=2))
except JSONDecodeError:
    print(f"response text >>\n{response.text}")

print(f"\nThe user customized content-type >> '{response.headers['Content-Type']}'")

Utilizzare l'endpoint REST " /ml/v4/deployments/{id_or_name}/ai_service_stream per i servizi di intelligenza artificiale per le applicazioni di streaming (servizi di intelligenza artificiale che includono la funzione " generate_stream() ):

TOKEN=f'{client._get_icptoken()}'
%%writefile payload.json
{
    "sse": ["Hello" ,"WatsonX", "!"]
}
!curl -N \
    -H "Content-Type: application/json" -H  "Authorization: Bearer {TOKEN}" \
    {HOST}'/ml/v4/deployments/'{dep_id}'/ai_service_stream?version='{VERSION} \
    --data @payload.json

Output

id: 1 evento: messaggio dati: Ciao

id: 2 evento: messaggio dati: WatsonX

id: 3 evento: messaggio dati: !

id: 4 evento: eos

Inferenza con la libreria client Python

Utilizzare la funzione " run_ai_service per eseguire un servizio AI fornendo un payload di punteggio:

ai_service_payload = {"query": "testing ai_service generate function"}

client.deployments.run_ai_service(deployment_id, ai_service_payload)

Utilizzare la funzione " run_ai_service_stream per eseguire un servizio di intelligenza artificiale per applicazioni di streaming, fornendo un payload di punteggio.

ai_service_payload = {"sse": ["Hello", "WatsonX", "!"]}

for data in client.deployments.run_ai_service_stream(deployment_id, ai_service_payload):
    print(data)

Per ulteriori informazioni, consultare:

Test delle distribuzioni in batch per i servizi di intelligenza artificiale

È possibile utilizzare l'interfaccia utente watsonx.ai, la libreria client Python o l'API REST per creare ed eseguire un lavoro di distribuzione batch se è stata creata una distribuzione batch per il servizio AI (asset del servizio AI che contiene la funzione 'generate_batch() ).

Test con l'interfaccia utente

Per saperne di più sulla creazione e l'esecuzione di un lavoro di distribuzione batch per il servizio AI dall'interfaccia utente dello spazio di distribuzione, vedere Creazione di lavori negli spazi di distribuzione.

Test con la libreria client Python

Seguite questi passaggi per testare la distribuzione batch creando ed eseguendo un lavoro:

  1. Creare un lavoro per testare la distribuzione in batch del servizio AI:

    batch_reference_payload = {
        "input_data_references": [
            {
                "type": "connection_asset",
                "connection": {"id": "2d07a6b4-8fa9-43ab-91c8-befcd9dab8d2"},
                "location": {
                    "bucket": "wml-v4-fvt-batch-pytorch-connection-input",
                    "file_name": "testing-123",
                },
            }
        ],
        "output_data_reference": {
            "type": "data_asset",
            "location": {"name": "nb-pytorch_output.zip"},
        },
    }
    
    job_details = client.deployments.create_job(deployment_id, batch_reference_payload)
    job_uid = client.deployments.get_job_uid(job_details)
    print("The job id:", job_uid)
    
  2. Controllare lo stato del lavoro:

    ##  Get job status
    client.deployments.get_job_status(job_uid)
    

Ulteriori informazioni