Verifica post-installazione

Verifica che il Model Gateway funzioni correttamente dopo l'installazione validando la salute del servizio, la connettività ai modelli, le richieste di inference, il comportamento di routing e la gestione degli errori.

Dopo aver installato e configurato il Model Inference Gateway, verifica che il deployment funzioni correttamente. Completa le seguenti attività di validazione nell'ordine indicato. Conferma che ogni passaggio abbia successo prima di procedere al successivo.

Verifica la salute del gateway

Controlla che il pod dell'Inference Service sia in esecuzione e tutti i container siano pronti:

oc get pods -n <bob-namespace> -l app=bob-inference

Controlla i log di avvio per l'inizializzazione del gateway. Un avvio riuscito registra la registrazione di ogni modello configurato. Gli errori di analisi delle credenziali o della configurazione emergono qui:

oc logs -n <bob-namespace> deploy/bob-inference --since=5m

Conferma che l'endpoint /v1/models del gateway risponda dall'interno del cluster — questo è il segnale più chiaro che è attivo e ha caricato la configurazione:

oc exec -n <bob-namespace> deploy/bob-gateway -- \
  curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .

Valida la connettività ai modelli

Controlla la risposta di /v1/models per ogni model_name atteso. Un modello che non è riuscito a connettersi (URL errato, errore di autenticazione, errore TLS) è assente dall'elenco o presente con uno stato di errore.

Nota:

Solo i modelli con exposed: true in model_info appaiono nell'elenco pubblico /v1/models. I modelli con exposed: false (ad esempio, il modello guardrail) non appaiono ma dovrebbero essere comunque raggiungibili internamente. L'assenza dall'elenco non è sempre un errore di connettività.

Testa l'inference del modello

Invia una richiesta di completamento di test minimale direttamente all'Inference Service dall'interno del cluster per il modello core e per il modello guardrail:

oc exec -n <bob-namespace> deploy/bob-gateway -- \
  curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model_name>",
    "messages": [{"role": "user", "content": "Say hello."}],
    "max_tokens": 10
  }' | jq .

Una risposta riuscita contiene un array choices con un campo message.content.

Errori comuni:

Stato HTTPCausa
401 UnauthorizedCredenziali non valide o permessi insufficienti
404 Not FoundL'ID del modello specificato non esiste nel provider
502 Bad GatewayL'endpoint del modello upstream non è raggiungibile
Attenzione:

Il modello guardrail deve essere raggiungibile e in grado di elaborare le richieste. Se il modello guardrail non è disponibile, IBM Bob rifiuta tutte le richieste di inference. Assicurati che la validazione del guardrail abbia successo prima di considerare l'installazione completa.

Valida il routing dei modelli

Conferma che il modello principale instradi correttamente verificando che il campo model nella risposta corrisponda al model_name richiesto.

Se fallbacks sono configurati per qualsiasi voce del modello, valida il percorso di fallback puntando temporaneamente il base_url del modello principale a un host irraggiungibile e confermando che il gateway esegua il fallback al modello successivo nell'elenco. Ripristina il base_url corretto dopo il test.

Per i modelli con exposed: false, conferma che il routing interno li risolva ancora correttamente anche se non appaiono nell'elenco pubblico dei modelli.

Valida la gestione degli errori

Esegui i seguenti test negativi deliberati per confermare che il gateway gestisca i guasti in modo corretto:

TestCome attivarloComportamento atteso
Chiave API non validaImposta temporaneamente un valore di chiave errato nel secretIl gateway restituisce 401, non va in crash
Endpoint irraggiungibileImposta base_url su un host non validoIl gateway restituisce 502 o 503, registra l'errore upstream
ID modello non validoImposta model su un ID inesistenteIl provider restituisce 404, l'errore viene esposto al chiamante
Variabile d'ambiente del secret mancanteRimuovi una chiave da bob.modelGateway.secretsErrore al momento della richiesta con un errore registrato che fa riferimento alla variabile mancante
Certificato TLS scadutoFornisci un certificato scaduto come ca_cert_pemErrore di handshake TLS registrato al momento della richiesta

Raccogli log e risolvi i problemi

Trasmetti i log in tempo reale durante una richiesta di test per osservare le decisioni di routing del gateway in tempo reale:

oc logs -n <bob-namespace> deploy/bob-inference -f

Raccogli un dump completo dei log da condividere con il supporto:

oc logs -n <bob-namespace> deploy/bob-inference --since=1h > bob-inference.log

Pattern di log chiave:

Pattern di logSignificato
Model registered successfullyIl gateway ha caricato la voce del modello senza errori
connection refused / no route to hostErrore di connettività all'endpoint del modello
401 / 403 from upstreamLa credenziale è errata o manca delle autorizzazioni richieste
certificate signed by unknown authorityIl certificato CA è mancante o non corretto in ca_cert_pem
environment variable not foundUn secret referenziato con env.* non è nei secret montati

Per gli errori a livello di evento (ad esempio, errori di mount del secret che impediscono l'avvio del container):

oc describe pod -n <bob-namespace> -l app=inference-service

Cambio del modello di inference core

Per passare da un modello di inference core supportato a un altro post-installazione:

Assicurati che il nuovo modello sia deployato

Conferma che il nuovo modello sia deployato e in servizio. Vedere Infrastruttura di model serving.

Aggiorna il file di configurazione del model gateway

Aggiorna il tuo model-gateway.yaml per fare riferimento al nuovo modello. Vedere Configurazione del Model Gateway.

Applica la modifica

Applica la configurazione aggiornata usando bobctl update-model-config:

bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets

Vedere Deployment della configurazione per il riferimento completo ai flag.

Come valuti questo argomento?