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

Azure OpenAI

Jak skonfigurować Azure OpenAI w LibreChat za pomocą pliku `librechat.yaml`, obejmując wdrożenia, grupy modeli, wiele regionów i powiązane ustawienia.

Integracja Azure OpenAI z LibreChat

LibreChat obsługuje usługi Azure OpenAI API jako pierwszorzędny endpoint. Aby korzystać z Azure OpenAI wewnątrz LibreChat, skonfiguruj plik librechat.yaml dla swojej konfiguracji. Niniejszy dokument opisuje proces konfiguracji dla korzystania z wielu wdrożeń i modeli.

Przykład

Przykładowa konfiguracja zawierająca wiele opcji i funkcji opisanych poniżej:

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

Ten przykład jest zgodny z Dokumentacją konfiguracji endpointu Azure OpenAI.

Każdy poziom konfiguracji został szczegółowo opisany w odpowiedniej sekcji:

  1. Konfiguracja na poziomie endpoint

  2. Konfiguracja na poziomie grupy

  3. Konfiguracja na poziomie modelu

Konfiguracja

  1. Otwórz librechat.yaml do edycji: Użyj preferowanego edytora tekstu lub środowiska IDE, aby otworzyć i edytować plik librechat.yaml.

    • Opcjonalnie: użyj zdalnej lub niestandardowej ścieżki pliku za pomocą następującej zmiennej środowiskowej:
    CONFIG_PATH="/alternative/path/to/librechat.yaml"
  2. Konfiguracja ustawień Azure OpenAI: Postępuj zgodnie z poniższą strukturą, aby uzupełnić ustawienia Azure OpenAI, w tym klucze API, nazwy instancji, grupy modeli oraz inne konfiguracje.

  3. Usuń starsze ustawienia: Jeśli używasz jakichkolwiek starszych konfiguracji, usuń je. Serwer LibreChat również je wykryje i przypomni Ci o tym.

  4. Zapisz swoje zmiany: Zapisz plik librechat.yaml.

  5. Restart LibreChat: Zrestartuj swoją aplikację LibreChat, aby załadować zaktualizowaną konfigurację.

Wymagane pola

Aby zintegrować Azure OpenAI z LibreChat, należy skonfigurować określone pola w pliku librechat.yaml. Pola te są weryfikowane za pomocą kombinacji zmiennych niestandardowych oraz zmiennych środowiskowych. Poniżej znajdują się szczegółowe wymagania.

Konfiguracja na poziomie endpoint

Globalne ustawienia Azure:

Ustawienia tytułu i konwersacji:

KeyTypeDescriptionExample
titleModelstringOkreśla model używany do generowania tytułów konwersacji. Jeśli nie zostanie podany, domyślnym modelem jest `gpt-3.5-turbo`, co spowoduje brak tytułów w przypadku braku tego modelu. Możesz również ustawić to na dynamiczne używanie bieżącego modelu, ustawiając wartość na `current_model`.titleModel:
pluginsbooleanUmożliwia korzystanie z wtyczek za pośrednictwem Azure. Ustaw na `true`, aby aktywować obsługę endpointu Plugins w konfiguracji Azure. Domyślnie: `false`.plugins:false
assistantsbooleanUmożliwia korzystanie z asystentów za pośrednictwem Azure. Ustaw na `true`, aby aktywować endpoint Assistants poprzez konfigurację Azure. Domyślnie: `false`. Uwaga: wymaga to regionu zgodnego z asystentami.assistants:false
summarizebooleanWłącza podsumowywanie konwersacji dla wszystkich modeli Azure. Ustaw na `true`, aby aktywować podsumowywanie. Domyślnie: `false`.summarize:false
summaryModelstringOkreśla model używany do generowania podsumowań konwersacji. Jeśli nie zostanie podany, domyślnym zachowaniem jest użycie pierwszego modelu z tablicy `default` pierwszej grupy.summaryModel:
titleConvobooleanWłącza generowanie tytułów konwersacji dla wszystkich modeli Azure. Ustaw na `true`, aby aktywować generowanie tytułów. Domyślnie: `false`.titleConvo:false
titleMethodstringOkreśla metodę używaną do generowania tytułów konwersacji. Prawidłowe wartości: "completion" (domyślna), "structured", "functions" (starszy alias dla "structured").titleMethod:completion
titlePromptstringNiestandardowy prompt do generowania tytułu. Musi zawierać symbol zastępczy {convo} dla treści konwersacji.See documentation for default prompt
titlePromptTemplatestringSzablon formatowania zawartości konwersacji. Musi zawierać symbole zastępcze {input} oraz {output}. Domyślnie: "User: {input}\nAI: {output}"titlePromptTemplate:
titleEndpointstringAlternatywny endpoint używany do generowania tytułów. Akceptowane wartości: openAI, azureOpenAI, google, anthropic, bedrock lub niestandardowe nazwy endpointów.titleEndpoint:

