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

Firebase CDN

Ten dokument zawiera instrukcje dotyczące konfiguracji Firebase Storage jako CDN dla LibreChat

Firebase Storage integruje się z globalną siecią CDN Firebase Hosting, umożliwiając serwowanie plików przechowywanych w Firebase Storage za pośrednictwem lokalizacji brzegowych na całym świecie. Jest to jedna z opcji przechowywania plików w LibreChat wspieranych przez CDN, obok CloudFront for S3.

Czego będziesz potrzebować

Konto Google i około 10 minut. Utworzysz projekt Firebase, włączysz Cloud Storage, zarejestrujesz aplikację internetową, aby uzyskać dane uwierzytelniające, a następnie wskażesz na nie w LibreChat.

Utwórz projekt Firebase

Otwórz Firebase i zaloguj się. Przejdź na stronę internetową Firebase, kliknij Get started i zaloguj się za pomocą swojego konta Google.

Nazwij swój projekt. Możesz użyć ponownie tego samego projektu co w przypadku Google OAuth, jeśli już taki posiadasz.

Nadawanie nazwy projektowi Firebase

Skonfiguruj Google Analytics (opcjonalnie). Możesz wyłączyć Google Analytics dla tego projektu.

Przełącznik Google Analytics

Utwórz projekt. Odczekaj 20-30 sekund na zakończenie udostępniania, a następnie kliknij Kontynuuj.

Projekt gotowy, kliknij Kontynuuj

Włącz przechowywanie w chmurze

Otwórz wszystkie produkty. Z pulpitu nawigacyjnego projektu kliknij Wszystkie produkty.

Menu Wszystkie produkty

Wybierz Storage, a następnie kliknij Get Started.

Wybierz pamięć masową

Rozpoczęcie pracy z pamięcią masową

Potwierdź zasady bezpieczeństwa. Kliknij Dalej, aby kontynuować.

Krok zasad bezpieczeństwa

Wybierz lokalizację Cloud Storage, a następnie zakończ konfigurację i wróć do Project Overview.

Wybierz lokalizację przechowywania w chmurze

Rejestracja aplikacji internetowej

Dodaj aplikację internetową. W widoku przeglądu projektu (Project Overview) kliknij + Add app pod nazwą swojego projektu, a następnie wybierz Web.

Dodaj aplikację internetową

Zarejestruj aplikację i nadaj jej pseudonim.

Zarejestruj aplikację

Skopiuj swoje wartości firebaseConfig. Zapisz wyświetloną konfigurację w bezpiecznym miejscu.

Wartości konfiguracji Firebase

Dodaj wartości do swojego pliku .env. Przypisz każdą wartość firebaseConfig do odpowiadającej jej zmiennej:

FIREBASE_API_KEY=api_key                          # apiKey
FIREBASE_AUTH_DOMAIN=auth_domain                  # authDomain
FIREBASE_PROJECT_ID=project_id                    # projectId
FIREBASE_STORAGE_BUCKET=storage_bucket            # storageBucket
FIREBASE_MESSAGING_SENDER_ID=messaging_sender_id  # messagingSenderId
FIREBASE_APP_ID=1:your_app_id                     # appId

Aktualizacja reguł przechowywania

Zasady Open Storage. Wróć do Project Overview, wybierz Storage, a następnie otwórz kartę Rules.

Open Storage

Zezwól na dostęp do odczytu i zapisu. Zmień allow read, write: if false; na if true;, aby pasowało do poniższych reguł:

rules_version = '2';

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{userId}/{fileName} {
      allow read, write: if true;
    }
  }
}

Zaktualizowane reguły przechowywania

Opublikuj swoje zmiany.

Zasady publikowania

Konfiguracja LibreChat

Ustaw fileStrategy na firebase w pliku konfiguracyjnym librechat.yaml, aby LibreChat używał Firebase do przechowywania plików:

version: 1.3.5
cache: true
fileStrategy: 'firebase'

Aby dowiedzieć się więcej o tym pliku, zobacz przewodnik librechat.yaml.

Włącz CORS dla eksportów PNG

Wymagane tylko dla eksportów PNG

Eksportowanie konwersji jako PNG pobiera obrazy bezpośrednio z Firebase Storage w przeglądarce. Bez polityki CORS, która zezwala na Twoją domenę, żądania te są blokowane. Pomiń tę sekcję, jeśli nie eksportujesz konwersacji jako PNG.

Utwórz plik konfiguracyjny CORS. W edytorze tekstu utwórz cors.json i zezwól na dostęp ze swojej domeny:

[
  {
    "origin": ["https://ai.example.com"],
    "method": ["GET", "POST", "DELETE", "PUT"],
    "maxAgeSeconds": 3600
  }
]

Zastosuj konfigurację. Z katalogu zawierającego cors.json, uruchom poniższe polecenie, zastępując <your-cloud-storage-bucket> nazwą swojego zasobnika (bucket):

gsutil cors set cors.json gs://<your-cloud-storage-bucket>

Zweryfikuj ustawienia. Pobierz aktywną politykę i potwierdź, że jest ona zgodna z cors.json:

gsutil cors get gs://<your-cloud-storage-bucket>

Przetestuj to. Wyeksportuj konwersację jako plik PNG ze swojego dozwolonego źródła (origin). Jeśli wszystko zostało poprawnie skonfigurowane, eksport zakończy się powodzeniem bez błędów CORS.

Wskazówka dotycząca bezpieczeństwa

Zezwalaj na CORS tylko dla zaufanych źródeł i ogranicz metody oraz nagłówki do tych, których faktycznie wymaga Twoje wdrożenie.

Jaka jest ta instrukcja?