Inferire un modello

Grazie all'inferenza, puoi interagire con i modelli di base e valutare le risposte generate dall'intelligenza artificiale per le tue applicazioni. La funzionalità di inferenza offre un'API pronta per l'uso in produzione che consente di integrare funzionalità di IA conversazionale nei propri flussi di lavoro, testare il comportamento dei modelli e sviluppare applicazioni intelligenti.

Inference risolve la sfida legata all'implementazione e al ridimensionamento dei modelli di IA, fornendo accesso immediato ai modelli di base tramite API familiari e conformi agli standard del settore. Che tu stia realizzando un prototipo di chatbot, sviluppando un assistente basato sull'intelligenza artificiale o integrando la comprensione del linguaggio naturale nella tua applicazione, l'inferenza elimina la complessità legata all'hosting dei modelli e ti permette di concentrarti sulla creazione di valore per i tuoi utenti.

Prima di iniziare

  • Crea un account " IBM Cloud " con pagamento a consumo o in abbonamento. Non sono supportati gli account di prova. Per ulteriori informazioni o per effettuare l'upgrade del tuo account, consulta la sezione " Tipi di account ".

  • Crea un progetto " Red Hat AI Inference ".

  • Assicurati di disporre del ruolo "Writer" o di un ruolo superiore nel servizio " Red Hat AI Inference ". Per ulteriori informazioni, vedi Gestione dell'accesso IAM.

Inferire un modello utilizzando la console

La console offre un ambiente di prova interattivo in cui è possibile sperimentare diversi modelli, testare i prompt e perfezionare le interazioni con l'IA prima di integrarle nelle proprie applicazioni.

  1. Nella console, apri il servizio " Red Hat AI Inference " e fai clic sul nome del tuo progetto per aprirlo.

  2. Dalla pagina del progetto, clicca su " Playground " per aprire l'ambiente di test per l'inferenza.

  3. Avvia la tua sessione di chat. Puoi personalizzare la tua sessione di chat con le seguenti opzioni:

Selezione del modello
È possibile scegliere da un elenco di modelli di base.
Prompt di sistema
Il prompt di sistema indica al modello come condurre la finestra di dialogo.
Impostazioni di inferenza
Modifica i file Casualità, Ripetizione e Limiti di risposta.
Cronologia delle chat
È possibile filtrare la cronologia delle chat per Modello o intervallo di date.

Inferire un modello utilizzando l'API

Grazie all'API, è possibile integrare a livello di programmazione funzionalità di intelligenza artificiale nelle proprie applicazioni utilizzando endpoint " OpenAI-compatible " conformi agli standard del settore. Questo approccio è fondamentale per le implementazioni in ambiente di produzione in cui è necessario automatizzare le interazioni basate sull'intelligenza artificiale, gestire elevati volumi di richieste o integrare l'intelligenza artificiale conversazionale nei sistemi esistenti. L'API offre la flessibilità necessaria per personalizzare il comportamento dei modelli, gestire la cronologia delle conversazioni e scalare le funzionalità basate sull'intelligenza artificiale di pari passo con la tua applicazione.

Attualmente sono supportate le seguenti API:

Suggerimenti per la chat /v1/chat/completions
Crea - Documentazione di OpenAI
Get - Documentazione di OpenAI
Elenco - Documentazione di OpenAI
Elimina - Documentazione di OpenAI
Modelli /v1/models
Get - Documentazione di OpenAI
Elenco - Documentazione di OpenAI

Consulta le sezioni seguenti per vedere alcuni esempi su come eseguire operazioni di inferenza comuni utilizzando l'API.

Endpoint API

Tutte le richieste API utilizzano il seguente formato di base URL:

https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference

Sostituisci <project_id> con l'ID del tuo progetto. Per trovarlo, vai su Red Hat AI Inference projects e apri il tuo progetto.

Autenticazione all'API

Prima di poter effettuare chiamate API, è necessario autenticare le richieste. È possibile effettuare l'autenticazione utilizzando un token bearer oppure una chiave API di tipo " IBM Cloud ".

Autenticazione tramite token bearer

I token al portatore garantiscono un accesso sicuro alle funzionalità di inferenza del tuo progetto e vengono generati dalla tua chiave API IBM Cloud. I token al portatore scadono dopo un determinato periodo, pertanto devono essere aggiornati periodicamente.

L'esempio seguente mostra come recuperare un token bearer.

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

Il token al portatore è l' access_token presente nella risposta. Questi token hanno una data di scadenza e devono essere aggiornati periodicamente.

{"access_token":"xxxxx","refresh_token":"not_supported","token_type":"Bearer","expires_in":3600,"expiration":1770058324,"scope":"ibm openid"}

