Azure OpenAI
So konfigurieren Sie Azure OpenAI in LibreChat über die `librechat.yaml` Datei, einschließlich Deployments, Modellgruppen, mehreren Regionen und zugehörigen Einstellungen.
Azure OpenAI Integration für LibreChat
LibreChat unterstützt Azure OpenAI API-Dienste als erstklassigen endpoint. Um Azure OpenAI innerhalb von LibreChat zu nutzen, konfigurieren Sie die librechat.yaml Datei für Ihr Setup. Dieses Dokument behandelt den Einrichtungsprozess für die Verwendung mehrerer Deployments und Modelle.
Beispiel
Ein Beispiel für eine Konfiguration, die viele der unten beschriebenen Optionen und Funktionen enthält:
endpoints:
azureOpenAI:
# Endpoint-level configuration
titleModel: "llama-70b-chat"
plugins: true
assistants: true
groups:
# Group-level configuration
- group: "my-resource-westus"
apiKey: "${WESTUS_API_KEY}"
instanceName: "my-resource-westus"
version: "2024-03-01-preview"
# Model-level configuration
models:
gpt-4-vision-preview:
deploymentName: gpt-4-vision-preview
version: "2024-03-01-preview"
gpt-3.5-turbo:
deploymentName: gpt-35-turbo
gpt-4-1106-preview:
deploymentName: gpt-4-1106-preview
# Group-level configuration
- group: "mistral-inference"
apiKey: "${AZURE_MISTRAL_API_KEY}"
baseURL: "https://Mistral-large-vnpet-serverless.region.inference.ai.azure.com/v1/chat/completions"
serverless: true
# Model-level configuration
models:
mistral-large: true
# Group-level configuration
- group: "my-resource-sweden"
apiKey: "${SWEDEN_API_KEY}"
instanceName: "my-resource-sweden"
deploymentName: gpt-4-1106-preview
version: "2024-03-01-preview"
assistants: true
# Model-level configuration
models:
gpt-4-turbo: trueDieses Beispiel folgt der Azure OpenAI Endpoint Configuration Docs.
Jede Konfigurationsebene wird im jeweiligen Abschnitt detailliert beschrieben:
Einrichtung
-
librechat.yamlzum Bearbeiten öffnen: Verwenden Sie Ihren bevorzugten Texteditor oder Ihre IDE, um die Dateilibrechat.yamlzu öffnen und zu bearbeiten.- Optional: Verwenden Sie einen Remote- oder benutzerdefinierten Dateipfad mit der folgenden Umgebungsvariable:
CONFIG_PATH="/alternative/path/to/librechat.yaml" -
Azure OpenAI Einstellungen konfigurieren: Befolgen Sie die unten aufgeführte Struktur, um Ihre Azure OpenAI Einstellungen einzutragen, einschließlich API-Schlüsseln, Instanznamen, Modellgruppen und anderen Konfigurationen.
-
Veraltete Einstellungen entfernen: Wenn Sie veraltete Konfigurationen verwenden, entfernen Sie diese. Der LibreChat-Server erkennt diese ebenfalls und weist Sie darauf hin.
-
Änderungen speichern: Speichern Sie die
librechat.yamlDatei. -
LibreChat neu starten: Starten Sie Ihre LibreChat-Anwendung neu, damit die aktualisierte Konfiguration geladen wird.
Erforderliche Felder
Um Azure OpenAI in LibreChat zu integrieren, müssen bestimmte Felder in Ihrer librechat.yaml Datei konfiguriert werden. Diese Felder werden durch eine Kombination aus benutzerdefinierten Variablen und Umgebungsvariablen validiert. Die detaillierten Anforderungen folgen hier.
Endpoint-Level Konfiguration
Globale Azure-Einstellungen:
Titel- und Konversationseinstellungen:
| Key | Type | Description | Example |
|---|---|---|---|
| titleModel | string | Gibt das Modell an, das für die Generierung von Konversationstiteln verwendet werden soll. Wenn keine Angabe gemacht wird, ist das Standardmodell auf `gpt-3.5-turbo` eingestellt, was dazu führt, dass keine Titel erstellt werden, falls dieses Modell nicht verfügbar ist. Sie können dies auch so einstellen, dass dynamisch das aktuelle Modell verwendet wird, indem Sie es auf `current_model` setzen. | titleModel: |
| plugins | boolean | Ermöglicht die Nutzung von Plugins über Azure. Auf `true` setzen, um die Unterstützung des Plugins endpoint über Ihre Azure-Konfiguration zu aktivieren. Standard: `false`. | plugins:false |
| assistants | boolean | Ermöglicht die Nutzung von Assistants über Azure. Auf `true` setzen, um den Assistants endpoint über Ihre Azure-Konfiguration zu aktivieren. Standard: `false`. Hinweis: Dies erfordert eine mit Assistants kompatible Region. | assistants:false |
| summarize | boolean | Aktiviert die Konversationszusammenfassung für alle Azure Modelle. Auf `true` setzen, um die Zusammenfassung zu aktivieren. Standard: `false`. | summarize:false |
| summaryModel | string | Gibt das Modell an, das für die Generierung von Konversationszusammenfassungen verwendet werden soll. Falls nicht angegeben, ist das Standardverhalten die Verwendung des ersten Modells im `default`-Array der ersten Gruppe. | summaryModel: |
| titleConvo | boolean | Aktiviert die Generierung von Konversationstiteln für alle Azure Modelle. Auf `true` setzen, um die Titelgenerierung zu aktivieren. Standard: `false`. | titleConvo:false |
| titleMethod | string | Steuert die Methode, die zum Generieren von Konversationstiteln verwendet wird. Gültige Werte: "completion" (Standard), "structured", "functions" (veralteter Alias für "structured"). | titleMethod:completion |
| titlePrompt | string | Benutzerdefinierter Prompt für die Titelgenerierung. Muss den Platzhalter {convo} für den Konversationsinhalt enthalten. | See documentation for default prompt |
| titlePromptTemplate | string | Vorlage für die Formatierung von Konversationsinhalten. Muss die Platzhalter {input} und {output} enthalten. Standard: "User: {input} AI: {output}" | titlePromptTemplate: |
| titleEndpoint | string | Alternativer endpoint zur Verwendung bei der Titelgenerierung. Akzeptierte Werte: openAI, azureOpenAI, google, anthropic, bedrock oder benutzerdefinierte endpoint-Namen. | titleEndpoint: |
Gruppenkonfiguration:
| Key | Type | Description | Example |
|---|---|---|---|
| groups | array | Gibt die Liste der Azure OpenAI Modellgruppen an. Jede Gruppe repräsentiert eine Reihe von Modellen mit gemeinsamen Konfigurationen. Das Feld groups ist ein Array von Objekten, wobei jedes Objekt die Einstellungen für eine bestimmte Gruppe definiert. Dies ist ein erforderliches Feld auf endpoint-Ebene, und es muss mindestens eine Gruppe definiert sein. Die Konfigurationen auf Gruppenebene werden im Abschnitt Group-Level Configuration detailliert beschrieben. | # groups:[] |
Benutzerdefinierte Reihenfolge (Optional):
| Key | Type | Description | Example |
|---|---|---|---|
| customOrder | number | Ermöglicht es Ihnen, eine benutzerdefinierte Reihenfolge für den Azure endpoint in der Benutzeroberfläche festzulegen. Höhere Zahlen erscheinen weiter unten in der Liste. Falls nicht angegeben, wird die Standardreihenfolge durch die Reihenfolge bestimmt, in der die endpoints in der `librechat.yaml` Datei definiert sind. | customOrder: |
Die Option customOrder ist auskommentiert, da sie optional ist.
Beispiel für diese Einstellungen auf endpoint-Ebene in Ihrer librechat.yaml Datei:
endpoints:
azureOpenAI:
titleModel: "gpt-3.5-turbo-1106"
plugins: true
assistants: true
summarize: true
summaryModel: "gpt-3.5-turbo-1106"
titleConvo: true
titleMethod: "functions"
groups:
# ... (group-level and model-level configurations)Konfiguration auf Gruppenebene
Die Felder, die in der Custom Config (librechat.yaml) Datei konfigurierbar sind. Weitere Informationen zu den einzelnen Feldern finden Sie im Azure OpenAI Abschnitt in der Custom Config Docs.
Konfiguration auf Gruppenebene: Gruppenidentifizierung:
| Key | Type | Description | Example |
|---|---|---|---|
| group | string | Eindeutiger Bezeichner für eine Gruppe von Modellen. Doppelte Gruppennamen sind nicht zulässig und führen zu Validierungsfehlern. | group: default |
Authentifizierung:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | string | Muss ein gültiger API-Schlüssel für Azure OpenAI Dienste sein. Es kann sich um eine direkte Schlüsselzeichenfolge oder einen Verweis auf eine Umgebungsvariable handeln (z. B. ${WESTUS_API_KEY}). | apiKey: ${AZURE_API_KEY} |
Azure OpenAI Instanz:
| Key | Type | Description | Example |
|---|---|---|---|
| instanceName | string | Name der Azure OpenAI Instanz. Dieses Feld unterstützt auch Referenzen auf Umgebungsvariablen. **Unterstützt beide Domain-Formate**: `.openai.azure.com` (veraltet) und `.cognitiveservices.azure.com` (neu). Sie können entweder die vollständige Domain (z. B. `my-instance.cognitiveservices.azure.com`) oder nur den Instanznamen (z. B. `my-instance`) zur Abwärtskompatibilität mit dem veralteten `.openai.azure.com` Format angeben. | instanceName: ${AZURE_OPENAI_INSTANCE} |
Bereitstellungskonfiguration:
| Key | Type | Description | Example |
|---|---|---|---|
| deploymentName | string | Der Deployment-Name auf Gruppenebene ist optional, aber erforderlich, wenn ein Modell innerhalb der Gruppe auf true gesetzt ist. | deploymentName: my-deployment |
| version | string | Die Azure OpenAI API-Version auf Gruppenebene ist optional, aber erforderlich, wenn ein Modell innerhalb der Gruppe auf true gesetzt ist. | version: 2023-03-15-preview |
Erweiterte Einstellungen:
| Key | Type | Description | Example |
|---|---|---|---|
| baseURL | string | Benutzerdefinierte Basis-URL für die Azure OpenAI API-Anfragen. Umgebungsvariablen-Referenzen werden unterstützt. Dies ist optional und kann für fortgeschrittene Routing-Szenarien verwendet werden. | baseURL: https://my-custom-base-url.com |
| additionalHeaders | object | Gibt zusätzliche Header für Azure OpenAI API-Anfragen als Schlüssel-Wert-Paare an. Umgebungsvariablen-Referenzen können als Werte eingefügt werden. | additionalHeaders: {Authorization: ${AUTH_HEADER}} |
| serverless | boolean | Gibt an, ob die Gruppe ein serverloser Inference-Chat-Completions-Endpunkt aus dem Azure Model Catalog ist, für den nur eine Modellkennung, baseURL und apiKey erforderlich sind. Weitere Informationen finden Sie unter serverless inference endpoints. | serverless: true |
| addParams | object | Fügt zusätzliche Parameter für Azure OpenAI API-Anfragen hinzu oder überschreibt diese. Nützlich, um API-spezifische Optionen als Schlüssel-Wert-Paare anzugeben. | addParams: {temperature: 0.7} |
| dropParams | array | Ermöglicht den Ausschluss bestimmter Standardparameter aus Azure OpenAI API-Anfragen. Nützlich für APIs, die bestimmte Parameter nicht akzeptieren oder erkennen. Dies sollte als Liste von Strings angegeben werden. | dropParams: [top_p, stop] |
Modellkonfiguration:
| Key | Type | Description | Example |
|---|---|---|---|
| models | object | Gibt die Zuordnung von Modellkennungen zu ihren Konfigurationen innerhalb der Gruppe an. Die Schlüssel repräsentieren die Modellkennungen, die mit den entsprechenden OpenAI-Modellnamen übereinstimmen müssen. Die Werte können entweder boolesche Werte (true) oder Objekte mit modellspezifischen Einstellungen sein. Wenn ein Modell auf true gesetzt ist, erbt es den deploymentName und die version der Gruppenebene. Wenn ein Modell als Objekt konfiguriert ist, kann es einen eigenen deploymentName und eine eigene version haben. Dieses Feld ist erforderlich, und innerhalb jeder Gruppe muss mindestens ein Modell definiert sein. Weitere Informationen finden Sie hier | models: {gpt-3.5-turbo: true, text-davinci-003: {}} |
Beispiel einer Konfiguration auf Gruppenebene in der librechat.yaml Datei:
endpoints:
azureOpenAI:
# ... (endpoint-level configurations)
groups:
- group: "my-resource-group"
apiKey: "${AZURE_API_KEY}"
instanceName: "my-instance"
deploymentName: "gpt-35-turbo"
version: "2023-03-15-preview"
baseURL: "https://my-instance.openai.azure.com/"
additionalHeaders:
CustomHeader: "HeaderValue"
addParams:
max_tokens: 2048
temperature: 0.7
dropParams:
- "frequency_penalty"
- "presence_penalty"
models:
# ... (model-level configurations)Konfiguration auf Modellebene
Innerhalb jeder Gruppe enthält das Feld models eine Zuordnung von Modellkennungen zu ihren Konfigurationen:
Modellidentifizierung:
| Key | Type | Description | Example |
|---|---|---|---|
| Model Identifier | string | Muss mit dem entsprechenden OpenAI-Modellnamen übereinstimmen. Kann eine Teilübereinstimmung sein. | gpt-3.5-turbo: true |
Modellkonfiguration:
| Key | Type | Description | Example |
|---|---|---|---|
| Model Configuration | boolean/object | Boolean true: Verwendet den deploymentName und die version auf Gruppenebene. Objekt: Gibt den modellspezifischen deploymentName und die version an. Falls nicht angegeben, wird von der Gruppe geerbt. | text-davinci-003: {deploymentName: my-model-deployment, version: 2023-03-15-preview} |
| deploymentName | string | Der Bereitstellungsname für dieses spezifische Modell. | deploymentName: my-model-deployment |
| version | string | Die Azure OpenAI API-Version für dieses spezifische Modell. | version: 2023-03-15-preview |
Serverless Inference Endpoints:
| Key | Type | Description | Example |
|---|---|---|---|
| Serverless Inference Endpoints | note | Für serverless Modelle setzen Sie das Modell auf true. | gpt-4: true |
- Die Modellkennung muss mit dem entsprechenden OpenAI-Modellnamen übereinstimmen, damit die bekannten Kontextgrenzen korrekt widergespiegelt werden und/oder die Vision-Funktionalität ordnungsgemäß funktioniert. Wenn Sie beispielsweise gpt-4-vision verwenden möchten, muss es wie folgt konfiguriert werden:
endpoints:
azureOpenAI:
# ... (endpoint-level configurations)
groups:
# ... (group-level configurations)
- group: "example_group"
models:
# Model identifiers must match OpenAI Model name (can be a partial match)
gpt-4-vision-preview:
# Object setting: must include at least "deploymentName" and/or "version"
deploymentName: "arbitrary-deployment-name"
version: "2024-02-15-preview" # version can be any that supports vision
# Boolean setting, must be "true"
gpt-4-turbo: true-
Weitere Beispiele finden Sie unter Model Deployments.
-
Wenn ein Modell auf
truegesetzt ist, bedeutet dies, dass derdeploymentNameund dieversionauf Gruppenebene für dieses Modell verwendet werden. In diesem Fall müssen beide auf Gruppenebene definiert sein. -
Wenn ein Modell als Objekt konfiguriert ist, kann es seinen eigenen
deploymentNameund seine eigeneversionangeben. Wenn diese nicht bereitgestellt werden, erbt das Modell dendeploymentNameund dieversionder Gruppe. -
Wenn die Gruppe einen serverless inference endpoint darstellt, sollte das einzelne Modell auf
truegesetzt werden, um es zur Modellliste hinzuzufügen.
Besondere Überlegungen
-
Eindeutige Namen: Sowohl Modell- als auch Gruppennamen müssen in der gesamten Konfiguration eindeutig sein. Doppelte Namen führen zu Validierungsfehlern.
-
Fehlende erforderliche Felder: Das Fehlen erforderlicher
deploymentName- oderversion-Angaben, entweder auf Gruppenebene (für Modelle mit Boolean-Flag) oder innerhalb der Modellkonfigurationen (sofern nicht vererbt oder explizit angegeben), führt zu Validierungsfehlern, es sei denn, die Gruppe repräsentiert einen serverless inference endpoint. -
Referenzen auf Umgebungsvariablen: Die Konfiguration unterstützt Referenzen auf Umgebungsvariablen (z. B.
${VARIABLE_NAME}). Stellen Sie sicher, dass alle referenzierten Variablen in Ihrer Umgebung vorhanden sind, um Laufzeitfehler zu vermeiden. Das Fehlen von definierten Umgebungsvariablen, auf die in der Konfiguration verwiesen wird, führt zu Fehlern.${INSTANCE_NAME}und${DEPLOYMENT_NAME}sind eindeutige Platzhalter und entsprechen keinen Umgebungsvariablen, sondern dem Instanz- und Bereitstellungsnamen des aktuell ausgewählten Modells. Es wird nicht empfohlen,INSTANCE_NAMEundDEPLOYMENT_NAMEals Namen für Umgebungsvariablen zu verwenden, um mögliche Konflikte zu vermeiden. -
Fehlerbehandlung: Jegliche Probleme in der Konfiguration, wie doppelte Namen, undefinierte Umgebungsvariablen oder fehlende erforderliche Felder, führen zur Ungültigkeit des Setups und erzeugen beschreibende Fehlermeldungen, die auf eine schnelle Lösung abzielen. Es ist Ihnen nicht gestattet, den Server mit einer ungültigen Konfiguration zu starten.
-
Modell-Identifikatoren: Ein (dem Projekt) unbekanntes Modell kann als Modell-Identifikator verwendet werden, muss jedoch mit einem bekannten Modell übereinstimmen, um dessen bekannte Kontextlänge widerzuspiegeln, was für die Nachrichten-/Token-Verarbeitung entscheidend ist; z. B. ist
gpt-7000gültig, greift aber standardmäßig auf ein 4k-Token-Limit zurück, währendgpt-4-turboals Modell mit einem 128k-Kontextlimit erkannt wird.
Validieren Sie Ihre Konfiguration anhand der neuesten Schemadefinitionen und Richtlinien, um die Kompatibilität zu gewährleisten.
Modell-Bereitstellungen
Die Liste der Modelle, die Ihren Benutzern zur Verfügung stehen, wird durch die Modellgruppierungen bestimmt, die in Ihrer azureOpenAI endpoint config festgelegt sind.
Zum Beispiel:
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
groups:
- group: "my-westus" # arbitrary name
apiKey: "${WESTUS_API_KEY}"
instanceName: "actual-instance-name" # name of the resource group or instance
version: "2023-12-01-preview"
models:
gpt-4-vision-preview:
deploymentName: gpt-4-vision-preview
version: "2024-02-15-preview"
gpt-3.5-turbo: true
- group: "my-eastus"
apiKey: "${EASTUS_API_KEY}"
instanceName: "actual-eastus-instance-name"
deploymentName: gpt-4-turbo
version: "2024-02-15-preview"
models:
gpt-4-turbo: trueDie obige Konfiguration würde gpt-4-vision-preview, gpt-3.5-turbo und gpt-4-turbo für Ihre Benutzer in der Reihenfolge ihrer Definition aktivieren.
Verwendung von Assistants mit Azure
Um die Nutzung von Assistants mit Azure OpenAI zu ermöglichen, gibt es 2 Hauptschritte.
- Setzen Sie das Feld
assistantsunter demazureOpenAIendpoint, d. h. auf der Endpoint-Ebene, auftrue, wie folgt:
endpoints:
azureOpenAI:
# Enable use of Assistants with Azure
assistants: true- Fügen Sie das Feld
assistantszu Gruppen hinzu, die mit der Assistants API-Integration von Azure kompatibel sind.
- Mindestens eine Ihrer Gruppenkonfigurationen muss kompatibel sein.
- Sie können die kompatiblen Regionen und Modelle in der Azure-Dokumentation hier einsehen.
- Die Version muss ebenfalls "2024-02-15-preview" oder neuer sein, vorzugsweise neuer, um Zugriff auf die neuesten Funktionen zu erhalten.
endpoints:
azureOpenAI:
assistants: true
groups:
- group: "my-sweden-group"
apiKey: "${SWEDEN_API_KEY}"
instanceName: "actual-instance-name"
# Mark this group as assistants compatible
assistants: true
# version must be "2024-02-15-preview" or later
version: "2024-03-01-preview"
models:
# ... (model-level configuration)Hinweise:
-
Verwenden Sie für Anmeldedaten benutzerdefinierte Umgebungsvariablen, die in der Konfiguration jeder mit Assistants kompatiblen Gruppe angegeben sind.
-
Wenn Sie mehrere Regionen als assistants-kompatibel markieren, werden die von Ihnen erstellten Assistants über die Regionen hinweg in der Hauptauswahlliste für Assistants zusammengefasst.
-
Dateien, die Sie auf Azure OpenAI hochladen, egal ob auf Nachrichten- oder Assistant-Ebene, sind nur in der Region verfügbar, zu der das Modell des aktuellen Assistant gehört.
- Aus diesem Grund wird empfohlen, nur eine Region oder Ressourcengruppe für Azure OpenAI Assistants zu verwenden, da es sonst zu einem Fehler kommt.
- Das Hochladen zu "OpenAI" ist das Standardverhalten für die offiziellen
code_interpreter- undretrieval-Funktionen.
-
Das Herunterladen von Dateien, die von Assistants generiert wurden, wird in Kürze unterstützt.
-
Seit dem 19. Mai 2024 werden Retrieval und Streaming über Azure OpenAI noch nicht unterstützt.
- Um Fehler bei der Retrieval-Funktion zu vermeiden, solange diese nicht unterstützt wird, wird empfohlen, die Funktion in der
azureAssistantsendpoint Konfiguration vollständig zu deaktivieren:
endpoints: azureOpenAI: # ...rest azureAssistants: # "retrieval" omitted. capabilities: ["code_interpreter", "actions", "tools"]- Standardmäßig sind alle Funktionen außer Retrieval aktiviert.
- Um Fehler bei der Retrieval-Funktion zu vermeiden, solange diese nicht unterstützt wird, wird empfohlen, die Funktion in der
Verwendung von Plugins mit Azure
Um den Plugins endpoint mit Azure OpenAI zu verwenden, benötigen Sie eine Bereitstellung, die function calling unterstützt. Andernfalls deaktivieren Sie "Functions" in den Agent-Einstellungen. Wenn Sie den "functions"-Modus nicht verwenden, wird empfohlen, auch "skip completion" zu deaktivieren, da dies ein Überprüfungsschritt für das vom Agenten Generierte ist.
Um Azure mit dem Plugins endpoint zu verwenden, stellen Sie sicher, dass das Feld plugins in Ihrer Azure OpenAI endpoint-Konfiguration auf true gesetzt ist:
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
plugins: true # <------- Set this
groups:
# omitted for brevityDie Konfiguration des Feldes plugins konfiguriert Plugins für die Verwendung von Azure-Modellen.
HINWEIS: Die aktuelle Konfiguration über librechat.yaml verwendet das primäre Modell, das Sie im Frontend für die Plugin-Nutzung auswählen. Dies ist normalerweise nicht die Art und Weise, wie es ohne Azure funktioniert, wo stattdessen das "Agent"-Modell verwendet wird. Die Einstellung für das Agent-Modell kann ignoriert werden, wenn Plugins über Azure verwendet werden.
Verwendung einer angegebenen Basis-URL mit Azure
Die Basis-URL für Azure OpenAI API-Anfragen kann dynamisch konfiguriert werden. Dies ist nützlich für Proxy-Dienste wie Cloudflare AI Gateway oder wenn Sie die baseURL-Verarbeitung der App explizit überschreiben möchten.
LibreChat verwendet das Feld baseURL für Ihre Azure-Modellgruppierung, welches Platzhalter für die Azure OpenAI API-Instanz und die Bereitstellungsnamen enthalten kann.
Unterstützung für das Azure Endpoint Domain-Format
Azure OpenAI unterstützt jetzt beide endpoint-Domainformate:
- Neues Format:
.cognitiveservices.azure.com - Legacy-Format:
.openai.azure.com
Wenn instanceName ohne vollständige Domain verwendet wird, wird standardmäßig das Legacy-Format .openai.azure.com angewendet. Wenn Sie eine vollständige Domain angeben (z. B. my-instance.cognitiveservices.azure.com), wird diese unverändert übernommen. Dies gilt sowohl für instanceName-Felder als auch für baseURL-Konfigurationen.
In der Konfiguration kann die Basis-URL wie folgt angepasst werden:
# librechat.yaml file, under an Azure group:
endpoints:
azureOpenAI:
groups:
- group: "group-with-custom-base-url"
baseURL: "https://example.azure-api.net/${INSTANCE_NAME}/${DEPLOYMENT_NAME}"
# Legacy format (.openai.azure.com)
baseURL: "https://${INSTANCE_NAME}.openai.azure.com/openai/deployments/${DEPLOYMENT_NAME}"
# New format (.cognitiveservices.azure.com)
baseURL: "https://${INSTANCE_NAME}.cognitiveservices.azure.com/openai/deployments/${DEPLOYMENT_NAME}"
# Cloudflare example
baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/${INSTANCE_NAME}/${DEPLOYMENT_NAME}"HINWEIS: ${INSTANCE_NAME} und ${DEPLOYMENT_NAME} sind eindeutige Platzhalter und entsprechen nicht Umgebungsvariablen, sondern dem Instanz- und Bereitstellungsnamen des aktuell ausgewählten Modells. Es wird nicht empfohlen, INSTANCE_NAME und DEPLOYMENT_NAME als Namen für Umgebungsvariablen zu verwenden, um mögliche Konflikte zu vermeiden.
Sie können die Platzhalter auch vollständig weglassen und die baseURL einfach mit Ihren Anmeldedaten konstruieren:
baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/my-secret-instance/my-deployment"Zuletzt können Sie die gesamte baseURL über eine benutzerdefinierte Umgebungsvariable festlegen
baseURL: "${MY_CUSTOM_BASEURL}"Aktivieren von automatisch generierten Titeln mit Azure
Um die Titelgenerierung für Azure zu aktivieren, setzen Sie titleConvo auf true.
# Example Azure OpenAI Object Structure
endpoints:
azureOpenAI:
titleConvo: true # <------- Set this
groups:
# omitted for brevitySie können auch das für die Titelvergabe zu verwendende Modell mit titleModel angeben, sofern Sie es in Ihrer/Ihren Gruppe(n) konfiguriert haben.
titleModel: "gpt-3.5-turbo"Hinweis: "gpt-3.5-turbo" ist der Standardwert, daher können Sie ihn weglassen, wenn Sie genau dieses Modell verwenden möchten und es konfiguriert haben. Falls es nicht konfiguriert ist und titleConvo auf true gesetzt ist, führt der Benennungsprozess zu einem Fehler und es wird kein Titel generiert. Sie können dies auch so einstellen, dass dynamisch das aktuelle Modell verwendet wird, indem Sie es auf current_model setzen.
titleModel: "current_model"Verwendung von GPT-4 Vision mit Azure
Um Vision (Bildanalyse) mit Azure OpenAI zu verwenden, stellen Sie sicher, dass gpt-4-vision-preview als Modell in einer Ihrer Gruppierungen angegeben ist.
Dies funktioniert genauso wie beim OpenAI endpoint: Es ist nicht erforderlich, das Vision-Modell auszuwählen, da im Hintergrund automatisch gewechselt wird.
Bilder mit Azure OpenAI Service (DALL-E) generieren
| Model ID | Verfügbarkeit der Funktionen | Maximale Anfrage (Zeichen) |
|---|---|---|
| dalle2 | East US | 1000 |
| dalle3 | Sweden Central | 4000 |
- Zuerst müssen Sie eine Azure-Ressource erstellen, die DALL-E hostet.
- Zum Zeitpunkt der Erstellung dieses Dokuments ist dall-e-3 in der Region
SwedenCentralund dall-e-2 in der RegionEastUSverfügbar.
- Zum Zeitpunkt der Erstellung dieses Dokuments ist dall-e-3 in der Region
- Anschließend müssen Sie das Bildgenerierungsmodell in einer der oben genannten Regionen bereitstellen.
- Lesen Sie den Azure OpenAI Image Generation Quickstart Guide für weitere Unterstützung.
- Konfigurieren Sie Ihre Umgebungsvariablen basierend auf den Azure-Anmeldeinformationen:
Die DALL-E Konfigurationsoptionen:
DALL-E:
API-Schlüssel:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE_API_KEY | string | Der OpenAI API-Schlüssel für DALL-E 2- und DALL-E 3-Dienste. | # DALLE_API_KEY= |
API-Schlüssel (Versionsspezifisch):
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_API_KEY | string | Der OpenAI API-Schlüssel für DALL-E 3. | # DALLE3_API_KEY= |
| DALLE2_API_KEY | string | Der OpenAI API-Schlüssel für DALL-E 2. | # DALLE2_API_KEY= |
System-Prompts:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_SYSTEM_PROMPT | string | Der System-Prompt für DALL-E 3. | # DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here" |
| DALLE2_SYSTEM_PROMPT | string | Der System-Prompt für DALL-E 2. | # DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here" |
Reverse-Proxy-Einstellungen:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE_REVERSE_PROXY | string | Die Reverse-Proxy-URL für DALL-E API-Anfragen. | # DALLE_REVERSE_PROXY= |
Basis-URLs:
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_BASEURL | string | Die Basis-URL für DALL-E 3 API endpoints. Unterstützt sowohl `.openai.azure.com` (legacy) als auch `.cognitiveservices.azure.com` (neu) Domain-Formate. | # DALLE3_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.openai.azure.com/openai/deployments/<DALLE3_DEPLOYMENT_NAME>/ # OR # DALLE3_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.cognitiveservices.azure.com/openai/deployments/<DALLE3_DEPLOYMENT_NAME>/ |
| DALLE2_BASEURL | string | Die Basis-URL für DALL-E 2 API-endpoints. Unterstützt sowohl `.openai.azure.com` (legacy) als auch `.cognitiveservices.azure.com` (neu) Domain-Formate. | # DALLE2_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.openai.azure.com/openai/deployments/<DALLE2_DEPLOYMENT_NAME>/ # OR # DALLE2_BASEURL=https://<AZURE_OPENAI_API_INSTANCE_NAME>.cognitiveservices.azure.com/openai/deployments/<DALLE2_DEPLOYMENT_NAME>/ |
Azure OpenAI Integration (Optional):
| Key | Type | Description | Example |
|---|---|---|---|
| DALLE3_AZURE_API_VERSION | string | Die API-Version für DALL-E 3 mit dem Azure OpenAI Service. | # DALLE3_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview |
| DALLE2_AZURE_API_VERSION | string | Die API-Version für DALL-E 2 mit dem Azure OpenAI Service. | # DALLE2_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview |
Ersetzen Sie den Platzhaltertext durch tatsächliche Prompts oder Anweisungen und geben Sie Ihre API-Schlüssel an, falls Sie diese direkt in die Datei einfügen möchten (es wird empfohlen, sensible Schlüssel außerhalb der Codebasis zu verwalten). Überprüfen und beachten Sie die Nutzungsrichtlinien von OpenAI, wenn Sie API-Schlüssel in Software einbetten.
Hinweis: Wenn Sie PROXY festgelegt haben, wird dieser auch für DALL-E-Aufrufe verwendet, was für die gesamte App gilt.
Serverless Inference Endpoints
Über die librechat.yaml Datei können Sie serverlose Azure AI Studio Inference-Endpunkte konfigurieren, um auf Modelle aus der Azure AI Foundry zuzugreifen. Es werden lediglich eine Modellkennung, baseURL und apiKey zusammen mit dem Feld serverless benötigt, um die spezielle Handhabung anzugeben, die diese Endpunkte erfordern.
-
Sie müssen die Anweisungen in den kompatiblen Model Cards befolgen, um den MaaS-Zugriff ("Models as a Service") in Azure AI Studio einzurichten.
-
Als Referenz sind hier einige bekannte kompatible Model Cards:
-
Mistral-large | Meta-Llama-3.1-8B-Instruct | Phi-3-medium-128k-instruct
-
-
Sie können auch den technischen Blog zur Veröffentlichung des "Mistral-large"-Modells für weitere Informationen lesen.
-
Anschließend müssen Sie diese zu Ihrer
azureOpenAI-Konfiguration in der librechat.yaml Datei hinzufügen. -
Hier ist eine Beispielkonfiguration für
Meta-Llama-3.1-8B-Instruct:
endpoints:
azureOpenAI:
groups:
- group: "serverless-example"
apiKey: "${LLAMA318B_API_KEY}" # arbitrary env var name
baseURL: "https://example.services.ai.azure.com/models/"
version: "2024-05-01-preview" # Optional: specify API version
serverless: true
models:
# Must match the deployment name of the model
Meta-Llama-3.1-8B-Instruct: trueHinweise:
- Azure AI Foundry-Modelle stellen jetzt Endpunkte unter
/models/chat/completions?api-version=versionfür serverlose Inferenz bereit.- Das Feld
baseURLsollte auf den Root des endpoint gesetzt werden, ohne etwas nach/models/, d. h. ohne den Pfad/chat/completions. - Beispiel:
https://example.services.ai.azure.com/models/fürhttps://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview - Der
versionAbfrageparameter ist optional und kann imbaseURLFeld angegeben werden.
- Das Feld
- Der im Feld
modelsverwendete Modellname muss mit dem Bereitstellungsnamen des Modells in der Azure AI Foundry übereinstimmen. - Die Kompatibilität mit LibreChat basiert auf der Parität mit den OpenAI API-Spezifikationen, bei denen es sich zum Zeitpunkt der Erstellung dieses Dokuments in der Regel um "Pay-as-you-go"- oder "Models as a Service" (MaaS)-Bereitstellungen in Azure AI Studio handelt, die mit dem OpenAI-SDK kompatibel sind und entweder den
v1/completions- oder denmodels/chat/completions-endpoint unterstützen. - Alle Modelle, die serverlose Bereitstellungen ("Serverless APIs") anbieten, sind mit dem Azure-Modellkatalog kompatibel. Sie können unter den Bereitstellungsoptionen nach "Serverless API" und unter den Inferenzaufgaben nach "Chat completion" filtern, um die vollständige Liste zu sehen; Modelle mit Echtzeit-endpoint wurden jedoch nicht getestet.
- Diese serverlosen Inference-Endpunkte/Modelle unterstützen möglicherweise die Funktionsaufrufe gemäß den OpenAI API-Spezifikationen, was ihre Verwendung mit Agents ermöglicht.
Wie finden Sie diese Anleitung?