Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

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: true

Dieses Beispiel folgt der Azure OpenAI Endpoint Configuration Docs.

Jede Konfigurationsebene wird im jeweiligen Abschnitt detailliert beschrieben:

  1. Konfiguration auf Endpoint-Ebene

  2. Gruppen-Konfiguration

  3. Modell-Konfiguration

Einrichtung

  1. librechat.yaml zum Bearbeiten öffnen: Verwenden Sie Ihren bevorzugten Texteditor oder Ihre IDE, um die Datei librechat.yaml zu öffnen und zu bearbeiten.

    • Optional: Verwenden Sie einen Remote- oder benutzerdefinierten Dateipfad mit der folgenden Umgebungsvariable:
    CONFIG_PATH="/alternative/path/to/librechat.yaml"
  2. 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.

  3. Veraltete Einstellungen entfernen: Wenn Sie veraltete Konfigurationen verwenden, entfernen Sie diese. Der LibreChat-Server erkennt diese ebenfalls und weist Sie darauf hin.

  4. Änderungen speichern: Speichern Sie die librechat.yaml Datei.

  5. 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:

KeyTypeDescriptionExample
titleModelstringGibt 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:
pluginsbooleanErmö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
assistantsbooleanErmö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
summarizebooleanAktiviert die Konversationszusammenfassung für alle Azure Modelle. Auf `true` setzen, um die Zusammenfassung zu aktivieren. Standard: `false`.summarize:false
summaryModelstringGibt 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:
titleConvobooleanAktiviert die Generierung von Konversationstiteln für alle Azure Modelle. Auf `true` setzen, um die Titelgenerierung zu aktivieren. Standard: `false`.titleConvo:false
titleMethodstringSteuert die Methode, die zum Generieren von Konversationstiteln verwendet wird. Gültige Werte: "completion" (Standard), "structured", "functions" (veralteter Alias für "structured").titleMethod:completion
titlePromptstringBenutzerdefinierter Prompt für die Titelgenerierung. Muss den Platzhalter {convo} für den Konversationsinhalt enthalten.See documentation for default prompt
titlePromptTemplatestringVorlage für die Formatierung von Konversationsinhalten. Muss die Platzhalter {input} und {output} enthalten. Standard: "User: {input} AI: {output}"titlePromptTemplate:
titleEndpointstringAlternativer endpoint zur Verwendung bei der Titelgenerierung. Akzeptierte Werte: openAI, azureOpenAI, google, anthropic, bedrock oder benutzerdefinierte endpoint-Namen.titleEndpoint:

Gruppenkonfiguration:

KeyTypeDescriptionExample
groupsarrayGibt 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):

KeyTypeDescriptionExample
customOrdernumberErmö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:

KeyTypeDescriptionExample
groupstringEindeutiger Bezeichner für eine Gruppe von Modellen. Doppelte Gruppennamen sind nicht zulässig und führen zu Validierungsfehlern.group: default

Authentifizierung:

KeyTypeDescriptionExample
apiKeystringMuss 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:

KeyTypeDescriptionExample
instanceNamestringName 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:

KeyTypeDescriptionExample
deploymentNamestringDer Deployment-Name auf Gruppenebene ist optional, aber erforderlich, wenn ein Modell innerhalb der Gruppe auf true gesetzt ist.deploymentName: my-deployment
versionstringDie 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:

KeyTypeDescriptionExample
baseURLstringBenutzerdefinierte 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
additionalHeadersobjectGibt 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}}
serverlessbooleanGibt 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
addParamsobjectFü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}
dropParamsarrayErmö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:

KeyTypeDescriptionExample
modelsobjectGibt 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 hiermodels: {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:

KeyTypeDescriptionExample
Model IdentifierstringMuss mit dem entsprechenden OpenAI-Modellnamen übereinstimmen. Kann eine Teilübereinstimmung sein.gpt-3.5-turbo: true

Modellkonfiguration:

KeyTypeDescriptionExample
Model Configurationboolean/objectBoolean 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}
deploymentNamestringDer Bereitstellungsname für dieses spezifische Modell.deploymentName: my-model-deployment
versionstringDie Azure OpenAI API-Version für dieses spezifische Modell.version: 2023-03-15-preview

