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

Azure OpenAI

`librechat.yaml` dosyası aracılığıyla LibreChat üzerinde Azure OpenAI yapılandırması; dağıtımlar, model grupları, çoklu bölgeler ve ilgili ayarları kapsar.

LibreChat için Azure OpenAI Entegrasyonu

LibreChat, Azure OpenAI API hizmetlerini birinci sınıf bir endpoint olarak destekler. LibreChat içinde Azure OpenAI kullanmak için, kurulumunuza uygun şekilde librechat.yaml dosyasını yapılandırın. Bu belge, birden fazla dağıtım ve model kullanmaya yönelik kurulum sürecini kapsamaktadır.

Örnek

Aşağıda açıklanan birçok seçenek ve özelliği içeren örnek bir yapılandırma:

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

Bu örnek, Azure OpenAI Endpoint Configuration Docs dokümanını takip eder.

Yapılandırmanın her seviyesi ilgili bölümünde detaylandırılmıştır:

  1. Endpoint-seviyesi yapılandırma

  2. Grup düzeyi yapılandırma

  3. Model düzeyi yapılandırması

Kurulum

  1. librechat.yaml dosyasını düzenlemek için açın: librechat.yaml dosyasını açmak ve düzenlemek için tercih ettiğiniz metin düzenleyiciyi veya IDE'yi kullanın.

    • İsteğe bağlı: aşağıdaki ortam değişkeni ile uzak veya özel bir dosya yolu kullanın:
    CONFIG_PATH="/alternative/path/to/librechat.yaml"
  2. Azure OpenAI Ayarlarını Yapılandırma: API anahtarları, örnek adları, model grupları ve diğer yapılandırmalar dahil olmak üzere Azure OpenAI ayarlarınızı doldurmak için aşağıda belirtilen yapıyı izleyin.

  3. Eski Ayarları Kaldırın: Eğer herhangi bir eski yapılandırma kullanıyorsanız, bunları kaldırın. LibreChat sunucusu bunları algılayacak ve size hatırlatacaktır.

  4. Değişikliklerinizi Kaydedin: librechat.yaml dosyasını kaydedin.

  5. LibreChat'i Yeniden Başlatın: Güncellenen yapılandırmanın yüklenmesi için LibreChat uygulamanızı yeniden başlatın.

Gerekli Alanlar

Azure OpenAI'yi LibreChat ile entegre etmek için librechat.yaml dosyanızda belirli alanların yapılandırılması gerekir. Bu alanlar, özel değişkenler ve ortam değişkenlerinin bir kombinasyonu aracılığıyla doğrulanır. Ayrıntılı gereksinimler aşağıdadır.

Endpoint-Level Configuration

Global Azure Ayarları:

Başlık ve Sohbet Ayarları:

KeyTypeDescriptionExample
titleModelstringSohbet başlıklarını oluşturmak için kullanılacak modeli belirtir. Belirtilmediği takdirde varsayılan model `gpt-3.5-turbo` olarak ayarlanır; bu modelin bulunmaması durumunda başlık oluşturulmayacaktır. Ayrıca bunu `current_model` olarak ayarlayarak mevcut modeli dinamik bir şekilde kullanmasını da sağlayabilirsiniz.titleModel:
pluginsbooleanAzure üzerinden eklentilerin kullanımını sağlar. Azure yapılandırmanız aracılığıyla Plugins endpoint desteğini etkinleştirmek için `true` olarak ayarlayın. Varsayılan: `false`.plugins:false
assistantsbooleanAzure aracılığıyla asistanların kullanımını sağlar. Azure yapılandırmanız üzerinden Assistants endpoint'ini etkinleştirmek için `true` olarak ayarlayın. Varsayılan: `false`. Not: Bu, asistanlarla uyumlu bir bölge gerektirir.assistants:false
summarizebooleanTüm Azure modelleri için konuşma özetlemeyi etkinleştirir. Özetlemeyi aktifleştirmek için `true` olarak ayarlayın. Varsayılan: `false`.summarize:false
summaryModelstringSohbet özetleri oluşturmak için kullanılacak modeli belirtir. Belirtilmediği takdirde varsayılan davranış, ilk grubun `default` dizisindeki ilk modeli kullanmaktır.summaryModel:
titleConvobooleanTüm Azure modelleri için sohbet başlığı oluşturmayı etkinleştirir. Başlık oluşturmayı etkinleştirmek için `true` olarak ayarlayın. Varsayılan: `false`.titleConvo:false
titleMethodstringSohbet başlıklarını oluşturmak için kullanılan yöntemi kontrol eder. Geçerli değerler: "completion" (varsayılan), "structured", "functions" ("structured" için eski bir takma ad).titleMethod:completion
titlePromptstringBaşlık oluşturma için özel istem. Konuşma içeriği için {convo} yer tutucusunu içermelidir.See documentation for default prompt
titlePromptTemplatestringSohbet içeriğini biçimlendirmek için şablon. {input} ve {output} yer tutucularını içermelidir. Varsayılan: "User: {input}\nAI: {output}"titlePromptTemplate:
titleEndpointstringBaşlık oluşturma için kullanılacak alternatif endpoint. Kabul edilen değerler: openAI, azureOpenAI, google, anthropic, bedrock veya özel endpoint adları.titleEndpoint:

Grup Yapılandırması:

KeyTypeDescriptionExample
groupsarrayAzure OpenAI model gruplarının listesini belirtir. Her grup, paylaşılan yapılandırmalara sahip bir model kümesini temsil eder. groups alanı, her nesnenin belirli bir grup için ayarları tanımladığı bir nesne dizisidir. Bu, endpoint düzeyinde zorunlu bir alandır ve en az bir grup tanımlanmalıdır. Grup düzeyindeki yapılandırmalar, Group-Level Configuration bölümünde detaylandırılmıştır.# groups:[]

Özel Sıralama (İsteğe bağlı):

KeyTypeDescriptionExample
customOrdernumberKullanıcı arayüzünde Azure endpoint için özel bir sıralama belirlemenize olanak tanır. Daha yüksek sayılar listede daha aşağıda görünecektir. Belirtilmediği takdirde, varsayılan sıralama `librechat.yaml` dosyasında endpoint'lerin tanımlanma sırasına göre belirlenir.customOrder:

customOrder seçeneği isteğe bağlı olduğu için yorum satırı haline getirilmiştir.

librechat.yaml dosyanızdaki bu endpoint düzeyindeki ayarlara bir örnek:

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)

Grup Düzeyinde Yapılandırma

Özel Yapılandırma (librechat.yaml) dosyasında yapılandırılabilir alanlar. Her bir alan hakkında daha fazla bilgi için Özel Yapılandırma Belgelerindeki Azure OpenAI bölümüne bakın.

Grup Düzeyinde Yapılandırma: Grup Tanımlama:

KeyTypeDescriptionExample
groupstringModel grubu için benzersiz tanımlayıcı adı. Yinelenen grup adlarına izin verilmez ve doğrulama hatalarına yol açar.group: default

Kimlik Doğrulama:

KeyTypeDescriptionExample
apiKeystringAzure OpenAI hizmetleri için geçerli bir API anahtarı olmalıdır. Doğrudan bir anahtar dizisi veya bir ortam değişkeni referansı (örneğin, ${WESTUS_API_KEY}) olabilir.apiKey: ${AZURE_API_KEY}

Azure OpenAI Örneği:

KeyTypeDescriptionExample
instanceNamestringAzure OpenAI örneğinin adı. Bu alan ortam değişkeni referanslarını da destekler. **Her iki alan adı formatını da destekler**: `.openai.azure.com` (eski) ve `.cognitiveservices.azure.com` (yeni). Tam alan adını (örneğin, `my-instance.cognitiveservices.azure.com`) veya eski `.openai.azure.com` formatıyla geriye dönük uyumluluk için sadece örnek adını (örneğin, `my-instance`) belirtebilirsiniz.instanceName: ${AZURE_OPENAI_INSTANCE}

Dağıtım Yapılandırması:

KeyTypeDescriptionExample
deploymentNamestringGrup düzeyindeki deployment name isteğe bağlıdır ancak grup içindeki herhangi bir model true olarak ayarlanmışsa gereklidir.deploymentName: my-deployment
versionstringGrup düzeyindeki Azure OpenAI API sürümü isteğe bağlıdır, ancak grup içindeki herhangi bir model true olarak ayarlanmışsa gereklidir.version: 2023-03-15-preview

Gelişmiş Ayarlar:

KeyTypeDescriptionExample
baseURLstringAzure OpenAI API istekleri için özel temel URL. Ortam değişkeni referansları desteklenir. Bu isteğe bağlıdır ve gelişmiş yönlendirme senaryoları için kullanılabilir.baseURL: https://my-custom-base-url.com
additionalHeadersobjectAzure OpenAI API istekleri için ekstra başlıkları anahtar-değer çiftleri olarak belirtir. Ortam değişkeni referansları değer olarak dahil edilebilir.additionalHeaders: {Authorization: ${AUTH_HEADER}}
serverlessbooleanGrubun, yalnızca model tanımlayıcısı, baseURL ve apiKey gerektiren Azure Model Catalog'dan sunucusuz çıkarım sohbet tamamlama uç noktası olup olmadığını belirtir. Daha fazla bilgi için bkz. serverless inference endpoints.serverless: true
addParamsobjectAzure OpenAI API istekleri için ek parametreler ekler veya geçersiz kılar. API'ye özgü seçenekleri anahtar-değer çiftleri olarak belirtmek için kullanışlıdır.addParams: {temperature: 0.7}
dropParamsarrayAzure OpenAI API isteklerinden belirli varsayılan parametrelerin hariç tutulmasına olanak tanır. Belirli parametreleri kabul etmeyen veya tanımayan API'ler için kullanışlıdır. Bu, bir dizi dizge (list of strings) olarak belirtilmelidir.dropParams: [top_p, stop]

Model Yapılandırması:

KeyTypeDescriptionExample
modelsobjectGrup içindeki model tanımlayıcılarının yapılandırmalarıyla eşleşmesini belirtir. Anahtarlar, ilgili OpenAI model adlarıyla eşleşmesi gereken model tanımlayıcılarını temsil eder. Değerler, boolean (true) veya modele özgü ayarları içeren nesneler olabilir. Bir model true olarak ayarlanırsa, grup düzeyindeki deploymentName ve version değerlerini devralır. Bir model nesne olarak yapılandırılırsa, kendi deploymentName ve version değerlerine sahip olabilir. Bu alan zorunludur ve her grup içinde en az bir model tanımlanmalıdır. Daha fazla bilgi için buraya tıklayınmodels: {gpt-3.5-turbo: true, text-davinci-003: {}}

librechat.yaml dosyasındaki grup düzeyi yapılandırma örneği:

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)

Model Düzeyinde Yapılandırma

Her grubun içinde, models alanı, model tanımlayıcılarının yapılandırmalarıyla eşleşmesini içerir:

Model Tanımlama:

KeyTypeDescriptionExample
Model Identifierstringİlgili OpenAI model adıyla eşleşmelidir. Kısmi bir eşleşme olabilir.gpt-3.5-turbo: true

Model Yapılandırması:

KeyTypeDescriptionExample
Model Configurationboolean/objectBoolean true: Grup düzeyindeki deploymentName ve version değerlerini kullanır. Nesne: Modele özel deploymentName ve version değerlerini belirtir. Sağlanmazsa, gruptan devralınır.text-davinci-003: {deploymentName: my-model-deployment, version: 2023-03-15-preview}
deploymentNamestringBu belirli model için dağıtım adı.deploymentName: my-model-deployment
versionstringBu belirli model için Azure OpenAI API sürümü.version: 2023-03-15-preview

Serverless Inference Endpoints:

KeyTypeDescriptionExample
Serverless Inference EndpointsnoteServerless modeller için modeli true olarak ayarlayın.gpt-4: true
  • Model tanımlayıcısı, bilinen bağlam sınırlarını doğru bir şekilde yansıtması ve/veya vision (görüntü) durumunda işlev görmesi için ilgili OpenAI model adıyla eşleşmelidir. Örneğin, gpt-4-vision kullanmak istiyorsanız, şu şekilde yapılandırılmalıdır:
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
  • Daha fazla örnek için Model Deployments bölümüne bakın.

  • Bir model true olarak ayarlanmışsa, bu durum söz konusu model için grup düzeyindeki deploymentName ve version değerlerinin kullanılacağı anlamına gelir. Bu durumda her ikisinin de grup düzeyinde tanımlanmış olması gerekir.

  • Bir model nesne olarak yapılandırılmışsa, kendi deploymentName ve version değerlerini belirtebilir. Bunlar sağlanmazsa, model grubun deploymentName ve version değerlerini devralır.

  • Eğer grup bir serverless inference endpoint temsil ediyorsa, onu modeller listesine eklemek için singular model true olarak ayarlanmalıdır.

Özel Hususlar

  1. Benzersiz İsimler: Hem model hem de grup isimleri, tüm yapılandırma genelinde benzersiz olmalıdır. Yinelenen isimler doğrulama hatalarına yol açar.

  2. Eksik Zorunlu Alanlar: Grup düzeyinde (boolean bayraklı modeller için) veya modellerin yapılandırmaları içinde (miras alınmıyorsa veya açıkça belirtilmemişse) zorunlu deploymentName veya version alanlarının eksik olması, grup bir serverless inference endpoint temsil etmediği sürece doğrulama hatalarına yol açacaktır.

  3. Ortam Değişkeni Referansları: Yapılandırma, ortam değişkeni referanslarını (örneğin, ${VARIABLE_NAME}) destekler. Çalışma zamanı hatalarını önlemek için başvurulan tüm değişkenlerin ortamınızda mevcut olduğundan emin olun. Yapılandırmada başvurulan tanımlı ortam değişkenlerinin eksikliği hatalara neden olacaktır. ${INSTANCE_NAME} ve ${DEPLOYMENT_NAME} benzersiz yer tutuculardır ve ortam değişkenlerine karşılık gelmezler; bunun yerine, o an seçili olan modelin instance ve deployment adına karşılık gelirler. Olası çakışmaları önlemek için INSTANCE_NAME ve DEPLOYMENT_NAME ifadelerini ortam değişkeni adı olarak kullanmanız önerilmez.

  4. Hata Yönetimi: Yinelenen isimler, tanımlanmamış ortam değişkenleri veya eksik zorunlu alanlar gibi yapılandırmadaki her türlü sorun, kurulumu geçersiz kılacak ve hızlı çözüm sağlamayı amaçlayan açıklayıcı hata mesajları üretecektir. Geçersiz bir yapılandırmayla sunucuyu çalıştırmanıza izin verilmeyecektir.

  5. Model tanımlayıcıları: (Projeye göre) bilinmeyen bir model, model tanımlayıcısı olarak kullanılabilir, ancak mesaj/token işleme için kritik olan bilinen bağlam uzunluğunu yansıtması için bilinen bir modelle eşleşmelidir; örneğin, gpt-7000 geçerli olacaktır ancak varsayılan olarak 4k token sınırına sahip olacaktır, oysa gpt-4-turbo 128k bağlam sınırına sahip olarak tanınacaktır.

Uyumluluğu korumak için yapılandırmanızı en güncel şema tanımlamaları ve yönergelerine göre doğrulayın.

Model Dağıtımları

Kullanıcılarınızın kullanımına sunulan modellerin listesi, azureOpenAI endpoint yapılandırmanızda belirtilen model grupları tarafından belirlenir.

Örneğin:

# 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

Yukarıdaki yapılandırma, gpt-4-vision-preview, gpt-3.5-turbo ve gpt-4-turbo modellerini kullanıcılarınız için tanımlandıkları sırada etkinleştirecektir.

Azure ile Assistants Kullanımı

Assistants özelliğini Azure OpenAI ile kullanabilmek için 2 temel adım bulunmaktadır.

  1. azureOpenAI endpoint'i altında, yani Endpoint-level seviyesinde assistants alanını aşağıdaki gibi true olarak ayarlayın:
endpoints:
  azureOpenAI:
  # Enable use of Assistants with Azure
    assistants: true
  1. Azure'un Assistants API entegrasyonu ile uyumlu gruplara assistants alanını ekleyin.
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)

Notlar:

  • Kimlik bilgileri için, her assistants-uyumlu grup yapılandırmasında belirtilen özel ortam değişkenlerine güvenin.

  • Birden fazla bölgeyi assistants-compatible olarak işaretlerseniz, oluşturduğunuz asistanlar bölgeler genelinde toplanarak ana asistan seçim listesine eklenecektir.

  • Azure OpenAI'ye yüklediğiniz dosyalar, ister mesaj ister asistan düzeyinde olsun, yalnızca mevcut asistanın modelinin bulunduğu bölgede kullanılabilir olacaktır.

    • Bu nedenle, Azure OpenAI Assistants için yalnızca bir bölge veya kaynak grubu kullanmanız önerilir, aksi takdirde bir hata ile karşılaşırsınız.
    • "OpenAI" üzerine yükleme yapmak, resmi code_interpreter ve retrieval yetenekleri için varsayılan davranıştır.
  • Asistanların oluşturduğu dosyaları indirme özelliği yakında desteklenecektir.

  • 19 Mayıs 2024 itibarıyla, retrieval ve streaming özellikleri Azure OpenAI üzerinden henüz desteklenmemektedir.

    • Desteklenmediği sürece retrieval ile ilgili herhangi bir hatayı önlemek için, azureAssistants endpoint yapılandırması aracılığıyla bu yeteneği tamamen devre dışı bırakmanız önerilir:
    endpoints:
      azureOpenAI:
        # ...rest
    
      azureAssistants:
      # "retrieval" omitted.
        capabilities: ["code_interpreter", "actions", "tools"]
    • Varsayılan olarak, retrieval hariç tüm yetenekler etkindir.

Azure ile Eklentileri Kullanma

Azure OpenAI ile Plugins endpoint'ini kullanmak için function calling desteğine sahip bir deployment'a ihtiyacınız vardır. Aksi takdirde, Agent ayarlarından "Functions" seçeneğini kapatın. "Functions" modunu kullanmadığınızda, ajanın oluşturduğu içeriğin gözden geçirilmesi aşaması olan "skip completion" seçeneğinin de kapalı tutulması önerilir.

Plugins endpoint ile Azure kullanmak için, Azure OpenAI endpoint yapılandırmanızda plugins alanının true olarak ayarlandığından emin olun:

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

plugins alanını yapılandırmak, Eklentilerin Azure modellerini kullanmasını sağlayacaktır.

NOT: librechat.yaml aracılığıyla yapılan mevcut yapılandırma, Eklenti kullanımı için arayüzden seçtiğiniz birincil modeli kullanır; bu, Azure dışındaki durumlarda genellikle işleyiş şekli değildir, çünkü Azure'da bunun yerine "Agent" modeli kullanılır. Azure üzerinden Eklentiler kullanılırken Agent modeli ayarı göz ardı edilebilir.

Azure ile Belirtilen Bir Base URL Kullanma

Azure OpenAI API istekleri için temel URL (base URL) dinamik olarak yapılandırılabilir. Bu, Cloudflare AI Gateway gibi hizmetleri proxy olarak kullanmak veya uygulamanın baseURL işleyişini açıkça geçersiz kılmak istediğiniz durumlarda kullanışlıdır.

LibreChat, Azure model gruplandırmanız için baseURL alanını kullanacaktır; bu alan, Azure OpenAI API örneği ve dağıtım adları için yer tutucular içerebilir.

Azure Endpoint Etki Alanı Biçimi Desteği

Azure OpenAI artık her iki endpoint domain formatını da desteklemektedir:

  • Yeni format: .cognitiveservices.azure.com
  • Eski format: .openai.azure.com

instanceName tam bir alan adı olmadan kullanıldığında, varsayılan olarak eski .openai.azure.com formatı uygulanır. Tam bir alan adı (örneğin, my-instance.cognitiveservices.azure.com) sağlarsanız, bu olduğu gibi kullanılacaktır. Bu durum hem instanceName alanları hem de baseURL yapılandırmaları için geçerlidir.