Konfiguracja grupy:

KeyTypeDescriptionExample
groupsarrayOkreśla listę grup modeli Azure OpenAI. Każda grupa reprezentuje zestaw modeli ze współdzielonymi konfiguracjami. Pole groups jest tablicą obiektów, gdzie każdy obiekt definiuje ustawienia dla konkretnej grupy. Jest to pole wymagane na poziomie endpoint, przy czym musi zostać zdefiniowana co najmniej jedna grupa. Konfiguracje na poziomie grupy zostały szczegółowo opisane w sekcji Group-Level Configuration.# groups:[]

Niestandardowa kolejność (opcjonalne):

KeyTypeDescriptionExample
customOrdernumberPozwala określić niestandardową kolejność dla endpointu Azure w interfejsie użytkownika. Wyższe liczby będą wyświetlane niżej na liście. Jeśli nie zostanie podana, domyślna kolejność jest określana na podstawie kolejności, w jakiej endpointy są zdefiniowane w pliku `librechat.yaml`.customOrder:

Opcja customOrder jest zakomentowana, ponieważ jest opcjonalna.

Przykład tych ustawień na poziomie endpoint w pliku librechat.yaml:

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)

Konfiguracja na poziomie grupy

Pola konfigurowalne w pliku Custom Config (librechat.yaml). Aby uzyskać więcej informacji na temat każdego pola, zobacz sekcję Azure OpenAI w dokumentacji Custom Config.

Konfiguracja na poziomie grupy: Identyfikacja grupy:

KeyTypeDescriptionExample
groupstringUnikalna nazwa identyfikatora dla grupy modeli. Zduplikowane nazwy grup są niedozwolone i spowodują błędy walidacji.group: default

Uwierzytelnianie:

KeyTypeDescriptionExample
apiKeystringMusi to być prawidłowy klucz API dla usług Azure OpenAI. Może to być bezpośredni ciąg znaków klucza lub odwołanie do zmiennej środowiskowej (np. ${WESTUS_API_KEY}).apiKey: ${AZURE_API_KEY}

Instancja Azure OpenAI:

KeyTypeDescriptionExample
instanceNamestringNazwa instancji Azure OpenAI. To pole obsługuje również odwołania do zmiennych środowiskowych. **Obsługuje oba formaty domen**: `.openai.azure.com` (starszy) oraz `.cognitiveservices.azure.com` (nowy). Możesz podać pełną domenę (np. `my-instance.cognitiveservices.azure.com`) lub tylko nazwę instancji (np. `my-instance`) w celu zachowania wstecznej kompatybilności ze starszym formatem `.openai.azure.com`.instanceName: ${AZURE_OPENAI_INSTANCE}

Konfiguracja wdrożenia:

KeyTypeDescriptionExample
deploymentNamestringNazwa wdrożenia na poziomie grupy jest opcjonalna, ale wymagana, jeśli jakikolwiek model wewnątrz grupy jest ustawiony na true.deploymentName: my-deployment
versionstringWersja Azure OpenAI API na poziomie grupy jest opcjonalna, ale wymagana, jeśli jakikolwiek model wewnątrz grupy jest ustawiony na true.version: 2023-03-15-preview