Autenticazione tramite chiave API

Esistono due modi per effettuare l'autenticazione con una chiave API: è possibile creare un ID servizio, che rappresenta il metodo consigliato per gestire l'accesso e i controlli. Se crei un ID servizio, devi creare anche un creare una chiave API per l'ID del servizio, che utilizzerai per l'autenticazione. La guida introduttiva " Red Hat AI Inference " spiega come creare un ID servizio e una chiave API per l'autenticazione a livello di programmazione.

È inoltre possibile effettuare l'autenticazione utilizzando una chiave API utente, anziché una chiave API con ID servizio. Per ulteriori informazioni, vedi Gestione delle chiavi API utente.

Generazione di un completamento della chat

I completamenti delle chat costituiscono il fulcro dell'inferenza. Consentono di inviare messaggi a un modello di base e di ricevere risposte generate dall'intelligenza artificiale. Ecco come si creano esperienze conversazionali, si ottengono risposte alle domande, si generano contenuti o si elaborano input in linguaggio naturale. È possibile controllare il flusso della conversazione fornendo indicazioni di sistema che definiscono il comportamento del modello e conservano la cronologia dei messaggi per interazioni sensibili al contesto.

L'esempio seguente mostra come generare un completamento della chat. Per un elenco completo dei parametri disponibili, consultare la sezione “OpenAI: completamento della chat ”.

curl https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>" -d '{
 "model": "granite-4-0-h-small",
 "messages": [
   {
     "role": "developer",
     "content": "You are a helpful assistant"
   },
   {
     "role": "user",
     "content": "Hello! Tell me about yourself"
   }
 ]
}'
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.create(
  model="granite-4-0-h-small",
  messages=[
    {"role": "developer", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello! Tell me about yourself"}
  ]
)
print(completion.choices[0].message)

Ottenere il completamento di una chat tramite ID

Il recupero di una specifica conversazione in base all'ID è utile per scopi di controllo, debug o analisi delle interazioni passate.

L'esempio seguente mostra come recuperare un completamento della chat in base al suo ID. Per un elenco completo dei parametri disponibili, consultare la sezione " Get Chat Completion ".

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completion = client.chat.completions.retrieve(completion_id="<completion_id>")
print(completion)

Elenco delle completazioni della chat

L'elenco dei completamenti della chat offre una panoramica di tutte le attività di inferenza, consentendoti di monitorare i modelli di utilizzo, tenere traccia dei costi e analizzare il modo in cui la tua applicazione interagisce con i modelli di base. Ciò risulta particolarmente utile per comprendere il comportamento degli utenti, individuare i casi d'uso più diffusi e ottimizzare la propria strategia di integrazione dell'IA.

L'esempio seguente mostra come elencare i completamenti della chat. Per un elenco completo dei parametri disponibili, consultare la sezione "Completamenti della chat ".

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
completions = client.chat.completions.list()
print(completions)

Eliminazione di un completamento della chat

L'eliminazione dei completamenti delle chat consente di ripulire i dati di test e di rispettare i requisiti in materia di privacy.

L'esempio seguente mostra come eliminare un completamento della chat. Per un elenco completo dei parametri disponibili, consultare la sezione " Completamento della chat di cancellazione ".

curl -X DELETE https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/chat/completions/<completion_id> \
-H "Content-Type: application/json" -H "Authorization: Bearer <bearer_token>"

Elenco dei modelli

Scopri quali modelli di base sono disponibili nel tuo progetto e comprendi le loro funzionalità, in modo da poter utilizzare il modello più adatto al tuo caso d'uso specifico e ottimizzarlo in base a fattori quali la qualità della risposta, la velocità o il costo.

L'esempio seguente mostra come elencare i modelli. Per un elenco completo dei parametri disponibili, consultare la sezione “Elenco dei modelli” all’indirizzo OpenAI.

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
models = client.models.list()
print(models)

Ottenere un modello tramite ID

Ottenere informazioni dettagliate su un modello specifico ti aiuta a comprenderne le caratteristiche, le funzionalità e i limiti prima di utilizzarlo nella tua applicazione.

L'esempio seguente mostra come recuperare un modello in base all'ID. Per un elenco completo dei parametri disponibili, consultare la sezione " Recupero del modello ".

curl -L 'https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference/models/<model>' \
-H 'Accept: application/json' -H "Authorization: Bearer <bearer_token>"
from openai import OpenAI
client = OpenAI(
  api_key="<bearer_token>",
  base_url="https://us-east.rhai.ibm.com/v1/projects/<project_id>/inference",
)
model = client.models.retrieve("<model>")  # for example, "granite-4-0-h-small"
print(model)