Yapılandırmada, base URL şu şekilde özelleştirilebilir:

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

NOT: ${INSTANCE_NAME} ve ${DEPLOYMENT_NAME} benzersiz yer tutuculardır ve ortam değişkenlerine karşılık gelmezler; bunun yerine, o an seçili olan modelin instance ve deployment adına karşılık gelirler. Olası çakışmaları önlemek için INSTANCE_NAME ve DEPLOYMENT_NAME ifadelerini ortam değişkeni adı olarak kullanmamanız önerilir.

Ayrıca yer tutucuları tamamen atlayabilir ve baseURL'i kimlik bilgilerinizle basitçe oluşturabilirsiniz:

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

Son olarak, tüm baseURL değerini özel bir ortam değişkeni aracılığıyla belirtebilirsiniz

      baseURL: "${MY_CUSTOM_BASEURL}"

Azure ile Otomatik Başlık Oluşturmayı Etkinleştirme

Azure için başlıklandırmayı etkinleştirmek üzere titleConvo değerini true olarak ayarlayın.

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

Ayrıca, grubunuzda/gruplarınızda yapılandırdığınız takdirde titleModel ile başlıklandırma için kullanılacak modeli belirleyebilirsiniz.

    titleModel: "gpt-3.5-turbo"

Not: "gpt-3.5-turbo" varsayılan değerdir, bu nedenle tam olarak bu modeli kullanmak istiyorsanız ve yapılandırılmışsa bunu atlayabilirsiniz. Yapılandırılmamışsa ve titleConvo değeri true olarak ayarlanmışsa, başlıklandırma işlemi bir hatayla sonuçlanacak ve hiçbir başlık oluşturulmayacaktır. Ayrıca bunu current_model olarak ayarlayarak mevcut modeli dinamik bir şekilde kullanmasını sağlayabilirsiniz.

    titleModel: "current_model"

Azure ile GPT-4 Vision Kullanımı

Azure OpenAI ile Vision (görüntü analizi) özelliğini kullanmak için gpt-4-vision-preview modelinin gruplandırmalarınızdan birinde belirtildiğinden emin olun.

Bu, OpenAI endpoint ile aynı şekilde çalışır: vision modelini seçmenize gerek yoktur, çünkü arka planda otomatik olarak değiştirilecektir.

Azure OpenAI Service (DALL-E) ile görseller oluşturun

Model IDÖzellik KullanılabilirliğiMaks. İstek (karakter)
dalle2East US1000
dalle3Sweden Central4000
  • Öncelikle DALL-E barındıran bir Azure kaynağı oluşturmanız gerekir
    • Bu yazının yazıldığı sırada, dall-e-3 SwedenCentral bölgesinde, dall-e-2 ise EastUS bölgesinde mevcuttur.
  • Ardından, görüntü oluşturma modelini yukarıdaki bölgelerden birinde dağıtmanız gerekir.
  • Azure kimlik bilgilerinize göre ortam değişkenlerinizi yapılandırın:

DALL-E yapılandırma seçenekleri:

DALL-E:

API Anahtarları:

KeyTypeDescriptionExample
DALLE_API_KEYstringDALL-E 2 ve DALL-E 3 hizmetleri için OpenAI API anahtarı.# DALLE_API_KEY=

API Anahtarları (Sürüme Özel):

KeyTypeDescriptionExample
DALLE3_API_KEYstringDALL-E 3 için OpenAI API anahtarı.# DALLE3_API_KEY=
DALLE2_API_KEYstringDALL-E 2 için OpenAI API anahtarı.# DALLE2_API_KEY=

Sistem İstemi (System Prompts):

KeyTypeDescriptionExample
DALLE3_SYSTEM_PROMPTstringDALL-E 3 için sistem istemi.# DALLE3_SYSTEM_PROMPT="Your DALL-E-3 System Prompt here"
DALLE2_SYSTEM_PROMPTstringDALL-E 2 için sistem istemi.# DALLE2_SYSTEM_PROMPT="Your DALL-E-2 System Prompt here"

