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 classeProviderConfig ha le seguenti proprietà.
Uso di base
Quando usi un provider personalizzato, il parametromodel è obbligatorio.
Ollama (provider locale)
Per provider locali come Ollama,apiKey non è necessaria.
Azure OpenAI
Quando usi Azure OpenAI, tieni presente quanto segue.- Specifica sempre
typecomeazure(nonopenai) - Indica in
baseUrlsolo l’host (non includere path come/openai/v1)
Azure Managed Identity
UsabearerTokenProvider 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.
Comando per l’API key
Se usi API key soggette a rotazione, conapiKeyCommand puoi eseguire un comando prima di ogni richiesta al provider per ottenere la chiave più recente. Il comando viene eseguito dal runtime Copilot, non da questo pacchetto.
apiKeyCommanddeve esserenulloppure una stringa non vuota. Una stringa vuota o composta solo da spazi sollevaInvalidArgumentExceptionprima dell’invio della richiesta. Anche un valore non stringa nel formato array sollevaInvalidArgumentException. Passando un valore non stringa al costruttore diProviderConfig, il controllo dei tipi di PHP solleva unTypeError. Il messaggio dell’eccezione non include il comando.- Il fallimento del comando viene trattato dal runtime come fallimento del turno e nessuna richiesta viene inviata al modello.
- Se specifichi
bearerTokenProvider, questo ha la priorità eapiKeyCommandnon viene eseguito. - Tratta la stringa del comando come riservata, al pari delle credenziali, e non riportarla nei log o nei messaggi di eccezione. Anche questo pacchetto non registra nei log il comando né il suo output.
apiKeyCommandè disponibile solo inProviderConfig(non supportato inNamedProviderConfig).
Considerazioni importanti
- Per gli endpoint Azure (
*.openai.azure.com) usa sempretype: 'azure' - Specifica in
baseUrlsolo l’host; la costruzione del path è gestita automaticamente dall’SDK
Handler onListModels
Se usi un provider personalizzato in modalità BYOK, puoi configurareclient->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().
null rimuovi l’handler e torni al comportamento predefinito del server CLI.
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.