Serverless Inference Endpoints:

KeyTypeDescriptionExample
Serverless Inference EndpointsnoteFü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 true gesetzt ist, bedeutet dies, dass der deploymentName und die version auf 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 deploymentName und seine eigene version angeben. Wenn diese nicht bereitgestellt werden, erbt das Modell den deploymentName und die version der Gruppe.

  • Wenn die Gruppe einen serverless inference endpoint darstellt, sollte das einzelne Modell auf true gesetzt werden, um es zur Modellliste hinzuzufügen.

Besondere Überlegungen

  1. Eindeutige Namen: Sowohl Modell- als auch Gruppennamen müssen in der gesamten Konfiguration eindeutig sein. Doppelte Namen führen zu Validierungsfehlern.

  2. Fehlende erforderliche Felder: Das Fehlen erforderlicher deploymentName- oder version-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.

  3. 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_NAME und DEPLOYMENT_NAME als Namen für Umgebungsvariablen zu verwenden, um mögliche Konflikte zu vermeiden.

  4. 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.

  5. 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-7000 gültig, greift aber standardmäßig auf ein 4k-Token-Limit zurück, während gpt-4-turbo als 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: true

Die 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.

  1. Setzen Sie das Feld assistants unter dem azureOpenAI endpoint, d. h. auf der Endpoint-Ebene, auf true, wie folgt:
endpoints:
  azureOpenAI:
  # Enable use of Assistants with Azure
    assistants: true
  1. Fügen Sie das Feld assistants zu Gruppen hinzu, die mit der Assistants API-Integration von Azure kompatibel sind.
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- und retrieval-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 azureAssistants endpoint 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.

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 brevity

Die 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 brevity

Sie 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 IDVerfügbarkeit der FunktionenMaximale Anfrage (Zeichen)
dalle2East US1000
dalle3Sweden Central4000
  • 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 SwedenCentral und dall-e-2 in der Region EastUS verfügbar.
  • Anschließend müssen Sie das Bildgenerierungsmodell in einer der oben genannten Regionen bereitstellen.
  • Konfigurieren Sie Ihre Umgebungsvariablen basierend auf den Azure-Anmeldeinformationen:

Die DALL-E Konfigurationsoptionen:

DALL-E:

API-Schlüssel:

KeyTypeDescriptionExample
DALLE_API_KEYstringDer OpenAI API-Schlüssel für DALL-E 2- und DALL-E 3-Dienste.# DALLE_API_KEY=

API-Schlüssel (Versionsspezifisch):

KeyTypeDescriptionExample
DALLE3_API_KEYstringDer OpenAI API-Schlüssel für DALL-E 3.# DALLE3_API_KEY=
DALLE2_API_KEYstringDer OpenAI API-Schlüssel für DALL-E 2.# DALLE2_API_KEY=

System-Prompts:

KeyTypeDescriptionExample
DALLE3_SYSTEM_PROMPTstringDer System-Prompt für DALL-E 3.# DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here"
DALLE2_SYSTEM_PROMPTstringDer System-Prompt für DALL-E 2.# DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here"

Reverse-Proxy-Einstellungen:

KeyTypeDescriptionExample
DALLE_REVERSE_PROXYstringDie Reverse-Proxy-URL für DALL-E API-Anfragen.# DALLE_REVERSE_PROXY=

Basis-URLs:

KeyTypeDescriptionExample
DALLE3_BASEURLstringDie 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_BASEURLstringDie 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):

KeyTypeDescriptionExample
DALLE3_AZURE_API_VERSIONstringDie 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_VERSIONstringDie 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.

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: true

Hinweise:

  • Azure AI Foundry-Modelle stellen jetzt Endpunkte unter /models/chat/completions?api-version=version für serverlose Inferenz bereit.
    • Das Feld baseURL sollte 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ür https://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
    • Der version Abfrageparameter ist optional und kann im baseURL Feld angegeben werden.
  • Der im Feld models verwendete 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 den models/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?