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

Azure Blob Depolama

Bu belge, LibreChat için Azure Blob Storage kurulumuna dair talimatları içerir

Üretim Kurulumu

Azure Blob Storage, LibreChat'teki dosyalar için ölçeklenebilir ve güvenli nesne depolama alanı sunar. Azure Blob Storage yapılandırmanızı gerçekleştirmek için şu adımları izleyin.

1. Bir Azure Storage Account oluşturun

  1. Azure'da oturum açın:

    • Azure Portal adresini açın ve Microsoft hesabınızla giriş yapın.
  2. Depolama Hesabı Oluşturun:

    • "Create a resource" öğesine tıklayın ve "Storage account" araması yapın.
    • "Create" düğmesine tıklayın ve gerekli ayrıntıları doldurun:
      • Abonelik ve Kaynak Grubu: Aboneliğinizi seçin ve mevcut bir kaynak grubunu seçin ya da yeni bir tane oluşturun.
      • Depolama Hesabı Adı: Benzersiz bir ad girin (örneğin, mylibrechatstorage).
      • Bölge: Kullanıcılarınıza en yakın bölgeyi seçin.
      • Performans ve Yedeklilik: İhtiyaçlarınıza en uygun performans katmanını ve yedeklilik seviyesini seçin.
    • "Review + Create" (Gözden Geçir + Oluştur) düğmesine ve ardından "Create" (Oluştur) düğmesine tıklayın. Dağıtım tamamlanana kadar bekleyin.

2. Kimlik Doğrulamayı Ayarlayın

Azure Storage Account ile kimlik doğrulaması yapmak için iki seçeneğiniz vardır:

Seçenek A: Bağlantı Dizisi (Connection String) Kullanma

  1. Erişim Anahtarlarına gidin:

    • Yeni oluşturduğunuz depolama hesabınızda, kenar çubuğundaki "Access keys" kısmına gidin.
  2. Bağlantı Dizesini Kopyala:

    • Sağlanan bağlantı dizelerinden birini kopyalayın. Bu dize, Blob Storage hesabınıza bağlanmak için gereken kimlik bilgilerini içerir.

Seçenek B: Yönetilen Kimlik (Managed Identity) Kullanımı

LibreChat uygulamanız Yönetilen Kimliği (Managed Identity) destekleyen bir Azure hizmetinde (Azure VM, App Service veya AKS gibi) çalışıyorsa, bağlantı dizesi yerine bunu kullanabilirsiniz.

  1. Yönetilen Kimliği Ata:

    • Azure kaynağınızın (VM, App Service veya AKS) sistem tarafından atanan veya kullanıcı tarafından atanan bir Managed Identity özelliğinin etkinleştirildiğinden emin olun.
  2. Depolama İzinlerini Verin:

    • Depolama hesabınızda, Storage Blob Data Contributor (veya benzer kapsamlı bir rolü) Yönetilen Kimliğinize (Managed Identity) atayın. Bu, uygulamanızın bir bağlantı dizesine ihtiyaç duymadan Blob Storage'a erişmesini sağlar.

3. Ortam Değişkenlerinizi Güncelleyin

Projenizin kök dizinindeki .env dosyanızı aşağıdaki yapılandırmayla oluşturun veya güncelleyin:

# Option A: Using a Connection String
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=yourAccountName;AccountKey=yourAccountKey;EndpointSuffix=core.windows.net

# Option B: Using Managed Identity (do not set the connection string if using Managed Identity)
AZURE_STORAGE_ACCOUNT_NAME=yourAccountName

AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAME=files
  • AZURE_STORAGE_CONNECTION_STRING: A seçeneğini kullanıyorsanız bunu ayarlayın.
  • AZURE_STORAGE_ACCOUNT_NAME: B Seçeneğini (Yönetilen Kimlik) kullanıyorsanız bunu ayarlayın. İkisini birden ayarlamayın.
  • AZURE_STORAGE_PUBLIC_ACCESS: Bloblarınızın varsayılan olarak herkese açık olmasını istemiyorsanız false olarak ayarlayın. Herkese açık erişime ihtiyacınız varsa (örneğin, herkese açık olarak görüntülenebilir görseller için) true olarak ayarlayın.
  • AZURE_CONTAINER_NAME: Bu, uygulamanızın kullanacağı kapsayıcı adıdır (örneğin, files). Uygulama, mevcut değilse bu kapsayıcıyı otomatik olarak oluşturacaktır.

4. LibreChat'i Azure Blob Storage Kullanacak Şekilde Yapılandırın

LibreChat yapılandırma dosyanızı (librechat.yaml), uygulamanın dosya işleme için Azure Blob Storage kullanması gerektiğini belirtecek şekilde güncelleyin:

version: 1.3.5
cache: true
fileStrategy: "azure_blob"

Azure Blob Storage bir nesne depolama alanıdır, CDN değildir

Azure Blob Storage, dosyaları doğrudan kaynaktan depolar ve sunar; bir CDN değildir. Görseller ve avatarlar, en iyi performans ve küresel dağıtım için bir CDN aracılığıyla sunulmalıdır. Şu anda, Firebase CDN destekli tek depolama seçeneğidir.

Belgeleri Azure Blob Storage üzerinde tutarken yalnızca avatar ve görselleri Firebase'e yönlendirmek için fileStrategies kullanabilirsiniz:

fileStrategies:
  avatar: "firebase"
  image: "firebase"
  document: "azure_blob"

Özet

  1. Depolama Hesabı Oluşturun:
    Azure Portal'da oturum açın, bir depolama hesabı oluşturun ve dağıtımın tamamlanmasını bekleyin.

  2. Kimlik Doğrulamayı Ayarlayın:

  • Seçenek A: Depolama hesabınızdaki "Access keys" kısmından bağlantı dizesini alın.
  • Seçenek B: Azure kaynağınızda Managed Identity özelliğini etkinleştirerek ve ona uygun depolama izinlerini vererek kullanın.
  1. Ortam Değişkenlerini Güncelleyin:
    .env dosyanızda şunlardan birini ayarlayın:
  • AZURE_STORAGE_CONNECTION_STRING (Seçenek A için) veya
  • AZURE_STORAGE_ACCOUNT_NAME (Seçenek B için), şunlarla birlikte:
  • AZURE_STORAGE_PUBLIC_ACCESS ve
  • AZURE_CONTAINER_NAME.
  1. LibreChat'i Yapılandırın:
    librechat.yaml yapılandırma dosyanızda fileStrategy değerini "azure_blob" olarak ayarlayın.

Bu adımlarla, LibreChat uygulamanız konteyneri otomatik olarak oluşturacak (eğer mevcut değilse) ve Azure Blob Storage kullanarak dosya yükleme, indirme ve silme işlemlerini yönetecektir. Managed Identity, uzun vadeli kimlik bilgileri ihtiyacını ortadan kaldırarak güvenli bir alternatif sunar.

Azurite ile Yerel Geliştirme

Yerel geliştirme ve test işlemleri için, gerçek bir Azure hesabına ihtiyaç duymadan Azure Blob Storage entegrasyonunuzu test etmeniz amacıyla yerel bir ortam sağlayan bir Azure Storage emülatörü olan Azurite kullanabilirsiniz.

1. Azurite'i Kurun

Azurite'i birkaç farklı yolla çalıştırabilirsiniz:

  1. VS Code için Azurite extension eklentisini yükleyin
  2. Komut paletini açın (Ctrl+Shift+P veya Cmd+Shift+P)
  3. "Azurite: Start" ifadesini arayın ve seçin

Bu, Azurite'i varsayılan ayarlarla arka planda başlatacaktır.

Seçenek B: Docker Kullanarak

docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite

Seçenek C: npm kullanma

npm install -g azurite
azurite --silent --location /path/to/azurite/workspace --debug /path/to/debug/log

2. Yerel Geliştirme için Ortam Değişkenlerini Yapılandırma

.env dosyanıza aşağıdaki ortam değişkenlerini ekleyin:

# Azurite connection string for local development
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
AZURE_STORAGE_PUBLIC_ACCESS=true
AZURE_CONTAINER_NAME=files

Notlar:

  • AccountKey değeri, Azurite tarafından kullanılan varsayılan geliştirme anahtarıdır
  • Bağlantı, yerel geliştirme için https yerine http protokolünü kullanır
  • BlobEndpoint, 10000 numaralı bağlantı noktasında çalışan yerel Azurite örneğini işaret eder.

3. Bağlantıyı Doğrulayın

Uygulamanızın yerel Azurite örneğine bağlanabildiğini doğrulamak için:

  1. LibreChat uygulamanızı başlatın
  2. Arayüz üzerinden bir dosya yüklemeyi deneyin
  3. Bağlantıyı ve işlemleri doğrulamak için Azurite günlüklerini kontrol edin

VS Code eklentisini kullanıyorsanız, açılır menüden "Azurite Blob" seçeneğini belirleyerek Output panelinde Azurite günlüklerini görüntüleyebilirsiniz.

Not

Varsayılan Azurite hesap anahtarı, yalnızca geliştirme amaçlı kullanılan sabit bir değerdir. Bu anahtarı hiçbir zaman üretim ortamlarında kullanmayın. Bağlantı dizenizin her zaman güvende olduğundan emin olun ve asla herkese açık bir depoya (repository) işlemeyin.

Bu rehber nasıl?