Zaawansowane ustawienia:

KeyTypeDescriptionExample
baseURLstringNiestandardowy bazowy adres URL dla żądań Azure OpenAI API. Obsługiwane są odwołania do zmiennych środowiskowych. Jest to opcjonalne i może być używane w zaawansowanych scenariuszach routingu.baseURL: https://my-custom-base-url.com
additionalHeadersobjectOkreśla dodatkowe nagłówki dla żądań Azure OpenAI API jako pary klucz-wartość. Jako wartości można uwzględnić odwołania do zmiennych środowiskowych.additionalHeaders: {Authorization: ${AUTH_HEADER}}
serverlessbooleanOkreśla, czy grupa jest bezserwerowym punktem końcowym uzupełniania czatu z Azure Model Catalog, dla którego wymagane są tylko identyfikator modelu, baseURL oraz apiKey. Więcej informacji można znaleźć w serverless inference endpoints.serverless: true
addParamsobjectDodaje lub nadpisuje dodatkowe parametry dla żądań Azure OpenAI API. Przydatne do określania opcji specyficznych dla API w formie par klucz-wartość.addParams: {temperature: 0.7}
dropParamsarrayUmożliwia wykluczenie określonych parametrów domyślnych z żądań do Azure OpenAI API. Przydatne w przypadku interfejsów API, które nie akceptują lub nie rozpoznają konkretnych parametrów. Należy to określić jako listę ciągów znaków.dropParams: [top_p, stop]

Konfiguracja modelu:

KeyTypeDescriptionExample
modelsobjectOkreśla mapowanie identyfikatorów modeli na ich konfiguracje w ramach grupy. Klucze reprezentują identyfikatory modeli, które muszą być zgodne z odpowiednimi nazwami modeli OpenAI. Wartości mogą być typu boolean (true) lub obiektami zawierającymi ustawienia specyficzne dla modelu. Jeśli model jest ustawiony na true, dziedziczy deploymentName i version z poziomu grupy. Jeśli model jest skonfigurowany jako obiekt, może posiadać własne deploymentName i version. To pole jest wymagane i w każdej grupie musi być zdefiniowany co najmniej jeden model. Więcej informacji tutajmodels: {gpt-3.5-turbo: true, text-davinci-003: {}}

Przykład konfiguracji na poziomie grupy w pliku librechat.yaml:

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)

Konfiguracja na poziomie modelu

Wewnątrz każdej grupy pole models zawiera mapowanie identyfikatorów modeli na ich konfiguracje:

Identyfikacja modelu:

KeyTypeDescriptionExample
Model IdentifierstringMusi być zgodne z odpowiadającą nazwą modelu OpenAI. Może być dopasowaniem częściowym.gpt-3.5-turbo: true

Konfiguracja modelu:

KeyTypeDescriptionExample
Model Configurationboolean/objectWartość logiczna true: Używa deploymentName i version na poziomie grupy. Obiekt: Określa specyficzne dla modelu deploymentName i version. Jeśli nie podano, dziedziczy z grupy.text-davinci-003: {deploymentName: my-model-deployment, version: 2023-03-15-preview}
deploymentNamestringNazwa wdrożenia dla tego konkretnego modelu.deploymentName: my-model-deployment
versionstringWersja API Azure OpenAI dla tego konkretnego modelu.version: 2023-03-15-preview

Punkty końcowe wnioskowania bezserwerowego (Serverless Inference Endpoints):

