Benutzerdefinierte Provider
Mit benutzerdefinierten Providern (BYOK – Bring Your Own Key) können Sie mit eigenen API-Schlüsseln OpenAI-kompatible API-Endpunkte anbinden. Lokale Provider wie Ollama werden ebenfalls unterstützt.ProviderConfig
Die KlasseProviderConfig hat folgende Eigenschaften.
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
baseUrl | string | Erforderlich. URL des API-Endpunkts |
type | string|null | Provider-Typ. openai (Standard), azure, anthropic |
wireApi | string|null | API-Format (nur openai/azure). completions (Standard) oder responses |
apiKey | string|null | API-Schlüssel. Für lokale Provider wie Ollama nicht erforderlich |
bearerToken | string|null | Für Bearer-Token-Authentifizierung. Hat Vorrang vor apiKey |
azure | array|null | Azure-spezifische Optionen, z. B. ['apiVersion' => '2024-10-21'] |
Grundlegende Verwendung
Wenn Sie einen benutzerdefinierten Provider verwenden, ist der Parametermodel erforderlich.
Ollama (lokaler Provider)
Für lokale Provider wie Ollama istapiKey nicht erforderlich.
Azure OpenAI
Beachten Sie bei der Verwendung von Azure OpenAI Folgendes.- Für
typemuss zwingendazureangegeben werden (nichtopenai) - In
baseUrlnur den Host angeben (keine Pfade wie/openai/v1mitgeben)
Wichtige Hinweise
- Verwenden Sie bei Azure-Endpunkten (
*.openai.azure.com) unbedingttype: 'azure' - Geben Sie in
baseUrlnur den Host an; die Pfadbildung übernimmt das SDK automatisch
onListModels-Handler
Wenn Sie im BYOK-Modus einen benutzerdefinierten Provider einsetzen, können Sieclient->listModels() so konfigurieren, dass statt des CLI-Servers ein benutzerdefinierter Handler aufgerufen wird.
Konfigurieren Sie ihn mit der Methode listModelsUsing(). Da der Client leicht initialisiert wird, setzen Sie listModelsUsing() stets vor listModels().
null wird der Handler aufgehoben, und das Standardverhalten des CLI-Servers wird wiederhergestellt.
listModelsUsing() konfiguriert ist, benötigt listModels() keine Verbindung zum CLI-Server und verwendet auch keinen Cache.
Aktuelle Informationen finden Sie im GitHub-Repository.