Skip to main content

Provider personalizzati

Utilizzando un provider personalizzato (BYOK - Bring Your Own Key), puoi collegarti a endpoint API compatibili con OpenAI usando la tua chiave. Sono supportati anche provider locali come Ollama.

ProviderConfig

La classe ProviderConfig ha le seguenti proprietà.

Uso di base

Quando usi un provider personalizzato, il parametro model è obbligatorio.
Puoi specificarlo anche come array.

Ollama (provider locale)

Per provider locali come Ollama, apiKey non è necessaria.

Azure OpenAI

Quando usi Azure OpenAI, tieni presente quanto segue.
  • Specifica sempre type come azure (non openai)
  • Indica in baseUrl solo l’host (non includere path come /openai/v1)

Azure Managed Identity

Usa bearerTokenProvider quando il provider utilizza token di breve durata, come Azure Managed Identity. Il runtime chiama il callback a ogni richiesta al provider. Il callback riceve un array contenente providerName e sessionId e deve restituire il bearer token come stringa. L’esempio seguente chiama un servizio di token della tua applicazione.
Gestisci l’ottenimento, la memorizzazione nella cache e il rinnovo del token all’interno del callback.

Considerazioni importanti

Quando usi un provider personalizzato, il parametro model è obbligatorio. Se non lo specifichi, otterrai un errore.
  • Per gli endpoint Azure (*.openai.azure.com) usa sempre type: 'azure'
  • Specifica in baseUrl solo l’host; la costruzione del path è gestita automaticamente dall’SDK

Handler onListModels

Se usi un provider personalizzato in modalità BYOK, puoi configurare client->listModels() in modo che invochi un handler personalizzato invece del server CLI. Configuralo con il metodo listModelsUsing(). Poiché il client tende a essere già inizializzato, imposta sempre listModelsUsing() prima di listModels().
Passando null rimuovi l’handler e torni al comportamento predefinito del server CLI.
Se listModelsUsing() è impostato, listModels() non richiede una connessione al server CLI e non usa la cache.
Per le informazioni più recenti fai riferimento al repository GitHub.
Ultima modifica il 19 ottobre 2026