KeyTypeDescriptionExample
Serverless Inference EndpointsnoteDla modeli bezserwerowych ustaw model na true.gpt-4: true
  • Identyfikator modelu musi być zgodny z odpowiadającą mu nazwą modelu OpenAI, aby poprawnie odzwierciedlał znane limity kontekstu i/lub działał w przypadku funkcji wizji (vision). Na przykład, jeśli zamierzasz użyć gpt-4-vision, musi on zostać skonfigurowany w następujący sposób:
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
  • Zobacz Model Deployments, aby uzyskać więcej przykładów.

  • Jeśli model jest ustawiony na true, oznacza to użycie deploymentName i version na poziomie grupy dla tego modelu. W takim przypadku oba te parametry muszą być zdefiniowane na poziomie grupy.

  • Jeśli model jest skonfigurowany jako obiekt, może określić własne deploymentName oraz version. Jeśli nie zostaną one podane, model dziedziczy deploymentName oraz version grupy.

  • Jeśli grupa reprezentuje serverless inference endpoint, pojedynczy model powinien być ustawiony na true, aby dodać go do listy modeli.

Szczególne uwagi

  1. Unikalne nazwy: Zarówno nazwy modeli, jak i grup muszą być unikalne w całej konfiguracji. Zduplikowane nazwy prowadzą do błędów walidacji.

  2. Brakujące wymagane pola: Brak wymaganego pola deploymentName lub version na poziomie grupy (w przypadku modeli z flagą logiczną) lub w konfiguracjach modeli (jeśli nie są dziedziczone lub jawnie określone) spowoduje błędy walidacji, chyba że grupa reprezentuje serverless inference endpoint.

  3. Odwołania do zmiennych środowiskowych: Konfiguracja obsługuje odwołania do zmiennych środowiskowych (np. ${VARIABLE_NAME}). Upewnij się, że wszystkie przywołane zmienne znajdują się w Twoim środowisku, aby uniknąć błędów wykonania. Brak zdefiniowanych zmiennych środowiskowych, do których odwołuje się konfiguracja, spowoduje błędy. ${INSTANCE_NAME} oraz ${DEPLOYMENT_NAME} to unikalne symbole zastępcze, które nie odpowiadają zmiennym środowiskowym, lecz nazwie instancji i wdrożenia aktualnie wybranego modelu. Nie zaleca się używania INSTANCE_NAME oraz DEPLOYMENT_NAME jako nazw zmiennych środowiskowych, aby uniknąć potencjalnych konfliktów.

  4. Obsługa błędów: Wszelkie problemy w konfiguracji, takie jak zduplikowane nazwy, niezdefiniowane zmienne środowiskowe lub brak wymaganych pól, unieważnią konfigurację i wygenerują opisowe komunikaty o błędach, mające na celu szybkie rozwiązanie problemu. Uruchomienie serwera z nieprawidłową konfiguracją nie będzie możliwe.

  5. Identyfikatory modeli: Nieznany model (dla projektu) może być użyty jako identyfikator modelu, ale musi on odpowiadać znanemu modelowi, aby odzwierciedlić jego znaną długość kontekstu, co jest kluczowe dla obsługi wiadomości/tokenów; np. gpt-7000 będzie poprawny, ale domyślnie przyjmie limit 4 tys. tokenów, podczas gdy gpt-4-turbo zostanie rozpoznany jako posiadający limit kontekstu 128 tys. tokenów.

Zweryfikuj swoją konfigurację zgodnie z najnowszymi definicjami schematów i wytycznymi, aby zachować kompatybilność.

Wdrożenia modeli

Lista modeli dostępnych dla Twoich użytkowników jest określana przez grupy modeli wyszczególnione w konfiguracji punktu końcowego azureOpenAI w pliku librechat.yaml.

Na przykład:

# 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

Powyższa konfiguracja włączy gpt-4-vision-preview, gpt-3.5-turbo oraz gpt-4-turbo dla Twoich użytkowników w kolejności, w jakiej zostały zdefiniowane.

Korzystanie z Assistants z Azure

Aby włączyć korzystanie z Assistants w Azure OpenAI, należy wykonać 2 główne kroki.

  1. Ustaw pole assistants, pod endpointem azureOpenAI, tj. na poziomie endpointu, na true, w następujący sposób:
endpoints:
  azureOpenAI:
  # Enable use of Assistants with Azure
    assistants: true
  1. Dodaj pole assistants do grup kompatybilnych z integracją Azure Assistants API.
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)

Uwagi:

  • W przypadku danych uwierzytelniających należy polegać na niestandardowych zmiennych środowiskowych określonych w konfiguracji każdej grupy zgodnej z assistants.

  • Jeśli oznaczysz wiele regionów jako kompatybilne z asystentami, utworzeni przez Ciebie asystenci zostaną zagregowani z różnych regionów na główną listę wyboru asystentów.

  • Pliki przesyłane do Azure OpenAI, zarówno na poziomie wiadomości, jak i asystenta, będą dostępne wyłącznie w regionie, do którego należy model bieżącego asystenta.

    • Z tego powodu zaleca się korzystanie tylko z jednego regionu lub grupy zasobów dla Azure OpenAI Assistants, w przeciwnym razie wystąpi błąd.
    • Przesyłanie do "OpenAI" jest domyślnym zachowaniem dla oficjalnych funkcji code_interpreter oraz retrieval.
  • Pobieranie plików generowanych przez asystentów będzie wkrótce obsługiwane.

  • Od 19 maja 2024 r. pobieranie (retrieval) i przesyłanie strumieniowe (streaming) nie są jeszcze obsługiwane przez Azure OpenAI.

    • Aby uniknąć błędów związanych z funkcją retrieval, gdy nie jest ona obsługiwana, zaleca się całkowite wyłączenie tej możliwości w konfiguracji endpointu azureAssistants:
    endpoints:
      azureOpenAI:
        # ...rest
    
      azureAssistants:
      # "retrieval" omitted.
        capabilities: ["code_interpreter", "actions", "tools"]
    • Domyślnie wszystkie funkcje, z wyjątkiem retrieval, są włączone.

Używanie wtyczek z Azure

Aby korzystać z endpoint Plugins w Azure OpenAI, potrzebujesz wdrożenia obsługującego function calling. W przeciwnym razie wyłącz opcję "Functions" w ustawieniach agenta. Gdy nie korzystasz z trybu "functions", zaleca się również wyłączenie opcji "skip completion", która stanowi krok weryfikacji tego, co wygenerował agent.

Aby używać Azure z endpointem Plugins, upewnij się, że pole plugins jest ustawione na true w konfiguracji endpointu Azure OpenAI:

# Example Azure OpenAI Object Structure
endpoints:
  azureOpenAI:
    plugins: true # <------- Set this
    groups:
    # omitted for brevity

Skonfigurowanie pola plugins skonfiguruje wtyczki do korzystania z modeli Azure.

UWAGA: Bieżąca konfiguracja poprzez librechat.yaml wykorzystuje główny model wybrany z interfejsu użytkownika do obsługi wtyczek, co zazwyczaj nie działa w ten sposób bez Azure, gdzie zamiast tego używany jest model "Agent". Ustawienie modelu Agent można zignorować podczas korzystania z wtyczek przez Azure.

Używanie określonego adresu Base URL z Azure

Podstawowy adres URL (base URL) dla żądań API Azure OpenAI może być konfigurowany dynamicznie. Jest to przydatne w przypadku usług pośredniczących (proxy), takich jak Cloudflare AI Gateway, lub jeśli chcesz jawnie nadpisać sposób obsługi baseURL w aplikacji.

LibreChat użyje pola baseURL dla grupowania modeli Azure, które może zawierać symbole zastępcze dla instancji Azure OpenAI API oraz nazw wdrożeń.

Obsługa formatu domeny endpointu Azure

Azure OpenAI obsługuje teraz oba formaty domen endpoint:

  • Nowy format: .cognitiveservices.azure.com
  • Starszy format: .openai.azure.com