Reverse Proxy Ayarları:

KeyTypeDescriptionExample
DALLE_REVERSE_PROXYstringDALL-E API istekleri için ters vekil sunucu (reverse proxy) URL'si.# DALLE_REVERSE_PROXY=

Temel URL'ler:

KeyTypeDescriptionExample
DALLE3_BASEURLstringDALL-E 3 API endpoint'leri için temel URL. Hem `.openai.azure.com` (eski) hem de `.cognitiveservices.azure.com` (yeni) alan adı formatlarını destekler.# 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_BASEURLstringDALL-E 2 API endpoint'leri için temel URL. Hem `.openai.azure.com` (eski) hem de `.cognitiveservices.azure.com` (yeni) alan adı formatlarını destekler.# 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 Entegrasyonu (İsteğe bağlı):

KeyTypeDescriptionExample
DALLE3_AZURE_API_VERSIONstringAzure OpenAI hizmeti ile DALL-E 3 için API sürümü.# DALLE3_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview
DALLE2_AZURE_API_VERSIONstringAzure OpenAI hizmeti ile DALL-E 2 için API sürümü.# DALLE2_AZURE_API_VERSION=the-api-version # e.g.: 2023-12-01-preview

Yer tutucu metinleri gerçek istemler veya talimatlarla değiştirin ve bunları doğrudan dosya içine dahil etmeyi seçerseniz API anahtarlarınızı sağlayın (hassas anahtarların kod tabanı dışında yönetilmesi önerilir). API anahtarlarını yazılıma gömerken OpenAI'ın kullanım politikalarını inceleyin ve bunlara uyun.

Not: Eğer PROXY ayarlıysa, bu ayar uygulama genelinde evrensel olduğu için DALL-E çağrıları için de kullanılacaktır.

Serverless Inference Endpoints

librechat.yaml dosyası aracılığıyla, Azure AI Foundry üzerindeki modellere erişmek için Azure AI Studio sunucusuz çıkarım (serverless inference) uç noktalarını yapılandırabilirsiniz. Bu uç noktaların ihtiyaç duyduğu özel işleme işaret etmek için serverless alanıyla birlikte yalnızca bir model tanımlayıcısı, baseURL ve apiKey gereklidir.

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

Notlar:

  • Azure AI Foundry modelleri artık sunucusuz çıkarım için /models/chat/completions?api-version=version altında endpoint'ler sağlamaktadır.
    • baseURL alanı, /models/ sonrasındaki herhangi bir şey, yani /chat/completions yolu olmadan, endpoint'in kök dizinine ayarlanmalıdır.
    • Örnek: https://example.services.ai.azure.com/models/ için https://example.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
    • version sorgu parametresi isteğe bağlıdır ve baseURL alanında belirtilebilir.
  • models alanında kullanılan model adı, Azure AI Foundry içindeki modelin dağıtım adıyla eşleşmelidir.
  • LibreChat ile uyumluluk, yazıldığı tarihte genellikle Azure AI Studio üzerinde "Kullandıkça Öde" (Pay-as-you-go) veya "Hizmet Olarak Modeller" (MaaS) dağıtımları olan ve v1/completions ya da models/chat/completions endpoint işleme özelliklerine sahip OpenAI-SDK uyumlu OpenAI API spesifikasyonları ile eşdeğerliğe dayanır.
  • Azure model kataloğundan sunucusuz dağıtımlar ("Serverless APIs") sunan tüm modeller uyumludur. Tam listeyi görmek için Dağıtım seçenekleri altında "Serverless API" ve çıkarım görevleri altında "Chat completion" seçeneklerine göre filtreleme yapabilirsiniz; ancak, gerçek zamanlı endpoint modelleri test edilmemiştir.
  • Bu sunucusuz çıkarım endpoint'leri/modelleri, Agents ile kullanımlarını sağlayan OpenAI API spesifikasyonlarına göre fonksiyon çağırmayı destekleyebilir veya desteklemeyebilir.

Bu rehber nasıl?