W przypadku użycia instanceName bez pełnej domeny, domyślnie stosowany jest starszy format .openai.azure.com. Jeśli podasz pełną domenę (np. my-instance.cognitiveservices.azure.com), zostanie ona użyta w niezmienionej formie. Dotyczy to zarówno pól instanceName, jak i konfiguracji baseURL.

W konfiguracji, base URL można dostosować w następujący sposób:

# 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}"

UWAGA: ${INSTANCE_NAME} oraz ${DEPLOYMENT_NAME} to unikalne symbole zastępcze, które nie odpowiadają zmiennym środowiskowym, lecz nazwie instancji i wdrożenia aktualnie wybranego modelu. Nie zaleca się używania INSTANCE_NAME oraz DEPLOYMENT_NAME jako nazw zmiennych środowiskowych, aby uniknąć potencjalnych konfliktów.

Możesz również całkowicie pominąć symbole zastępcze i po prostu skonstruować baseURL za pomocą swoich danych uwierzytelniających:

      baseURL: "https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/azure-openai/my-secret-instance/my-deployment"

Na koniec, możesz określić cały baseURL za pomocą niestandardowej zmiennej środowiskowej

      baseURL: "${MY_CUSTOM_BASEURL}"

Włączanie automatycznie generowanych tytułów z Azure

Aby włączyć tytułowanie dla Azure, ustaw titleConvo na true.

# Example Azure OpenAI Object Structure
endpoints:
  azureOpenAI:
    titleConvo: true # <------- Set this
    groups:
    # omitted for brevity

Możesz również określić model używany do nadawania tytułów za pomocą titleModel, pod warunkiem, że skonfigurowałeś go w swoich grupach.

    titleModel: "gpt-3.5-turbo"

Uwaga: "gpt-3.5-turbo" jest wartością domyślną, więc możesz ją pominąć, jeśli chcesz użyć dokładnie tego modelu i masz go skonfigurowanego. Jeśli nie jest skonfigurowany, a titleConvo jest ustawione na true, proces nadawania tytułu zakończy się błędem i tytuł nie zostanie wygenerowany. Możesz również ustawić to tak, aby dynamicznie używało bieżącego modelu, ustawiając wartość na current_model.

    titleModel: "current_model"

Używanie GPT-4 Vision z Azure

Aby korzystać z funkcji Vision (analiza obrazu) w Azure OpenAI, upewnij się, że gpt-4-vision-preview jest określonym modelem w jednej z Twoich grup.

Działa to w ten sam sposób, co w przypadku endpoint OpenAI: nie ma potrzeby wybierania modelu wizyjnego, ponieważ zostanie on przełączony automatycznie w tle.

Generowanie obrazów za pomocą Azure OpenAI Service (DALL-E)

Model IDDostępność funkcjiMaks. liczba znaków w żądaniu
dalle2East US1000
dalle3Sweden Central4000
  • Najpierw musisz utworzyć zasób Azure, który hostuje DALL-E
    • W momencie pisania tego tekstu, dall-e-3 jest dostępny w regionie SwedenCentral, a dall-e-2 w regionie EastUS.
  • Następnie musisz wdrożyć model generowania obrazów w jednym z powyższych regionów.
  • Skonfiguruj swoje zmienne środowiskowe w oparciu o dane uwierzytelniające Azure:

Opcje konfiguracji DALL-E:

DALL-E:

Klucze API:

KeyTypeDescriptionExample
DALLE_API_KEYstringKlucz API OpenAI dla usług DALL-E 2 i DALL-E 3.# DALLE_API_KEY=

Klucze API (zależne od wersji):

KeyTypeDescriptionExample
DALLE3_API_KEYstringKlucz API OpenAI dla DALL-E 3.# DALLE3_API_KEY=
DALLE2_API_KEYstringKlucz API OpenAI dla DALL-E 2.# DALLE2_API_KEY=

System Prompts:

KeyTypeDescriptionExample
DALLE3_SYSTEM_PROMPTstringSystemowy prompt dla DALL-E 3.# DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here"
DALLE2_SYSTEM_PROMPTstringSystemowy prompt dla DALL-E 2.# DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here"

Ustawienia Reverse Proxy:

KeyTypeDescriptionExample
DALLE_REVERSE_PROXYstringAdres URL odwrotnego proxy dla żądań API DALL-E.# DALLE_REVERSE_PROXY=

Bazowe adresy URL:

KeyTypeDescriptionExample
DALLE3_BASEURLstringPodstawowy adres URL dla endpointów API DALL-E 3. Obsługuje formaty domen zarówno `.openai.azure.com` (starszy), jak i `.cognitiveservices.azure.com` (nowy).# 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_BASEURLstringPodstawowy adres URL dla endpointów API DALL-E 2. Obsługuje formaty domen zarówno `.openai.azure.com` (starszy), jak i `.cognitiveservices.azure.com` (nowy).# 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>/

Integracja z Azure OpenAI (opcjonalna):

KeyTypeDescriptionExample
DALLE3_AZURE_API_VERSIONstringWersja API dla DALL-E 3 w usłudze Azure OpenAI.# DALLE3_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview
DALLE2_AZURE_API_VERSIONstringWersja API dla DALL-E 2 z usługą Azure OpenAI.# DALLE2_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview

Zastąp tekst zastępczy rzeczywistymi promptami lub instrukcjami i podaj swoje klucze API, jeśli zdecydujesz się umieścić je bezpośrednio w pliku (zaleca się zarządzanie poufnymi kluczami poza bazą kodu). Zapoznaj się z zasadami użytkowania OpenAI i przestrzegaj ich podczas osadzania kluczy API w oprogramowaniu.

Uwaga: jeśli masz ustawione PROXY, będzie ono używane również dla wywołań DALL-E, co jest uniwersalne dla całej aplikacji.

Serverless Inference Endpoints

Za pomocą pliku librechat.yaml możesz skonfigurować punkty końcowe wnioskowania bezserwerowego Azure AI Studio, aby uzyskać dostęp do modeli z Azure AI Foundry. Wymagany jest jedynie identyfikator modelu, baseURL oraz apiKey, wraz z polem serverless, aby wskazać specjalną obsługę, której wymagają te punkty końcowe.

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

Uwagi:

  • Modele Azure AI Foundry udostępniają teraz endpointy pod adresem /models/chat/completions?api-version=version na potrzeby wnioskowania bezserwerowego (serverless inference).
    • Pole baseURL powinno być ustawione na katalog główny endpointu, bez żadnych elementów po /models/, tj. ścieżki /chat/completions.
    • Przykład: https://example.services.ai.azure.com/models/ dla https://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
    • Parametr zapytania version jest opcjonalny i można go określić w polu baseURL.
  • Nazwa modelu użyta w polu models musi być zgodna z nazwą wdrożenia modelu w Azure AI Foundry.
  • Zgodność z LibreChat opiera się na parytecie ze specyfikacjami OpenAI API, które w momencie pisania tego tekstu są zazwyczaj wdrożeniami typu "Pay-as-you-go" lub "Models as a Service" (MaaS) w Azure AI Studio, zgodnymi z OpenAI-SDK i obsługującymi endpoint v1/completions lub models/chat/completions.
  • Wszystkie modele oferujące wdrożenia bezserwerowe ("Serverless APIs") z katalogu modeli Azure są kompatybilne. Możesz filtrować według "Serverless API" w opcjach wdrożenia (Deployment options) oraz "Chat completion" w zadaniach wnioskowania (inference tasks), aby zobaczyć pełną listę; jednakże modele typu real time endpoint nie zostały przetestowane.
  • Te bezserwerowe endpointy/modele wnioskowania mogą, ale nie muszą obsługiwać wywoływania funkcji (function calling) zgodnie ze specyfikacją OpenAI API, co umożliwia ich użycie z Agentami.

Jaka jest ta instrukcja?