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

Zmienne środowiskowe

Kompleksowy przewodnik konfiguracji środowiska aplikacji za pomocą pliku `.env`. Ten dokument jest Twoim głównym źródłem wiedzy na temat zrozumienia i dostosowywania zmiennych środowiskowych, które kształtują zachowanie aplikacji w różnych kontekstach.

Witamy w kompleksowym przewodniku dotyczącym konfiguracji środowiska aplikacji za pomocą pliku .env. Niniejszy dokument stanowi kompletne źródło wiedzy na temat zrozumienia i dostosowywania zmiennych środowiskowych, które będą kształtować zachowanie Twojej aplikacji w różnych kontekstach.

Podczas gdy ustawienia domyślne stanowią solidną podstawę dla standardowej instalacji docker, zagłębienie się w ten przewodnik pozwoli odkryć pełny potencjał LibreChat. Ten przewodnik umożliwia dostosowanie LibreChat do Twoich precyzyjnych potrzeb. Dowiedz się, jak zarządzać dostępnością modeli językowych, integrować logowanie przez media społecznościowe, zarządzać systemem automatycznej moderacji i wiele więcej. Chodzi o to, aby dać Ci kontrolę nad precyzyjnym dostrojeniem LibreChat w celu zapewnienia optymalnego doświadczenia użytkownika.

Przypomnienie: Proszę zrestartować LibreChat, aby zmiany w konfiguracji weszły w życie

Alternatywnie możesz utworzyć nowy plik o nazwie docker-compose.override.yml w tym samym katalogu, w którym znajduje się główny plik docker-compose.yml dla LibreChat, gdzie możesz ustawić swoje zmienne .env w sekcji environment lub zmodyfikować domyślną konfigurację dostarczoną przez główny plik docker-compose.yml, bez konieczności bezpośredniej edycji lub powielania całego pliku.

Więcej informacji znajdziesz tutaj:


Konfiguracja serwera

Port

  • Serwer nasłuchuje na określonym porcie.
  • Zmienna środowiskowa PORT ustawia port, na którym nasłuchuje serwer. Domyślnie jest ona ustawiona na 3080.
KeyTypeDescriptionExample
HOSTstringOkreśla hosta.HOST=localhost
PORTnumberOkreśla port.PORT=3080

Trust proxy

Użyj adresu, który znajduje się w odległości co najwyżej n przeskoków od aplikacji Express. req.socket.remoteAddress to pierwszy przeskok, a pozostałe są wyszukiwane w nagłówku X-Forwarded-For od prawej do lewej. Wartość 0 oznacza, że pierwszym niezaufanym adresem będzie req.socket.remoteAddress, tzn. brak jest odwrotnego proxy (reverse proxy). Domyślna wartość zmiennej środowiskowej TRUST_PROXY jest ustawiona na 1.

Więcej informacji na ten temat można znaleźć w Express.js - trust proxy.

KeyTypeDescriptionExample
TRUST_PROXYnumberOkreśla liczbę przeskoków.TRUST_PROXY=1

Konfiguracja poświadczeń

Aby bezpiecznie przechowywać poświadczenia, potrzebujesz stałego klucza i IV. Możesz je ustawić tutaj dla środowisk prod i dev.

KeyTypeDescriptionExample
CREDS_KEYstring32-bajtowy klucz (64 znaki w formacie szesnastkowym) do bezpiecznego przechowywania danych uwierzytelniających. Wymagany przy uruchomieniu aplikacji.CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IVstring16-bajtowy IV (32 znaki w formacie szesnastkowym) do bezpiecznego przechowywania danych uwierzytelniających. Wymagany przy uruchamianiu aplikacji.CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb

Ostrzeżenie

Ostrzeżenie: Jeśli nie ustawisz CREDS_KEY oraz CREDS_IV, aplikacja ulegnie awarii podczas uruchamiania. - Możesz użyć tego Generatora kluczy, aby wygenerować je szybko.

Obsługa plików statycznych

KeyTypeDescriptionExample
STATIC_CACHE_MAX_AGEstringCache-Control max-age w sekundachSTATIC_CACHE_MAX_AGE=172800
STATIC_CACHE_S_MAX_AGEstringCache-Control s-maxage w sekundach dla współdzielonych pamięci podręcznych (CDN i proxy)STATIC_CACHE_S_MAX_AGE="86400"
DISABLE_COMPRESSIONbooleanWyłącza kompresję dla plików statycznych.DISABLE_COMPRESSION=false
ENABLE_IMAGE_OUTPUT_GZIP_SCANbooleanUmożliwia serwowanie wersji gzipped przesłanych obrazów, jeśli znajdują się one w tym samym folderze.ENABLE_IMAGE_OUTPUT_GZIP_SCAN=true
ENABLE_STATIC_ASSET_BROTLIbooleanUmożliwia serwowanie wstępnie skompresowanych wersji Brotli statycznych zasobów aplikacji, gdy są dostępne.ENABLE_STATIC_ASSET_BROTLI=true

Zachowanie:

Ustawia nagłówki Cache-Control dla plików statycznych. Te konfiguracje są uruchamiane tylko wtedy, gdy NODE_ENV jest ustawione na production.

  • Odkomentuj STATIC_CACHE_MAX_AGE, aby zmienić lokalny max-age dla plików statycznych. Domyślnie wartość ta jest ustawiona na 2 dni (172800 sekund).
  • Odkomentuj STATIC_CACHE_S_MAX_AGE, aby ustawić s-maxage dla współdzielonych pamięci podręcznych (sieci CDN i serwerów proxy). Domyślnie wartość ta jest ustawiona na 1 dzień (86400 sekund).
  • Odkomentuj DISABLE_COMPRESSION, aby wyłączyć kompresję dla plików statycznych. Domyślnie kompresja jest włączona.
  • Odkomentuj ENABLE_IMAGE_OUTPUT_GZIP_SCAN, aby włączyć skanowanie i serwowanie skompresowanych wersji obrazów (gzip), jeśli zostały one wcześniej skompresowane w tym samym folderze, pod tą samą nazwą i z rozszerzeniem .gz. Domyślnie skanowanie gzip dla przesłanych obrazów jest wyłączone.
  • Odkomentuj ENABLE_STATIC_ASSET_BROTLI, aby serwować wstępnie skompresowane wersje .br statycznych zasobów aplikacji, jeśli istnieją. Po włączeniu, Brotli jest preferowane przed gzip dla statycznych plików serwowanych przez API.

Ostrzeżenie

  • Dotyczy to tylko plików statycznych serwowanych przez serwer API i nie ma zastosowania do Firebase, NGINX ani żadnych innych konfiguracji.

Kontrola pamięci podręcznej pliku Index HTML

KeyTypeDescriptionExample
INDEX_CACHE_CONTROLstringNagłówek Cache-Control dla index.htmlINDEX_CACHE_CONTROL=no-cache, no-store, must-revalidate
INDEX_PRAGMAstringNagłówek Pragma dla index.htmlINDEX_PRAGMA=no-cache
INDEX_EXPIRESstringNagłówek Expires dla index.htmlINDEX_EXPIRES=0

Zachowanie:

Steruje nagłówkami buforowania specjalnie dla odpowiedzi index.html. Domyślnie ustawienia te zapobiegają buforowaniu, aby zapewnić użytkownikom zawsze najnowszą wersję aplikacji.

Uwaga

W przeciwieństwie do zasobów statycznych, które są buforowane w celu poprawy wydajności, nagłówki pamięci podręcznej pliku index.html są konfigurowane oddzielnie, aby zapewnić użytkownikom zawsze najnowszą powłokę aplikacji.

Baza danych MongoDB

KeyTypeDescriptionExample
MONGO_URIstringOkreśla URI MongoDB.MONGO_URI=mongodb://127.0.0.1:27017/LibreChat

Zmień to na swój URI MongoDB, jeśli jest inny. Powinieneś dodać LibreChat lub własny APP_TITLE jako nazwę bazy danych w URI.

Jeśli korzystasz z bazy danych online, format URI to mongodb+srv://<username>:<password>@<host>/<database>?<options>. Twój MONGO_URI powinien wyglądać następująco:

  • mongodb+srv://username:[email protected]/LibreChat?retryWrites=true (retryWrites to jedyna opcja, której potrzebujesz podczas korzystania z bazy danych online.)

Konfiguracja puli połączeń MongoDB

KeyTypeDescriptionExample
MONGO_MAX_POOL_SIZEnumberMaksymalna liczba połączeń w puli połączeń.# MONGO_MAX_POOL_SIZE=
MONGO_MIN_POOL_SIZEnumberMinimalna liczba połączeń w puli połączeń.# MONGO_MIN_POOL_SIZE=
MONGO_MAX_CONNECTINGnumberMaksymalna liczba połączeń, które mogą być jednocześnie w trakcie nawiązywania przez pulę połączeń.# MONGO_MAX_CONNECTING=
MONGO_MAX_IDLE_TIME_MSnumberMaksymalna liczba milisekund, przez jaką połączenie może pozostawać bezczynne w puli, zanim zostanie usunięte i zamknięte.# MONGO_MAX_IDLE_TIME_MS=
MONGO_WAIT_QUEUE_TIMEOUT_MSnumberMaksymalny czas w milisekundach, przez jaki wątek może oczekiwać na udostępnienie połączenia.# MONGO_WAIT_QUEUE_TIMEOUT_MS=

Konfiguracja schematu MongoDB

KeyTypeDescriptionExample
MONGO_AUTO_INDEXbooleanUstaw na false, aby wyłączyć automatyczne tworzenie indeksów dla wszystkich modeli powiązanych z tym połączeniem. W przypadku pominięcia, używane jest domyślne zachowanie Mongoose.# MONGO_AUTO_INDEX=
MONGO_AUTO_CREATEbooleanUstaw na false, aby wyłączyć automatyczne wywoływanie przez Mongoose metody createCollection() dla każdego modelu utworzonego w tym połączeniu. W przypadku pominięcia, używane jest domyślne zachowanie Mongoose.# MONGO_AUTO_CREATE=

Alternatywnie możesz użyć documentDb, który emuluje mongoDb, ale:

  • nie obsługuje retryWrites - użyj retryWrites=false
  • wymaga połączenia TLS, dlatego należy użyć parametrów tls=true, aby włączyć TLS, oraz tlsCAFile=/path-to-ca/bundle.pem, aby wskazać plik pakietu CA dostarczony przez AWS

URI dla documentDb będzie wyglądać następująco:

  • mongodb+srv://username:password@domain/dbname?retryWrites=false&tls=true&tlsCAFile=/path-to-ca/bundle.pem

Zobacz także:

Domeny aplikacji

Aby skonfigurować LibreChat do użytku lokalnego lub wdrożenia w domenie niestandardowej, ustaw następujące zmienne środowiskowe:

KeyTypeDescriptionExample
DOMAIN_CLIENTstringOkreśla domenę po stronie klienta.DOMAIN_CLIENT=http://localhost:3080
DOMAIN_SERVERstringOkreśla domenę po stronie serwera.DOMAIN_SERVER=http://localhost:3080
ADMIN_PANEL_URLstringBazowy adres URL zewnętrznego panelu administratora używany do przekierowań OAuth/SSO administratora, gdy panel administratora jest hostowany oddzielnie. Nie dodawaj ukośnika na końcu.ADMIN_PANEL_URL=https://admin.example.com/admin
ADMIN_PANEL_SESSION_SECRETstringWymagany klucz szyfrowania sesji dla dołączonego panelu administratora (min. 32 znaki). Usługi admin-panel w docker-compose oraz deploy-compose odczytują go jako SESSION_SECRET. Wygeneruj go za pomocą `openssl rand -hex 32` przed uruchomieniem stosu.ADMIN_PANEL_SESSION_SECRET=<your-32-char-random-string>
ADMIN_PANEL_PORTnumberPort hosta dla dołączonego panelu administracyjnego w domyślnym docker-compose. W deploy-compose panel jest udostępniany pod adresem http://admin.localhost za pośrednictwem nginx.ADMIN_PANEL_PORT=3000

Podczas wdrażania LibreChat w domenie niestandardowej, zastąp http://localhost:3080 swoim wdrożonym adresem URL.

  • np. https://librechat.example.com.

Zapobieganie indeksowaniu przez publiczne wyszukiwarki

Domyślnie Twoja witryna nie będzie indeksowana przez publiczne wyszukiwarki (np. Google, Bing, …). Oznacza to, że ludzie nie będą mogli znaleźć Twojej witryny za pośrednictwem tych wyszukiwarek. Jeśli chcesz, aby Twoja witryna była bardziej widoczna i łatwiejsza do znalezienia, możesz zmienić poniższe ustawienie na false

KeyTypeDescriptionExample
NO_INDEXbooleanZapobiega indeksowaniu Twojej witryny przez publiczne wyszukiwarki.NO_INDEX=true

Uwaga: Nie ma gwarancji, że ta metoda zadziała w przypadku wszystkich wyszukiwarek, a niektóre z nich mogą nadal indeksować Twoją witrynę lub stronę internetową w innych celach, takich jak buforowanie lub archiwizacja. W związku z tym nie należy polegać wyłącznie na tej metodzie w celu ochrony poufnych lub wrażliwych informacji w swojej witrynie lub na stronie internetowej.

Logowanie

LibreChat posiada wbudowany centralny system logowania, zobacz Logging System, aby uzyskać więcej informacji.

Pliki dziennika

  • Rejestrowanie debugowania jest domyślnie włączone i ma kluczowe znaczenie dla programowania.
  • Aby zgłosić problemy, odtwórz błąd i prześlij logi z ./api/logs/debug-%DATE%.log pod adresem: LibreChat GitHub Issues
  • Dzienniki błędów są przechowywane w tej samej lokalizacji.

Zmienne środowiskowe

KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanUtrzymuj aktywne logi debugowania.DEBUG_LOGGING=true
DEBUG_CONSOLEbooleanWłącz szczegółowe logi konsoli/stdout w tym samym formacie, co logi debugowania w pliku.DEBUG_CONSOLE=false
LOG_TO_FILEbooleanUstaw na false, aby wyłączyć transporty Winston oparte na plikach, zachowując jednocześnie dostępność logowania w konsoli.LOG_TO_FILE=true
CONSOLE_JSONbooleanWłącz szczegółowe logi JSON w konsoli/stdout, odpowiednie dla wdrożeń w chmurze, takich jak GCP/AWS.CONSOLE_JSON=false
CONSOLE_JSON_STRING_LENGTHnumberSkonfiguruj rozmiar ucięcia dla wartości ciągów znaków w logach konsoli/stdout w formacie JSON. Domyślnie: 255.# CONSOLE_JSON_STRING_LENGTH=255
LIBRECHAT_LOG_DIRstringNiestandardowy katalog dla plików dziennika. Domyślnie /app/logs (Docker) lub api/logs (lokalny programista).# LIBRECHAT_LOG_DIR=/custom/log/path
MEM_DIAGbooleanWłącz diagnostykę pamięci — rejestruje migawki sterty/RSS co 60 sekund. Automatycznie włączana podczas uruchamiania z flagą --inspect.# MEM_DIAG=true
AGENT_DEBUG_LOGGINGbooleanWłącza szczegółowe logowanie debugowania w kontrolerze agenta (liczba tokenów, diagnostyka przycinania kontekstu).# AGENT_DEBUG_LOGGING=true

Uwaga:

  • DEBUG_LOGGING może być używane z DEBUG_CONSOLE lub CONSOLE_JSON, ale nie z oboma jednocześnie.
  • DEBUG_CONSOLE oraz CONSOLE_JSON wzajemnie się wykluczają.
  • CONSOLE_JSON: W przypadku obsługi logów konsoli we wdrożeniach chmurowych (takich jak GCP lub AWS), włączenie tej opcji spowoduje zrzucanie logów ze znacznikiem czasu UTC i formatowanie ich jako JSON.

Uwaga: DEBUG_CONSOLE nie jest zalecane, ponieważ dane wyjściowe mogą być dość szczegółowe, dlatego jest domyślnie wyłączone.

Uprawnienia

UID i GID to numery przypisane przez system Linux każdemu użytkownikowi i grupie w systemie. Jeśli występują problemy z uprawnieniami, ustaw tutaj UID i GID użytkownika uruchamiającego polecenie Docker Compose. Aplikacje w kontenerze będą działać z tymi UID/GID.

KeyTypeDescriptionExample
UIDnumberIdentyfikator użytkownika.# UID=1000
GIDnumberIdentyfikator grupy.# GID=1000

Śledzenie OpenTelemetry

LibreChat może emitować ślady OpenTelemetry backendu w celu zapewnienia widoczności ogólnego API, HTTP, MongoDB, Mongoose, Redis oraz żądań wychodzących. Spany na poziomie poleceń Redis są opcjonalne, dzięki czemu domyślne ślady pozostają na wysokim poziomie. Użyj Langfuse do obserwowalności promptów/modeli specyficznych dla GenAI.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanWłącz śledzenie OpenTelemetry dla backendu. Śledzenie pozostaje wyłączone, gdy OTEL_SDK_DISABLED=true.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringNazwa usługi raportowana do OpenTelemetry. Domyślnie: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringWersja usługi raportowana do OpenTelemetry. Domyślnie przyjmuje wersję pakietu, jeśli nie ustawiono inaczej.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringPodstawowy endpoint eksportera OTLP.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringSpecyficzny dla śledzenia endpoint OTLP. Nadpisuje bazowy endpoint dla śladów, gdy jest ustawiony.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringNagłówki eksportera OTLP oddzielone przecinkami, takie jak metadane autoryzacji.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringWybór eksportera śledzenia.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringPróbnik śledzenia OpenTelemetry. Domyślny przykład: parentbased_always_on.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringPoziom logowania OpenTelemetry SDK.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanWyłącz SDK OpenTelemetry, nawet jeśli śledzenie jest włączone.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanWłącz zakresy na poziomie poleceń Redis. Domyślnie wyłączone, aby zachować wysoki poziom śledzenia backendu.# OTEL_IOREDIS_TRACING_ENABLED=false

Real User Monitoring (Przeglądarka)

LibreChat może publikować telemetrię Real User Monitoring (RUM) przeglądarki do kolektorów OTLP kompatybilnych z HyperDX. RUM jest domyślnie wyłączony.

KeyTypeDescriptionExample
RUM_ENABLEDbooleanWłącz monitorowanie rzeczywistych użytkowników (RUM) w przeglądarce. Domyślnie: false.# RUM_ENABLED=false
RUM_PROVIDERstringDostawca Browser RUM. Obecnie obsługuje `hyperdx`.# RUM_PROVIDER=hyperdx
RUM_URLstringPubliczny adres URL kolektora używany przez tryb public-token.# RUM_URL=http://localhost:4318
RUM_SERVICE_NAMEstringNazwa usługi zgłaszana przez SDK przeglądarki. Domyślnie: librechat-web.# RUM_SERVICE_NAME=librechat-web
RUM_ENVIRONMENTstringEtykieta środowiska zgłaszana za pomocą telemetrii przeglądarki.# RUM_ENVIRONMENT=development
RUM_AUTH_MODEstringTryb uwierzytelniania dla telemetrii przeglądarki. Użyj `publicToken` lub `proxy`.# RUM_AUTH_MODE=publicToken
RUM_PUBLIC_TOKENstringPubliczny token przeglądarki dla trybu public-token. Traktuj go jako publiczny i ogranicz pobieranie danych w kolektorze.# RUM_PUBLIC_TOKEN=
RUM_PROXY_TARGET_URLstringPodstawowy adres URL kolektora używany w trybie uwierzytelnionego proxy. Wymagany, gdy `RUM_AUTH_MODE=proxy`.# RUM_PROXY_TARGET_URL=http://otel-collector:4318
RUM_PROXY_TIMEOUT_MSnumberLimit czasu żądania proxy w milisekundach. Domyślnie: 10000.# RUM_PROXY_TIMEOUT_MS=10000
RUM_TRACE_PROPAGATION_TARGETSstringRozdzielona przecinkami lista własnych źródeł HTTPS lub adresów URL, które powinny otrzymywać nagłówki traceparent.# RUM_TRACE_PROPAGATION_TARGETS=https://api.example.com
RUM_DISABLE_REPLAYbooleanWyłącz odtwarzanie sesji przeglądarki. Domyślnie: true.# RUM_DISABLE_REPLAY=true
RUM_CONSOLE_CAPTUREbooleanPrzechwytuj logi konsoli przeglądarki. Może gromadzić wrażliwe prompty, odpowiedzi lub ładunki (payloads).# RUM_CONSOLE_CAPTURE=false
RUM_ADVANCED_NETWORK_CAPTUREbooleanPrzechwytuj szczegółowe ładunki sieciowe. Może gromadzić wrażliwe prompty, odpowiedzi lub ładunki.# RUM_ADVANCED_NETWORK_CAPTURE=false
RUM_SAMPLE_RATEnumberWspółczynnik próbkowania telemetrii przeglądarki od 0 do 1. Domyślnie: 1.# RUM_SAMPLE_RATE=1

W trybie publicToken przeglądarka wysyła telemetrię bezpośrednio do RUM_URL za pomocą RUM_PUBLIC_TOKEN. W trybie proxy przeglądarka wysyła telemetrię przez LibreChat; backend weryfikuje sesję użytkownika, usuwa nagłówki uwierzytelniające aplikacji i przekazuje telemetrię do RUM_PROXY_TARGET_URL. Nieprawidłowe lub wygasłe sesje są odrzucane z odpowiedzią 204, dzięki czemu błędy telemetrii przeglądarki nie powodują wyświetlania standardowych błędów uwierzytelniania API. Wyniki proxy są zliczane w rum_proxy_requests_total z etykietami endpoint oraz result w punkcie końcowym /metrics API LibreChat.

Ścieżka konfiguracji - librechat.yaml

Określ alternatywną lokalizację pliku konfiguracyjnego LibreChat. Możesz podać ścieżkę bezwzględną, ścieżkę względną lub URL. Nazwa pliku w ścieżce jest dowolna i nie musi brzmieć librechat.yaml; każdy poprawny plik konfiguracyjny będzie działał.

Uwaga: Jeśli wolisz, aby LibreChat szukał pliku konfiguracyjnego w katalogu głównym (co jest zachowaniem domyślnym), po prostu pozostaw tę opcję zakomentowaną.

KeyTypeDescriptionExample
CONFIG_PATHstringAlternatywna lokalizacja pliku konfiguracyjnego LibreChat.# CONFIG_PATH=https://raw.githubusercontent.com/danny-avila/LibreChat/main/librechat.example.yaml

Umiejętności wdrażania

Deployment Skills są wczytywane w trybie tylko do odczytu podczas uruchamiania z systemu plików i udostępniane użytkownikom, którzy mają włączoną funkcję Skills.

KeyTypeDescriptionExample
DEPLOYMENT_SKILLS_DIRstringKatalog zawierający umiejętności (Skills) dostarczone przez wdrożenie. Domyślnie `./skill` w katalogu głównym projektu.# DEPLOYMENT_SKILLS_DIR=./skill

Zrestartuj LibreChat po zmianie tego katalogu lub jakichkolwiek plików wewnątrz niego. Umiejętności (Skills) dostarczone przez wdrożenie mają pierwszeństwo przed utrwalonymi Umiejętnościami o tej samej nazwie.

Walidacja konfiguracji

Domyślnie LibreChat zakończy działanie z błędem (kod wyjścia 1), jeśli plik konfiguracyjny librechat.yaml zawiera błędy walidacji. To zachowanie typu „fail-fast” pomaga wczesne wykrywanie problemów z konfiguracją w potokach wdrażania i zapobiega uruchomieniu z niezamierzonymi ustawieniami domyślnymi.

KeyTypeDescriptionExample
CONFIG_BYPASS_VALIDATIONbooleanGdy ustawiono na `true`, serwer zarejestruje ostrzeżenie i będzie kontynuował uruchamianie z domyślną konfiguracją, nawet jeśli `librechat.yaml` zawiera błędy walidacji. Zachowuje to starsze zachowanie.# CONFIG_BYPASS_VALIDATION=true

Ostrzeżenie

Używanie CONFIG_BYPASS_VALIDATION=true nie jest zalecane w środowiskach produkcyjnych. Jest to rozwiązanie przeznaczone jako tymczasowe obejście podczas debugowania problemów z konfiguracją. Zawsze naprawiaj błędy walidacji w swoim pliku konfiguracyjnym.

Obsługa nieprzechwyconych wyjątków

Domyślnie LibreChat zakończy proces w przypadku wystąpienia nieprzechwyconego wyjątku, co jest standardowym zachowaniem Node.js. Możesz to zmienić, aby aplikacja działała dalej po wystąpieniu nieprzechwyconych wyjątków.

KeyTypeDescriptionExample
CONTINUE_ON_UNCAUGHT_EXCEPTIONbooleanGdy ustawiono na `true`, aplikacja będzie kontynuować działanie po napotkaniu nieobsłużonych wyjątków, zamiast kończyć proces.# CONTINUE_ON_UNCAUGHT_EXCEPTION=false

Ostrzeżenie

Niezalecane w środowisku produkcyjnym, chyba że jest to konieczne. Nieprzechwycone wyjątki mogą doprowadzić aplikację do nieprzewidywalnego stanu.

Endpoints

W tej sekcji możesz skonfigurować punkty końcowe (endpoints) i wybór modeli, ich klucze API, a także ustawienia proxy i reverse proxy dla punktów końcowych, które to obsługują.

Konfiguracja ogólna

Odkomentuj ENDPOINTS, aby dostosować dostępne endpointy w LibreChat.

KeyTypeDescriptionExample
ENDPOINTSstringRozdzielona przecinkami lista dostępnych endpoint.# ENDPOINTS=openAI,agents,assistants,gptPlugins,azureOpenAI,google,anthropic,bingAI,custom
PROXYstringWychodzący serwer proxy dla obsługiwanych klientów po stronie serwera. Dotyczy zarówno celów HTTP, jak i HTTPS.PROXY=
HTTP_PROXYstringRezerwowy serwer proxy HTTP używany przez wspieranych klientów po stronie serwera, gdy zmienna PROXY nie jest ustawiona.# HTTP_PROXY=
HTTPS_PROXYstringRezerwowy serwer proxy HTTPS używany przez wspierane klienty po stronie serwera, gdy zmienna PROXY nie jest ustawiona.# HTTPS_PROXY=
NO_PROXYstringRozdzielona przecinkami lista hostów, domen lub zakresów IP, które obsługiwane klienty po stronie serwera powinny pomijać. Obsługiwany jest również wariant pisany małymi literami no_proxy.# NO_PROXY=
TITLE_CONVObooleanWłącz tytułowanie dla wszystkich endpoint.TITLE_CONVO=true

Znane endpointy - librechat.yaml

KeyTypeDescriptionExample
ANYSCALE_API_KEYstringKlucz API dla Anyscale.# ANYSCALE_API_KEY=
APIPIE_API_KEYstringKlucz API dla Apipie.# APIPIE_API_KEY=
COHERE_API_KEYstringKlucz API dla Cohere.# COHERE_API_KEY=
FIREWORKS_API_KEYstringKlucz API dla Fireworks.# FIREWORKS_API_KEY=
GROQ_API_KEYstringKlucz API dla Groq.# GROQ_API_KEY=
MISTRAL_API_KEYstringKlucz API dla Mistral.# MISTRAL_API_KEY=
OPENROUTER_KEYstringKlucz API dla OpenRouter.# OPENROUTER_KEY=
PERPLEXITY_API_KEYstringKlucz API dla Perplexity.# PERPLEXITY_API_KEY=
SHUTTLEAI_API_KEYstringKlucz API dla ShuttleAI.# SHUTTLEAI_API_KEY=
TOGETHERAI_API_KEYstringKlucz API dla TogetherAI.# TOGETHERAI_API_KEY=
DEEPSEEK_API_KEYstringKlucz API dla Deepseek API# DEEPSEEK_API_KEY=

Funkcja wyszukiwania w sieci umożliwia korzystanie z możliwości przeszukiwania internetu w ramach LibreChat.

Ważne: Dokładne nazwy zmiennych środowiskowych przedstawione poniżej są domyślnymi odniesieniami i można je dostosować za pomocą pliku konfiguracyjnego librechat.yaml, aby używać dowolnych preferowanych nazw zmiennych.

Aby uzyskać szczegółowe opcje konfiguracji i dostosowywania, zobacz: Web Search Configuration

KeyTypeDescriptionExample
SERPER_API_KEYstringKlucz API dla dostawcy wyszukiwania Serper. Pobierz swój klucz z https://serper.dev/api-keys# SERPER_API_KEY=
TAVILY_API_KEYstringKlucz API dla dostawcy wyszukiwania i scrapingu Tavily. Uzyskaj swój klucz na stronie https://app.tavily.com/home# TAVILY_API_KEY=
TAVILY_SEARCH_URLstringNiestandardowy adres URL API wyszukiwania Tavily (opcjonalnie). Wymagany tylko w przypadku niestandardowych lub pośredniczących punktów końcowych wyszukiwania zgodnych z Tavily.# TAVILY_SEARCH_URL=
TAVILY_EXTRACT_URLstringNiestandardowy adres URL API Tavily Extract (opcjonalnie). Wymagany tylko w przypadku niestandardowych lub pośredniczących punktów końcowych (endpoint) zgodnych z Tavily.# TAVILY_EXTRACT_URL=
FIRECRAWL_API_KEYstringKlucz API dla usługi scrapingu Firecrawl. Pobierz swój klucz ze strony https://docs.firecrawl.dev/introduction#api-key# FIRECRAWL_API_KEY=
FIRECRAWL_API_URLstringNiestandardowy adres URL API Firecrawl (opcjonalnie). Wymagany tylko w przypadku niestandardowych instancji Firecrawl.# FIRECRAWL_API_URL=
FIRECRAWL_VERSIONstringWersja Firecrawl API (v0 lub v1).# FIRECRAWL_VERSION=v1
JINA_API_KEYstringKlucz API dla usługi Jina reranker. Pobierz swój klucz z https://jina.ai/api-dashboard/# JINA_API_KEY=
JINA_API_URLstringNiestandardowy adres URL API Jina (opcjonalnie). Wymagany tylko w przypadku niestandardowych instancji Jina.# JINA_API_URL=
COHERE_API_KEYstringKlucz API dla usługi reranker Cohere. Uzyskaj swój klucz na stronie https://dashboard.cohere.com/welcome/login# COHERE_API_KEY=

Uwaga: Te nazwy zmiennych można dostosować w pliku konfiguracyjnym librechat.yaml. Na przykład, możesz użyć CUSTOM_SERPER_KEY zamiast SERPER_API_KEY, konfigurując to w ustawieniach wyszukiwania internetowego. Szczegółowe informacje na temat dostosowywania nazw zmiennych znajdują się w dokumentacji Web Search Configuration.

Anthropic

zobacz: Anthropic Endpoint

  • Możesz poprosić o klucz dostępu pod adresem https://platform.claude.com/
  • Pozostaw ANTHROPIC_API_KEY= puste, aby wyłączyć ten endpoint
  • Ustaw ANTHROPIC_API_KEY= na "user_provided", aby umożliwić użytkownikom podanie własnego klucza API z poziomu WebUI
  • Jeśli masz dostęp do reverse proxy dla Anthropic, możesz je ustawić za pomocą ANTHROPIC_REVERSE_PROXY=.
    • pozostaw puste lub zakomentuj, aby użyć domyślnego adresu bazowego (base url)
KeyTypeDescriptionExample
ANTHROPIC_API_KEYstringKlucz API Anthropic lub "user_provided", aby umożliwić użytkownikom podanie własnego klucza API.Defaults to an empty string.
ANTHROPIC_MODELSstringRozdzielona przecinkami lista modeli Anthropic do użycia.# ANTHROPIC_MODELS=claude-fable-5,claude-opus-4-8,claude-opus-4-7,claude-sonnet-4-6,claude-opus-4-6,claude-opus-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022
ANTHROPIC_REVERSE_PROXYstringOdwrotne proxy dla Anthropic.# ANTHROPIC_REVERSE_PROXY=
ANTHROPIC_TITLE_MODELstringPRZESTARZAŁE: Model używany do nadawania tytułów w Anthropic.# ANTHROPIC_TITLE_MODEL=claude-3-haiku-20240307
  • ANTHROPIC_TITLE_MODEL jest teraz przestarzały i zostanie usunięty w przyszłych wersjach. Zamiast tego użyj ustawienia punktu końcowego titleModel w konfiguracji librechat.yaml.

Uwaga: Musi być kompatybilne z Anthropic endpoint. Ponadto modele Claude 2 i Claude 3 najlepiej sprawdzają się w tym zadaniu, przy czym modele claude-3-haiku są najtańsze.

Claude Fable 5 znajduje się na domyślnej liście modeli Anthropic. Modele klasy Fable/Mythos wykorzystują nowoczesne zachowanie Anthropic w LibreChat: 1 mln tokenów kontekstu, obsługę adaptacyjnego myślenia (adaptive thinking), obsługę buforowania promptów (prompt caching) oraz obsługę thinkingDisplay dla podsumowanych lub pominiętych wyników rozumowania.

Anthropic przez Vertex AI

Możesz również korzystać z modeli Anthropic Claude za pośrednictwem Google Cloud Vertex AI. Szczegółowe opcje konfiguracji YAML znajdziesz tutaj: Konfiguracja Anthropic Vertex AI

KeyTypeDescriptionExample
ANTHROPIC_USE_VERTEXbooleanUstaw na true, aby używać modeli Anthropic przez Google Vertex AI zamiast bezpośredniego API.ANTHROPIC_USE_VERTEX=true
ANTHROPIC_VERTEX_REGIONstringRegion Google Cloud dla Vertex AI. Domyślnie: us-east5.ANTHROPIC_VERTEX_REGION=us-east5

Uwaga: Podczas korzystania z Vertex AI należy również skonfigurować GOOGLE_SERVICE_KEY_FILE (zobacz Konfiguracja Google) przy użyciu konta serwisowego, które posiada rolę Vertex AI User.

AWS Bedrock

Zobacz: Konfiguracja AWS Bedrock

KeyTypeDescriptionExample
BEDROCK_AWS_DEFAULT_REGIONstringDla Bedrock należy podać domyślny region AWS.BEDROCK_AWS_DEFAULT_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_IDstringIdentyfikator klucza dostępu AWS dla Bedrock. Opcjonalny w przypadku korzystania z domyślnego łańcucha poświadczeń AWS.# BEDROCK_AWS_ACCESS_KEY_ID=your_access_key_id
BEDROCK_AWS_SECRET_ACCESS_KEYstringAWS secret access key dla Bedrock. Opcjonalne w przypadku korzystania z domyślnego łańcucha poświadczeń AWS.# BEDROCK_AWS_SECRET_ACCESS_KEY=your_secret_access_key
BEDROCK_AWS_SESSION_TOKENstringToken sesji AWS dla tymczasowych poświadczeń. Opcjonalny.# BEDROCK_AWS_SESSION_TOKEN=your_session_token
BEDROCK_AWS_PROFILEstringNazwa profilu w udostępnionej konfiguracji AWS dla Bedrock. Opcjonalna, jeśli używany jest domyślny łańcuch poświadczeń AWS.# BEDROCK_AWS_PROFILE=your-profile-name
BEDROCK_AWS_BEARER_TOKENstringKlucz API Amazon Bedrock dla autoryzacji bearer lub user_provided, aby umożliwić użytkownikom wprowadzanie własnego klucza API Bedrock w interfejsie użytkownika.# BEDROCK_AWS_BEARER_TOKEN=your_bedrock_api_key
BEDROCK_AWS_MODELSstringRozdzielona przecinkami lista identyfikatorów modeli Bedrock. Jeśli zostanie pominięta, uwzględnione zostaną wszystkie znane obsługiwane modele.# BEDROCK_AWS_MODELS=anthropic.claude-fable-5,anthropic.claude-opus-4-8,anthropic.claude-opus-4-7,anthropic.claude-sonnet-4-6,meta.llama3-1-8b-instruct-v1:0

Uwaga: Możesz pominąć klucze dostępu, aby użyć domyślnego łańcucha poświadczeń AWS (zmienne środowiskowe, poświadczenia SSO, współdzielone pliki poświadczeń lub usługa metadanych instancji EC2/ECS). Zobacz AWS Bedrock Setup, aby uzyskać więcej szczegółów.

Modele klasy Claude Fable/Mythos w Bedrock są dostępne wyłącznie poprzez profile wnioskowania (inference-profile). Użyj identyfikatora profilu, takiego jak us.anthropic.claude-fable-5, i włącz wymagane ustawienie udostępniania danych Anthropic w konsoli Bedrock lub poprzez Data Retention API przed ich wywołaniem.

BingAI

Bing, używany również dla Sydney, jailbreak oraz Bing Image Creator

KeyTypeDescriptionExample
BINGAI_TOKENstringToken dostępu Bing. Pozostaw puste, aby wyłączyć. Można ustawić na "user_provided", aby umożliwić użytkownikom podanie własnego tokena z poziomu WebUI.BINGAI_TOKEN=user_provided
BINGAI_HOSTstringURL hosta Bing. Pozostaw zakomentowane, aby użyć domyślnego serwera.# BINGAI_HOST=https://cn.bing.com

Uwaga: Zaleca się pozostawienie wartości "user_provided" i podanie tokena z poziomu WebUI.

Google

Postępuj zgodnie z tymi instrukcjami, aby skonfigurować Google Endpoint

KeyTypeDescriptionExample
GOOGLE_KEYstringKlucz API Google. Ustaw na "user_provided", aby umożliwić użytkownikom podawanie własnego klucza API z poziomu WebUI.GOOGLE_KEY=user_provided
GOOGLE_SERVICE_KEY_FILEstringŚcieżka do pliku klucza JSON konta serwisowego Google, adres URL, z którego można go pobrać, lub ciąg znaków JSON. Używane do uwierzytelniania Vertex AI (np. funkcje OCR).GOOGLE_SERVICE_KEY_FILE=/path/to/auth.json
GOOGLE_REVERSE_PROXYstringURL odwrotnego proxy Google.GOOGLE_REVERSE_PROXY=
GOOGLE_AUTH_HEADERbooleanUżyj nagłówka Authorization zamiast X-goog-api-key. Niektóre reverse proxy tego wymagają.# GOOGLE_AUTH_HEADER=true
GOOGLE_MODELSstringDostępne modele Gemini API Google, oddzielone przecinkami.GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash,gemini-2.0-flash-lite
GOOGLE_MODELSstringDostępne modele Vertex AI Google, oddzielone przecinkami.GOOGLE_MODELS=gemini-3.1-pro-preview,gemini-3.1-pro-preview-customtools,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
GOOGLE_TITLE_MODELstringPRZESTARZAŁE: Model używany do nadawania tytułów w Google.GOOGLE_TITLE_MODEL=gemini-pro
GOOGLE_LOCstringOkreśla lokalizację Google Cloud do przetwarzania żądań APIGOOGLE_LOC=us-central1
GOOGLE_CLOUD_LOCATIONstringAlternatywny region dla generowania obrazów przez Gemini (np. global).# GOOGLE_CLOUD_LOCATION=global
GOOGLE_EXCLUDE_SAFETY_SETTINGSstringCałkowicie pomiń ustawienia bezpieczeństwa zawarte domyślnie, co spowoduje użycie ustawień domyślnych dostawcyGOOGLE_EXCLUDE_SAFETY_SETTINGS=true
GOOGLE_SAFETY_SEXUALLY_EXPLICITstringUstawienie bezpieczeństwa dla treści o charakterze seksualnym. Dostępne opcje to BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY oraz OFF.GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECHstringUstawienie bezpieczeństwa dla treści zawierających mowę nienawiści. Dostępne opcje to BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY oraz OFF.GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENTstringUstawienie bezpieczeństwa dla treści związanych z nękaniem. Dostępne opcje to BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY oraz OFF.GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENTstringUstawienie bezpieczeństwa dla niebezpiecznych treści. Dostępne opcje to BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY oraz OFF.GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITYstringUstawienie bezpieczeństwa dla treści dotyczących integralności obywatelskiej. Dostępne opcje to BLOCK_ALL, BLOCK_ONLY_HIGH, WARN_ONLY oraz OFF.# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

Dostosuj dostępne modele, oddzielając je przecinkami, bez spacji. Pierwszy z nich będzie domyślny. Pozostaw puste lub zakomentuj, aby użyć ustawień wewnętrznych.

  • GOOGLE_TITLE_MODEL jest teraz przestarzałe i zostanie usunięte w przyszłych wersjach. Zamiast tego użyj ustawienia punktu końcowego titleModel Endpoint Setting w konfiguracji librechat.yaml.

Uwaga: W przypadku zmiennych GOOGLE_SAFETY dla Vertex AI, domyślnie nie masz dostępu do ustawienia BLOCK_NONE. Aby użyć tego ograniczonego ustawienia HarmBlockThreshold, musisz wykonać jedną z poniższych czynności:

Generowanie obrazów przez Gemini

Generowanie obrazów Gemini to narzędzie dla Agentów, które obsługuje zarówno Gemini API, jak i Vertex AI. Zobacz: Gemini Image Generation

KeyTypeDescriptionExample
GEMINI_API_KEYstringDedykowany klucz API Gemini do generowania obrazów. Jeśli nie zostanie ustawiony, użyty zostanie GOOGLE_KEY.# GEMINI_API_KEY=your_gemini_api_key
GEMINI_IMAGE_MODELstringModel Gemini do generowania obrazów. Domyślnie: gemini-2.5-flash-image.# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

Uwaga: Gdy nie skonfigurowano klucza API, narzędzie automatycznie przełącza się na Vertex AI, korzystając z konta serwisowego z GOOGLE_SERVICE_KEY_FILE. Konto serwisowe musi posiadać rolę Vertex AI User.

OpenAI

Zobacz: Konfiguracja OpenAI

KeyTypeDescriptionExample
OPENAI_API_KEYstringTwój klucz API OpenAI. Pozostaw puste, aby wyłączyć ten endpoint lub ustaw na "user_provided", aby umożliwić użytkownikom podanie własnego klucza API z poziomu WebUI.OPENAI_API_KEY=user_provided
OPENAI_MODELSstringDostosuj dostępne modele, oddzielone przecinkami, bez spacji. Pierwszy z nich będzie domyślny. Pozostaw zakomentowane, aby użyć ustawień wewnętrznych.# OPENAI_MODELS=gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini
DEBUG_OPENAIbooleanWłącz tryb debugowania dla endpoint OpenAI.DEBUG_OPENAI=false
OPENAI_SUMMARIZEbooleanWłącz podsumowywanie wiadomości. Domyślnie False# OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODELstringModel używany do podsumowań OpenAI.# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo
OPENAI_FORCE_PROMPTbooleanWymuś wywołanie API z ładunkiem prompt zamiast ładunku messages.# OPENAI_FORCE_PROMPT=false
OPENAI_ORGANIZATIONstringOkreśl, której organizacji użyć dla każdego żądania API do OpenAI. Opcjonalne# OPENAI_ORGANIZATION=
OPENAI_REVERSE_PROXYstringPRZESTARZAŁE: Ustawienia odwrotnego proxy dla OpenAI.# OPENAI_REVERSE_PROXY=
OPENAI_TITLE_MODELstringPRZESTARZAŁE: Model używany do nadawania tytułów OpenAI.# OPENAI_TITLE_MODEL=gpt-3.5-turbo
  • OPENAI_TITLE_MODEL jest teraz przestarzały i zostanie usunięty w przyszłych wersjach. Zamiast tego użyj ustawienia punktu końcowego titleModel Endpoint Setting w konfiguracji librechat.yaml.
  • OPENAI_REVERSE_PROXY jest teraz przestarzałe i zostanie usunięte w przyszłych wersjach. Zamiast tego użyj niestandardowego endpoint.

Asystenci

Zobacz: Konfiguracja Assistants

KeyTypeDescriptionExample
ASSISTANTS_API_KEYstringTwój klucz API OpenAI dla Assistants API. Pozostaw puste, aby wyłączyć ten endpoint, lub ustaw na "user_provided", aby umożliwić użytkownikom podanie własnego klucza API z poziomu WebUI.ASSISTANTS_API_KEY=user_provided
ASSISTANTS_MODELSstringDostosuj dostępne modele, oddzielone przecinkami, bez spacji. Pierwszy z nich będzie domyślny. Pozostaw puste, aby użyć ustawień wewnętrznych.# ASSISTANTS_MODELS=gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview
ASSISTANTS_BASE_URLstringAlternatywny bazowy adres URL dla Assistants API.# ASSISTANTS_BASE_URL=

Uwaga: Możesz dostosować dostępne modele, oddzielając je przecinkami, bez spacji. Pierwszy z nich będzie domyślny. Pozostaw to pole puste lub zakomentowane, aby użyć ustawień wewnętrznych.

Tavily

Uzyskaj swój klucz API tutaj: https://tavily.com/#api

Zmienne środowiskowe:

KeyTypeDescriptionExample
TAVILY_API_KEYstringKlucz API Tavily.TAVILY_API_KEY=

Traversaal

Opis: Narzędzie wyszukiwania wzbogacone o LLM.

Pobierz klucz API tutaj: https://api.traversaal.ai/dashboard

Zmienne środowiskowe:

KeyTypeDescriptionExample
TRAVERSAAL_API_KEYstringKlucz API Traversaal.TRAVERSAAL_API_KEY=

WolframAlpha

Szczegółowe instrukcje znajdziesz tutaj: Wolfram Alpha

Zmienne środowiskowe:

KeyTypeDescriptionExample
WOLFRAM_APP_IDstringIdentyfikator aplikacji Wolfram Alpha.WOLFRAM_APP_ID=

Zapier

Opis: - Potrzebujesz konta w serwisie Zapier. Pobierz swój klucz API stąd: Zapier

  • Utwórz dozwolone akcje - Postępuj zgodnie z krokiem 3 w tym przewodniku wprowadzającym od Zapier

Uwaga: Zapier bywa kapryśny w przypadku niektórych akcji. Pisanie szkiców wiadomości e-mail jest prawdopodobnie najlepszym sposobem jego wykorzystania.

Zmienne środowiskowe:

KeyTypeDescriptionExample
ZAPIER_NLA_API_KEYstringKlucz API Zapier NLA.ZAPIER_NLA_API_KEY=

OpenWeather

Szczegółowe instrukcje znajdziesz tutaj: OpenWeather

KeyTypeDescriptionExample
OPENWEATHER_API_KEYstringKlucz API OpenWeather dla One Call API 3.0.OPENWEATHER_API_KEY=

Code Interpreter

API Code Interpreter zapewnia bezpieczne środowisko do wykonywania kodu i zarządzania plikami. Zobacz: Code Interpreter API

KeyTypeDescriptionExample
LIBRECHAT_CODE_API_KEYstringKlucz API dla usługi Code Interpreter. Po ustawieniu globalnym zapewnia dostęp wszystkim użytkownikom.LIBRECHAT_CODE_API_KEY=your-api-key
LIBRECHAT_CODE_BASEURLstringNiestandardowy bazowy adres URL dla API Code Interpreter (tylko plany Enterprise).# LIBRECHAT_CODE_BASEURL=https://your-custom-domain.com

Artefakty

Artifacts wykorzystują bibliotekę CodeSandbox do bezpiecznego renderowania kodu HTML/JS. Domyślnie używana jest publiczna sieć CDN hostowana przez CodeSandbox.

Na szczęście dla osób z wymaganiami dotyczącymi sieci wewnętrznej, można samodzielnie hostować bundler, który kompiluje kod frontendowy, i określić niestandardowy adres URL bundlera dla Sandpack.

Aby uzyskać więcej informacji, w tym gotowe obrazy kontenerów do samodzielnego hostowania z usuniętymi żądaniami metryk, zobacz: https://github.com/LibreChat-AI/codesandbox-client

KeyTypeDescriptionExample
SANDPACK_BUNDLER_URLstringOkreśla niestandardowy adres URL bundlera dla Sandpack, używany przez ArtifactsSANDPACK_BUNDLER_URL=your-bundler-url

Wyszukiwanie (Meilisearch)

Włącza wyszukiwanie w wiadomościach i konwersacjach:

KeyTypeDescriptionExample
SEARCHbooleanWłącza wyszukiwanie w wiadomościach i konwersacjach.SEARCH=true

Uwaga: Jeśli nie używasz Docker, wymaga to instalacji darmowego, samodzielnie hostowanego Meilisearch lub płatnego planu zdalnego.

Aby wyłączyć zanonimizowaną analitykę telemetryczną dla MeiliSearch w celu zapewnienia pełnej prywatności, ustaw na true:

KeyTypeDescriptionExample
MEILI_NO_ANALYTICSbooleanWyłącza anonimowe analityki telemetryczne dla MeiliSearch.MEILI_NO_ANALYTICS=true

Aby serwer API mógł połączyć się z serwerem wyszukiwania. Zastąp '0.0.0.0' wartością 'meilisearch', jeśli uruchamiasz MeiliSearch za pomocą docker-compose.

KeyTypeDescriptionExample
MEILI_HOSTstringPołączenie serwera API z serwerem wyszukiwania.MEILI_HOST=http://0.0.0.0:7700

Ten klucz główny musi mieć co najmniej 16 bajtów i składać się z prawidłowych znaków UTF-8. MeiliSearch zgłosi błąd i odmówi uruchomienia, jeśli klucz główny nie zostanie podany lub jeśli będzie miał mniej niż 16 bajtów. MeiliSearch zasugeruje bezpieczny, automatycznie wygenerowany klucz główny. Jest to gotowy, bezpieczny klucz dla docker-compose, który można zastąpić własnym.

KeyTypeDescriptionExample
MEILI_MASTER_KEYstringGłówny klucz dla MeiliSearch.MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt

Aby zapobiec próbom synchronizacji indeksowania bazy danych z Meilisearch przez LibreChat, możesz ustawić poniższą zmienną środowiskową na true. Jest to przydatne w klastrze węzłów lub konfiguracji wielowęzłowej, gdzie tylko jedna instancja powinna odpowiadać za indeksowanie.

KeyTypeDescriptionExample
MEILI_NO_SYNCstringPrzełącznik wyłączający synchronizację indeksu MeilisearchMEILI_NO_SYNC=true

RAG API

Skonfiguruj Retrieval-Augmented Generation (RAG) do indeksowania dokumentów i odpowiedzi uwzględniających kontekst. Zobacz: RAG API Configuration

KeyTypeDescriptionExample
RAG_API_URLstringURL usługi RAG API.RAG_API_URL=http://host.docker.internal:8000
RAG_OPENAI_API_KEYstringKlucz API OpenAI dla osadzeń RAG. Nadpisuje OPENAI_API_KEY dla RAG.# RAG_OPENAI_API_KEY=sk-your-openai-api-key
RAG_OPENAI_BASEURLstringNiestandardowy bazowy adres URL OpenAI dla osadzeń RAG.# RAG_OPENAI_BASEURL=
RAG_USE_FULL_CONTEXTbooleanPobierz cały kontekst pliku zamiast 4 najlepszych wyników. Domyślnie: false.# RAG_USE_FULL_CONTEXT=true
EMBEDDINGS_PROVIDERstringDostawca Embeddings: openai, azure, huggingface, huggingfacetei lub ollama. Domyślnie: openai.# EMBEDDINGS_PROVIDER=openai
EMBEDDINGS_MODELstringModel embeddingów do użycia. Wartość domyślna zależy od dostawcy.# EMBEDDINGS_MODEL=text-embedding-3-small

Uwaga: Podczas korzystania z domyślnej konfiguracji Docker, plik .env jest współdzielony między LibreChat a RAG API. Pełne opcje konfiguracji znajdują się w dokumentacji RAG API.

Mowa na tekst (Speech to Text) i tekst na mowę (Text to Speech)

Skonfiguruj usługi zamiany mowy na tekst (STT) oraz tekstu na mowę (TTS). Zobacz: Ustawienia mowy

KeyTypeDescriptionExample
STT_API_KEYstringKlucz API dla usługi zamiany mowy na tekst (np. OpenAI Whisper).# STT_API_KEY=
TTS_API_KEYstringKlucz API dla usługi zamiany tekstu na mowę (np. OpenAI TTS).# TTS_API_KEY=

Uwaga: STT i TTS są konfigurowane głównie poprzez sekcję speech: w pliku librechat.yaml. Te zmienne środowiskowe są przywoływane w tej konfiguracji. Zobacz Ustawienia mowy, aby uzyskać pełne opcje konfiguracji YAML.

Skonfiguruj funkcjonalność udostępnionych linków do konwersacji.

KeyTypeDescriptionExample
ALLOW_SHARED_LINKSbooleanWłącz lub wyłącz udostępnione linki do konwersacji. Domyślnie: true.ALLOW_SHARED_LINKS=true
ALLOW_SHARED_LINKS_PUBLICbooleanZezwalaj na publiczny dostęp do udostępnionych linków bez uwierzytelniania. Domyślnie: false.ALLOW_SHARED_LINKS_PUBLIC=false
SHARED_LINKS_SNAPSHOT_FILESbooleanPliki migawek, do których odwołuje się udostępniony czat, aby widzowie mogli je wyświetlić lub pobrać za pomocą udostępnionego linku. Nadpisuje interface.sharedLinks.snapshotFiles, gdy jest ustawione.SHARED_LINKS_SNAPSHOT_FILES=true

ALLOW_SHARED_LINKS to główny przełącznik funkcji. Uprawnienia ról kontrolują teraz, kto może tworzyć udostępnione linki, udostępniać je uwierzytelnionym użytkownikom lub czynić je widocznymi dla wszystkich; zobacz interface.sharedLinks. ALLOW_SHARED_LINKS_PUBLIC kontroluje jedynie to, czy publicznie udostępnione linki mogą być przeglądane bez uwierzytelniania. SHARED_LINKS_SNAPSHOT_FILES to globalne nadpisanie dla migawek plików w udostępnionych linkach, które po ustawieniu na false może wyłączyć obsługę migawek dla każdego linku.

System użytkownika

Ta sekcja zawiera konfigurację dla:

Moderacja

Zautomatyzowany system moderacji wykorzystuje mechanizm punktacji do śledzenia naruszeń użytkowników. Gdy użytkownicy wykonują działania takie jak nadmierna liczba logowań, rejestracji lub wysyłanie wiadomości, gromadzą punkty naruszeń. Po osiągnięciu określonego progu użytkownik oraz jego adres IP są tymczasowo blokowani. System ten zapewnia bezpieczeństwo platformy poprzez monitorowanie i karanie gwałtownych lub podejrzanych aktywności.

zobacz: Automated Moderation

Podstawowe ustawienia moderacji

KeyTypeDescriptionExample
OPENAI_MODERATIONbooleanCzy włączyć moderację OpenAI w endpointach **OpenAI** oraz **Plugins**.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringTwój klucz API OpenAI.OPENAI_MODERATION_API_KEY=
OPENAI_MODERATION_REVERSE_PROXYstringUwaga: Domyślnie zakomentowane, nie działa ze wszystkimi reverse proxys.# OPENAI_MODERATION_REVERSE_PROXY=

Ustawienia banowania

KeyTypeDescriptionExample
BAN_VIOLATIONSbooleanCzy włączyć możliwość banowania użytkowników za naruszenia (nadal będą oni rejestrowani).BAN_VIOLATIONS=true
BAN_DURATIONintegerCzas trwania blokady użytkownika i powiązanego adresu IP (w milisekundach).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerUżytkownik będzie blokowany za każdym razem, gdy jego wynik osiągnie/przekroczy próg interwału.BAN_INTERVAL=20

Ograniczanie częstotliwości logowania i rejestracji

Zapobiega atakom typu brute force oraz rejestracji spamu poprzez ograniczanie liczby prób logowania i rejestracji nowych kont.

KeyTypeDescriptionExample
LOGIN_MAXintegerMaksymalna liczba logowań dozwolona na adres IP w ramach LOGIN_WINDOW.LOGIN_MAX=7
LOGIN_WINDOWintegerW minutach określa przedział czasowy dla LOGIN_MAX logowań.LOGIN_WINDOW=5
REGISTER_MAXintegerMaksymalna liczba rejestracji dozwolona na adres IP w ramach REGISTER_WINDOW.REGISTER_MAX=5
REGISTER_WINDOWintegerW minutach określa przedział czasowy dla rejestracji REGISTER_MAX.REGISTER_WINDOW=60

Wynik dla każdego naruszenia

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerWynik dla naruszeń logowania.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREintegerWynik za naruszenia rejestracji.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREintegerWynik dla naruszeń współbieżnych.CONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerWynik dla naruszeń wiadomości.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerWynik dla naruszeń spoza przeglądarki.NON_BROWSER_VIOLATION_SCORE=20
ILLEGAL_MODEL_REQ_SCOREintegerWynik dla niedozwolonych żądań modelu.ILLEGAL_MODEL_REQ_SCORE=5
IMPORT_VIOLATION_SCOREintegerWynik dla naruszeń importu konwersacji.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREintegerWynik dla naruszeń rozwidlenia konwersacji.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerWynik dla naruszeń zamiany tekstu na mowę (text-to-speech).TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREintegerWynik dla naruszeń zamiany mowy na tekst.STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerWynik dla naruszeń przesyłania plików.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerWynik dla naruszeń resetowania hasła.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerWynik dla naruszeń weryfikacji adresu e-mail.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerWynik dla naruszeń wywołań narzędzi.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREintegerWynik dla naruszeń dostępu do konwersacji.CONVO_ACCESS_VIOLATION_SCORE=0

Uwaga: Dostęp spoza przeglądarki oraz nielegalne żądania modeli są prawie zawsze szkodliwe, ponieważ oznaczają, że podmiot zewnętrzny próbuje uzyskać dostęp do serwera za pomocą zautomatyzowanego skryptu.

Ograniczanie częstotliwości wiadomości (na użytkownika i IP)

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESbooleanCzy ograniczyć liczbę wiadomości, które użytkownik może wysłać w ramach jednego żądania.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerMaksymalna liczba wiadomości, które użytkownik może wysłać w ramach jednego żądania.CONCURRENT_MESSAGE_MAX=2

Limitery

Uwaga: Możesz korzystać z obu ograniczników, ale domyślnie ograniczenie odbywa się tylko według IP.

Ogranicznik IP:
KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanCzy ograniczyć liczbę wiadomości, które dany adres IP może wysłać w ramach `MESSAGE_IP_WINDOW`.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXintegerMaksymalna liczba wiadomości, które adres IP może wysłać w ramach `MESSAGE_IP_WINDOW`.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWintegerW minutach, określa przedział czasowy dla `MESSAGE_IP_MAX` wiadomości.MESSAGE_IP_WINDOW=1
Ogranicznik użytkowników:
KeyTypeDescriptionExample
LIMIT_MESSAGE_USERbooleanCzy ograniczyć liczbę wiadomości, które użytkownik może wysłać w ramach `MESSAGE_USER_WINDOW`.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXintegerMaksymalna liczba wiadomości, które użytkownik może wysłać w ramach `MESSAGE_USER_WINDOW`.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWintegerW minutach określa przedział czasowy dla wiadomości `MESSAGE_USER_MAX`.MESSAGE_USER_WINDOW=1

Limitowanie częstotliwości importu konwersacji

Ogranicza częstotliwość importowania konwersacji przez użytkowników, aby zapobiec nadużyciom.

Uwaga: Możesz korzystać z obu ograniczników, ale domyślnie ograniczenie odbywa się tylko według IP.

Ogranicznik IP:
KeyTypeDescriptionExample
LIMIT_IMPORT_IPbooleanCzy ograniczyć liczbę importów konwersacji, które adres IP może wykonać w ramach `IMPORT_IP_WINDOW`.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXintegerMaksymalna liczba importów konwersacji, które adres IP może wykonać w ramach `IMPORT_IP_WINDOW`.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWintegerW minutach określa przedział czasowy dla importów `IMPORT_IP_MAX`.IMPORT_IP_WINDOW=1
Ogranicznik użytkowników:
KeyTypeDescriptionExample
LIMIT_IMPORT_USERbooleanCzy ograniczyć liczbę importów konwersacji, które użytkownik może wykonać w ramach `IMPORT_USER_WINDOW`.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerMaksymalna liczba importów konwersacji, które użytkownik może wykonać w ramach `IMPORT_USER_WINDOW`.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWintegerW minutach określa przedział czasowy dla importów `IMPORT_USER_MAX`.IMPORT_USER_WINDOW=1

Ograniczanie częstotliwości forkowania konwersacji

Ogranicza częstotliwość, z jaką użytkownicy mogą forkować konwersacje, aby zapobiec nadużyciom.

Uwaga: Możesz korzystać z obu ograniczników, ale domyślnie ograniczenie odbywa się tylko według IP.

Ogranicznik IP:
KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanCzy ograniczyć liczbę rozgałęzień konwersacji, które adres IP może utworzyć w ramach `FORK_IP_WINDOW`.LIMIT_FORK_IP=true
FORK_IP_MAXintegerMaksymalna liczba rozgałęzień konwersacji, które adres IP może utworzyć w ramach `FORK_IP_WINDOW`.FORK_IP_MAX=30
FORK_IP_WINDOWintegerW minutach określa przedział czasowy dla `FORK_IP_MAX` forków.FORK_IP_WINDOW=1
Ogranicznik użytkowników:
KeyTypeDescriptionExample
LIMIT_FORK_USERbooleanCzy ograniczyć liczbę rozgałęzień konwersacji, które użytkownik może utworzyć w ramach `FORK_USER_WINDOW`.LIMIT_FORK_USER=false
FORK_USER_MAXintegerMaksymalna liczba rozgałęzień konwersacji, które użytkownik może utworzyć w ramach `FORK_USER_WINDOW`.FORK_USER_MAX=7
FORK_USER_WINDOWintegerW minutach, określa przedział czasowy dla forków `FORK_USER_MAX`.FORK_USER_WINDOW=1

Limitowanie szybkości przesyłania plików

Ogranicza częstotliwość przesyłania plików przez użytkowników w celu zapobiegania nadużyciom.

Uwaga: Można je również skonfigurować za pomocą librechat.yaml w sekcji rateLimits.fileUploads.

Ogranicznik IP:
KeyTypeDescriptionExample
FILE_UPLOAD_IP_MAXintegerMaksymalna liczba przesłanych plików na adres IP w ramach `FILE_UPLOAD_IP_WINDOW`. Domyślnie: 100.# FILE_UPLOAD_IP_MAX=100
FILE_UPLOAD_IP_WINDOWintegerW minutach, określa przedział czasowy dla `FILE_UPLOAD_IP_MAX`. Domyślnie: 15.# FILE_UPLOAD_IP_WINDOW=15
Ogranicznik użytkowników:
KeyTypeDescriptionExample
FILE_UPLOAD_USER_MAXintegerMaksymalna liczba przesłanych plików na użytkownika w ramach `FILE_UPLOAD_USER_WINDOW`. Domyślnie: 50.# FILE_UPLOAD_USER_MAX=50
FILE_UPLOAD_USER_WINDOWintegerW minutach, określa przedział czasowy dla `FILE_UPLOAD_USER_MAX`. Domyślnie: 15.# FILE_UPLOAD_USER_WINDOW=15

Limitowanie szybkości TTS (Text-to-Speech)

Ogranicza częstotliwość korzystania z funkcji Text-to-Speech przez użytkowników, aby zapobiegać nadużyciom.

Uwaga: Można je również skonfigurować za pomocą librechat.yaml w sekcji rateLimits.tts.

Ogranicznik IP:
KeyTypeDescriptionExample
TTS_IP_MAXintegerMaksymalna liczba żądań TTS na adres IP w ramach `TTS_IP_WINDOW`. Domyślnie: 100.# TTS_IP_MAX=100
TTS_IP_WINDOWintegerW minutach, określa przedział czasowy dla `TTS_IP_MAX`. Domyślnie: 1.# TTS_IP_WINDOW=1
Ogranicznik użytkowników:
KeyTypeDescriptionExample
TTS_USER_MAXintegerMaksymalna liczba żądań TTS na użytkownika w ramach `TTS_USER_WINDOW`. Domyślnie: 50.# TTS_USER_MAX=50
TTS_USER_WINDOWintegerW minutach, określa przedział czasowy dla `TTS_USER_MAX`. Domyślnie: 1.# TTS_USER_WINDOW=1

Limitowanie szybkości STT (Speech-to-Text)

Ogranicza częstotliwość korzystania przez użytkowników z funkcji zamiany mowy na tekst (Speech-to-Text), aby zapobiegać nadużyciom.

Uwaga: Można je również skonfigurować za pomocą librechat.yaml w sekcji rateLimits.stt.

Ogranicznik IP:
KeyTypeDescriptionExample
STT_IP_MAXintegerMaksymalna liczba żądań STT na adres IP w ramach `STT_IP_WINDOW`. Domyślnie: 100.# STT_IP_MAX=100
STT_IP_WINDOWintegerW minutach, określa przedział czasowy dla `STT_IP_MAX`. Domyślnie: 1.# STT_IP_WINDOW=1
Ogranicznik użytkowników:
KeyTypeDescriptionExample
STT_USER_MAXintegerMaksymalna liczba żądań STT na użytkownika w ramach `STT_USER_WINDOW`. Domyślnie: 50.# STT_USER_MAX=50
STT_USER_WINDOWintegerW minutach, określa przedział czasowy dla `STT_USER_MAX`. Domyślnie: 1.# STT_USER_WINDOW=1

Saldo

Poniższa funkcja umożliwia zarządzanie saldami użytkowników w ramach endpoint systemu. Masz możliwość ręcznego dodawania sald lub możesz zdecydować się na wdrożenie systemu, który automatycznie gromadzi salda dla użytkowników. Jeśli w konfiguracji zdefiniowano określone saldo początkowe, tokeny zostaną automatycznie dopisane do salda użytkownika w momencie jego rejestracji.

zobacz: Użycie tokenów

KeyTypeDescriptionExample
CHECK_BALANCEbooleanWłącz salda kredytów tokenów dla endpointów OpenAI/Plugins.CHECK_BALANCE=false
START_BALANCEintegerJeśli wartość jest ustawiona, tokeny zostaną dopisane do salda użytkownika po rejestracji.START_BALANCE=20000

Zarządzanie saldami

  • Uruchom npm run add-balance, aby ręcznie dodać środki.
    • Możesz również określić adres e-mail oraz kwotę kredytów tokenów do dodania, np.: npm run add-balance [email protected] 1000
  • Uruchom npm run set-balance, aby ręcznie ustawić salda, podobnie jak w przypadku add-balance.
  • Uruchom npm run list-balances, aby wyświetlić saldo każdego użytkownika.

Uwaga: 1000 kredytów = 0,001 USD (1 mil USD)

Rejestracja i logowanie

zobacz: System uwierzytelniania

Ekran rejestracji użytkownikaEkran rejestracji użytkownika

Wyjaśnienie pliku konfiguracyjnego

Wszystkie ustawienia uwierzytelniania w tej sekcji powinny być skonfigurowane w pliku .env, a nie w pliku librechat.yaml lub docker-compose.override.yml. Plik docker-compose.override.yml służy wyłącznie do montowania wolumenów i ustawiania zmiennych środowiskowych dla Docker, podczas gdy plik librechat.yaml jest używany do niestandardowych endpoint i innych ustawień aplikacji.

  • Ustawienia ogólne:
KeyTypeDescriptionExample
ALLOW_EMAIL_LOGINbooleanWłącz lub wyłącz TYLKO logowanie przez e-mail.ALLOW_EMAIL_LOGIN=true
ALLOW_REGISTRATIONbooleanWłącz lub wyłącz rejestrację nowych użytkowników przez Email.ALLOW_REGISTRATION=true
ALLOW_SOCIAL_LOGINbooleanZezwalaj użytkownikom na łączenie się z LibreChat za pomocą różnych sieci społecznościowych.ALLOW_SOCIAL_LOGIN=false
ALLOW_SOCIAL_REGISTRATIONbooleanWłącz lub wyłącz rejestrację nowych użytkowników przy użyciu różnych sieci społecznościowych.ALLOW_SOCIAL_REGISTRATION=false
ALLOW_PASSWORD_RESETbooleanWłącz lub wyłącz możliwość samodzielnego resetowania hasła przez użytkownikówALLOW_PASSWORD_RESET=false
ALLOW_ACCOUNT_DELETIONbooleanWłącz lub wyłącz możliwość samodzielnego usuwania konta przez użytkowników. Domyślnie włączone, jeśli pominięto lub zakomentowano.ALLOW_ACCOUNT_DELETION=true
ALLOW_UNVERIFIED_EMAIL_LOGINbooleanUstaw na true, aby umożliwić użytkownikom logowanie bez weryfikacji adresu e-mail. Jeśli ustawiono na false, użytkownicy będą musieli zweryfikować swój adres e-mail przed zalogowaniem.ALLOW_UNVERIFIED_EMAIL_LOGIN=true
MIN_PASSWORD_LENGTHnumberMinimalna długość hasła dla uwierzytelniania użytkownika. W przypadku korzystania z uwierzytelniania LDAP, możesz ustawić tę wartość na 1, aby pominąć lokalną walidację hasła, ponieważ serwery LDAP obsługują własne polityki haseł.MIN_PASSWORD_LENGTH=8

Szybka wskazówka: Nawet przy wyłączonej rejestracji, dodawaj użytkowników bezpośrednio do bazy danych za pomocą npm run create-user.

Szybka wskazówka: Przy wyłączonej rejestracji możesz usunąć użytkownika za pomocą npm run delete-user [email protected].

  • Ustawienia sesji i tokenów odświeżania:
KeyTypeDescriptionExample
SESSION_EXPIRYinteger (milliseconds)Czas wygaśnięcia sesji.SESSION_EXPIRY=1000 * 60 * 15
REFRESH_TOKEN_EXPIRYinteger (milliseconds)Czas wygaśnięcia tokena odświeżania.REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7
SESSION_COOKIE_SECUREbooleanZastępuje atrybut Secure dla plików cookie sesji/uwierzytelniania. Pozostaw puste, aby użyć domyślnej heurystyki NODE_ENV/DOMAIN_SERVER.# SESSION_COOKIE_SECURE=false

Powinieneś użyć nowych, bezpiecznych wartości. Podane przykłady to 32-bajtowe klucze (64 znaki w formacie szesnastkowym). Użyj tego replit, aby szybko wygenerować kilka: Klucze JWT

KeyTypeDescriptionExample
JWT_SECRETstring (hex)Klucz tajny JWT.JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
JWT_REFRESH_SECRETstring (hex)Klucz tajny odświeżania JWT.JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418

Logowanie przez media społecznościowe

Więcej szczegółów: OAuth2-OIDC

Uwierzytelnianie Apple

Więcej informacji: Apple Authentication

KeyTypeDescriptionExample
APPLE_CLIENT_IDstringTwój identyfikator Apple Services ID (np. com.yourdomain.librechat.services).APPLE_CLIENT_ID=com.yourdomain.librechat.services
APPLE_TEAM_IDstringTwój identyfikator zespołu Apple Developer (Team ID).APPLE_TEAM_ID=YOUR_TEAM_ID
APPLE_KEY_IDstringTwój Apple Key ID z pobranego klucza.APPLE_KEY_ID=YOUR_KEY_ID
APPLE_PRIVATE_KEY_PATHstringBezwzględna ścieżka do pobranego pliku .p8.APPLE_PRIVATE_KEY_PATH=/path/to/AuthKey.p8
APPLE_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback URL) dla uwierzytelniania Apple.APPLE_CALLBACK_URL=/oauth/apple/callback

Uwierzytelnianie Discord

Więcej informacji: Discord

KeyTypeDescriptionExample
DISCORD_CLIENT_IDstringTwój identyfikator klienta Discord.DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRETstringTwój client secret Discord.DISCORD_CLIENT_SECRET=
DISCORD_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback) dla uwierzytelniania Discord.DISCORD_CALLBACK_URL=/oauth/discord/callback

Uwierzytelnianie przez Facebook

Aby uzyskać więcej informacji: Uwierzytelnianie przez Facebook

KeyTypeDescriptionExample
FACEBOOK_CLIENT_IDstringTwój identyfikator klienta Facebook.FACEBOOK_CLIENT_ID=
FACEBOOK_CLIENT_SECRETstringTwój klucz tajny klienta Facebook.FACEBOOK_CLIENT_SECRET=
FACEBOOK_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback URL) dla uwierzytelniania przez Facebook.FACEBOOK_CALLBACK_URL=/oauth/facebook/callback

Uwierzytelnianie GitHub

Więcej informacji: Uwierzytelnianie GitHub

KeyTypeDescriptionExample
GITHUB_CLIENT_IDstringTwój identyfikator klienta GitHub.GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRETstringTwój klucz tajny klienta GitHub.GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback URL) dla uwierzytelniania GitHub.GITHUB_CALLBACK_URL=/oauth/github/callback
GITHUB_ENTERPRISE_BASE_URLstringOpcjonalnie: Podstawowy adres URL dla Twojej instancji GitHub Enterprise.GITHUB_ENTERPRISE_BASE_URL=
GITHUB_ENTERPRISE_USER_AGENTstringOpcjonalne: User agent dla żądań GitHub Enterprise.GITHUB_ENTERPRISE_USER_AGENT=

Uwierzytelnianie Google

Więcej informacji: Google Authentication

KeyTypeDescriptionExample
GOOGLE_CLIENT_IDstringTwój identyfikator klienta Google.GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRETstringTwój Google client secret.GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback URL) dla uwierzytelniania Google.GOOGLE_CALLBACK_URL=/oauth/google/callback

OpenID Connect

Więcej informacji:

KeyTypeDescriptionExample
OPENID_CLIENT_IDstringTwój identyfikator klienta OpenID.OPENID_CLIENT_ID=
OPENID_CLIENT_SECRETstringTwój klucz tajny klienta OpenID.OPENID_CLIENT_SECRET=
OPENID_ISSUERstringURL wystawcy OpenID.OPENID_ISSUER=
OPENID_SESSION_SECRETstringKlucz tajny dla przechowywania sesji OpenID.OPENID_SESSION_SECRET=
OPENID_SCOPEstringZakres OpenID.OPENID_SCOPE="openid profile email"
OPENID_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback) dla uwierzytelniania OpenID.OPENID_CALLBACK_URL=/oauth/openid/callback
OPENID_AUDIENCEstringWartość audience dla żądań walidacji i autoryzacji OpenID JWT. W przypadku walidacji JWT akceptowane są wartości rozdzielane przecinkami; żądania autoryzacji używają pierwszej niepustej wartości. Wymagane dla Auth0 w przypadku użycia OPENID_REUSE_TOKENS=true w celu otrzymywania tokenów dostępu JWT zamiast tokenów nieprzejrzystych.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REQUIRED_ROLEstringWymagana rola(-e) do walidacji. Obsługuje pojedynczą rolę lub wiele ról oddzielonych przecinkami. Gdy określono wiele ról, użytkownik musi posiadać DOWOLNĄ z określonych ról (logika LUB).OPENID_REQUIRED_ROLE=admin or OPENID_REQUIRED_ROLE=role1,role2,admin
OPENID_REQUIRED_ROLE_TOKEN_KINDstringRodzaj tokena dla wymaganej walidacji roli.OPENID_REQUIRED_ROLE_TOKEN_KIND=
OPENID_REQUIRED_ROLE_PARAMETER_PATHstringŚcieżka parametru dla walidacji wymaganej roli.OPENID_REQUIRED_ROLE_PARAMETER_PATH=
OPENID_ADMIN_ROLEstringRola, jaką użytkownik powinien posiadać, aby być administratorem w LibreChat.OPENID_ADMIN_ROLE=
OPENID_ADMIN_ROLE_TOKEN_KINDstringŹródło informacji do weryfikacji roli administratora. Możliwe wartości to: access, id lub userinfo.OPENID_ADMIN_ROLE_TOKEN_KIND=
OPENID_ADMIN_ROLE_PARAMETER_PATHstringŚcieżka parametru dla walidacji wymaganej roli.OPENID_ADMIN_ROLE_PARAMETER_PATH=
OPENID_ROLE_SYNC_ENABLEDbooleanWłącz ogólną synchronizację ról OpenID dla ról niebędących administratorami. Rola ADMIN nie może być przypisana przez synchronizację ról; użyj OPENID_ADMIN_ROLE do nadania uprawnień administratora.OPENID_ROLE_SYNC_ENABLED=false
OPENID_ROLE_SYNC_API_ENABLEDbooleanWłącz pomocników synchronizacji ról opartych na API. Wymaga OPENID_ROLE_SYNC_ENABLED=true.OPENID_ROLE_SYNC_API_ENABLED=false
OPENID_ROLE_SYNC_SOURCEstringŹródło tokena dla oświadczenia roli (role claim). Musi być jedną z wartości: access, id, userinfo. Domyślnie: id.OPENID_ROLE_SYNC_SOURCE=id
OPENID_ROLE_SYNC_CLAIMstringŚcieżka claim zawierająca role lub grupy dostawcy. Wymagane, gdy synchronizacja ról jest włączona.OPENID_ROLE_SYNC_CLAIM=
OPENID_ROLE_SYNC_ROLE_PRIORITYstringRozdzielona przecinkami lista ról LibreChat uporządkowana od najważniejszej do najmniej ważnej. Przypisywana jest pierwsza pasująca rola.OPENID_ROLE_SYNC_ROLE_PRIORITY=Support,User
OPENID_ROLE_SYNC_FALLBACK_ROLEstringRola LibreChat przypisywana, gdy nie pasuje żadna rola o wyższym priorytecie. Jeśli skonfigurowano, ten mechanizm zastępczy jest nadrzędny.OPENID_ROLE_SYNC_FALLBACK_ROLE=USER
OPENID_BUTTON_LABELstringEtykieta przycisku logowania OpenID.OPENID_BUTTON_LABEL=
OPENID_IMAGE_URLstringURL obrazu przycisku logowania OpenID.OPENID_IMAGE_URL=
OPENID_USE_END_SESSION_ENDPOINTstringCzy używać punktu końcowego zakończenia sesji wystawcy jako przekierowania po wylogowaniuOPENID_USE_END_SESSION_ENDPOINT=TRUE
OPENID_MAX_LOGOUT_URL_LENGTHnumberMaksymalna długość adresu URL wylogowania przed użyciem logout_hint zamiast id_token_hint. Domyślnie: 2000.# OPENID_MAX_LOGOUT_URL_LENGTH=2000
OPENID_AUTO_REDIRECTbooleanCzy automatycznie przekierowywać do dostawcy OpenID.OPENID_AUTO_REDIRECT=true
OPENID_USE_PKCEbooleanUżyj PKCE (Proof Key for Code Exchange) do uwierzytelniania OpenID. W przypadku klientów publicznych bez klucza tajnego klienta (client secret), pozostaw OPENID_CLIENT_SECRET puste i ustaw tę wartość na true.# OPENID_USE_PKCE=true
OPENID_POST_LOGOUT_REDIRECT_URIstringURI przekierowania po wylogowaniu przez OpenID. Domyślnie ${DOMAIN_CLIENT}/login.# OPENID_POST_LOGOUT_REDIRECT_URI=
OPENID_CLOCK_TOLERANCEnumberTolerancja zegara w sekundach dla walidacji tokenów. Domyślnie: 300.# OPENID_CLOCK_TOLERANCE=300
OPENID_GENERATE_NONCEbooleanWymuś na kliencie OpenID wygenerowanie parametru nonce. Wymagane przez niektórych dostawców tożsamości, takich jak AWS Cognito (szczególnie w przypadku federacji) oraz Authentik.OPENID_GENERATE_NONCE=true
DEBUG_OPENID_REQUESTSbooleanWłącz szczegółowe logowanie nagłówków żądań OpenID. Gdy opcja jest wyłączona (domyślnie), na poziomie debugowania logowane są tylko adresy URL żądań. Gdy jest włączona, logowane są również nagłówki żądań (z zamaskowanymi danymi wrażliwymi) w celu głębszego debugowania problemów z uwierzytelnianiem.DEBUG_OPENID_REQUESTS=false
OPENID_USERNAME_CLAIMstringWłaściwość informacji o użytkowniku z dostawcy OpenID, która ma być przechowywana jako nazwa użytkownika.OPENID_USERNAME_CLAIM=
OPENID_NAME_CLAIMstringWłaściwość informacji o użytkowniku z dostawcy OpenID, która ma być przechowywana jako nazwa wyświetlana użytkownika.OPENID_NAME_CLAIM=
OPENID_EMAIL_CLAIMstringOświadczenie o informacjach użytkownika używane jako adres e-mail/identyfikator do dopasowywania użytkowników (np. "upn" dla Entra ID). Jeśli nie zostanie ustawione, domyślnie przyjmuje: email → preferred_username → upn.OPENID_EMAIL_CLAIM=

Synchronizacja ról OpenID

OPENID_ROLE_SYNC_CLAIM jest wymagane, gdy synchronizacja ról jest włączona. OPENID_ROLE_SYNC_API_ENABLED=true wymaga również OPENID_ROLE_SYNC_ENABLED=true. Ogólna synchronizacja ról nie może przypisać ADMIN; użyj OPENID_ADMIN_ROLE do nadania uprawnień administratora.

Ponowne wykorzystanie tokena OpenID Connect

LibreChat obsługuje ponowne wykorzystywanie tokenów dostępu i odświeżania wydanych przez Twojego dostawcę OpenID Connect (takiego jak Azure Entra ID lub Auth0) w celu zarządzania stanem uwierzytelniania użytkownika. Gdy ta funkcja jest aktywna, token odświeżania przekazywany użytkownikowi jako plik cookie jest wydawany przez Twojego dostawcę OpenID, a nie przez LibreChat.

KeyTypeDescriptionExample
OPENID_REUSE_TOKENSbooleanWłącz ponowne wykorzystanie tokenów dostawcy OpenID do zarządzania sesją.OPENID_REUSE_TOKENS=false
OPENID_SCOPEstringRozdzielona spacjami lista zakresów OpenID. Musi zawierać offline_access w celu ponownego użycia tokena.OPENID_SCOPE=api://librechat/.default openid profile email offline_access
OPENID_AUDIENCEstringWartość audience dla żądań walidacji i autoryzacji OpenID JWT. Wartości rozdzielone przecinkami są akceptowane dla walidacji JWT; żądania autoryzacji używają pierwszej niepustej wartości. Wymagane dla Auth0, gdy OPENID_REUSE_TOKENS=true. Zobacz uwagę w głównej sekcji OpenID powyżej.OPENID_AUDIENCE=https://api.librechat.com
OPENID_REUSE_MAX_SESSION_AGE_MSnumberMaksymalny czas, przez jaki ponownie używany token sesji OpenID jest serwowany, zanim LibreChat wymusi odświeżenie przez IdP. Domyślnie: 900000 ms / 15 minut.OPENID_REUSE_MAX_SESSION_AGE_MS=900000
OPENID_JWKS_URL_CACHE_ENABLEDbooleanWłącz buforowanie wyników weryfikacji klucza podpisu.OPENID_JWKS_URL_CACHE_ENABLED=true
OPENID_JWKS_URL_CACHE_TIMEnumberCzas trwania pamięci podręcznej w milisekundach (domyślnie: 600000 ms / 10 minut).OPENID_JWKS_URL_CACHE_TIME=600000
OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIREDbooleanWłącz przepływ on-behalf-of dla informacji o użytkowniku.OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPEstringZakres informacji o użytkowniku w przepływie on-behalf-of.OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE=user.read
OPENID_USE_END_SESSION_ENDPOINTbooleanWłącz użycie endpointu zakończenia sesji do wylogowania.OPENID_USE_END_SESSION_ENDPOINT=true
OPENID_MAX_LOGOUT_URL_LENGTHnumberMaksymalna długość adresu URL wylogowania w znakach przed przełączeniem na logout_hint. Przydatne, aby zapobiec błędom URI too long, gdy id_token_hint przekracza limity serwera. Domyślnie: 2000.OPENID_MAX_LOGOUT_URL_LENGTH=2000

OPENID_REUSE_MAX_SESSION_AGE_MS akceptuje wyrażenia arytmetyczne, podobnie jak SESSION_EXPIRY. Zwiększ tę wartość w kierunku czasu życia tokena dostępu IdP, gdy Twój dostawca unieważnia poprzedni token dostępu przy odświeżaniu, aby odbiorcy końcowi, tacy jak serwery MCP, mogli dokończyć korzystanie z nadal ważnego tokena bearer.

Uwaga

Aby uzyskać szczegółowe kroki konfiguracji i wymagania wstępne, zobacz Re-use OpenID Tokens for Login Session.

Integracja z Microsoft Graph API / Entra ID

Podczas korzystania z Azure Entra ID (dawniej Azure AD) jako dostawcy OpenID, możesz włączyć dodatkowe funkcje Microsoft Graph API w celu uzyskania rozszerzonych możliwości wyszukiwania osób i grup w ramach systemu uprawnień i udostępniania.

KeyTypeDescriptionExample
USE_ENTRA_ID_FOR_PEOPLE_SEARCHbooleanWłącz integrację wyszukiwania osób w Entra ID w systemie uprawnień/udostępniania. Po włączeniu, selektor osób będzie przeszukiwał zarówno lokalną bazę danych, jak i Entra ID.USE_ENTRA_ID_FOR_PEOPLE_SEARCH=false
ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERSbooleanPo włączeniu tej opcji właściciele grup Entra ID będą traktowani jako członkowie grupy.ENTRA_ID_INCLUDE_OWNERS_AS_MEMBERS=false
OPENID_GRAPH_SCOPESstringZakresy Microsoft Graph API wymagane do wyszukiwania osób/grup. Domyślne zakresy zapewniają dostęp do profili użytkowników i członkostwa w grupach.OPENID_GRAPH_SCOPES=User.Read,People.Read,GroupMember.Read.All,User.ReadBasic.All

Ważne wymagania wstępne

  • Musisz mieć skonfigurowane Azure Entra ID jako dostawcę OpenID - ponowne użycie tokenów OpenID MUSI być włączone (OPENID_REUSE_TOKENS=true) - ta funkcja nie będzie bez tego działać - Twoja rejestracja aplikacji Azure musi posiadać odpowiednie uprawnienia Microsoft Graph API - w przypadku funkcji wyszukiwania grup, dla niektórych zakresów Graph API może być wymagana zgoda administratora
Integracja z SharePoint

LibreChat obsługuje bezpośrednią integrację z SharePoint Online oraz OneDrive for Business, umożliwiając użytkownikom wybieranie i załączanie plików z bibliotek SharePoint bezpośrednio wewnątrz konwersacji. Ta funkcja dla przedsiębiorstw wykorzystuje istniejące uwierzytelnianie Azure Entra ID.

KeyTypeDescriptionExample
ENABLE_SHAREPOINT_FILEPICKERbooleanWłącz selektor plików SharePoint w panelach czatu i agenta. Po włączeniu dodaje opcję „Z SharePoint” w menu załączników plików.ENABLE_SHAREPOINT_FILEPICKER=true
SHAREPOINT_BASE_URLstringPodstawowy adres URL dzierżawy SharePoint. Wymagany, gdy integracja z SharePoint jest włączona.SHAREPOINT_BASE_URL=https://yourtenant.sharepoint.com
SHAREPOINT_PICKER_SHAREPOINT_SCOPEstringZakres OAuth specyficzny dla SharePoint dla selektora plików. Używany do uwierzytelniania podczas otwierania interfejsu selektora plików SharePoint.SHAREPOINT_PICKER_SHAREPOINT_SCOPE=https://yourtenant.sharepoint.com/AllSites.Read
SHAREPOINT_PICKER_GRAPH_SCOPEstringZakres Microsoft Graph API dla pobierania plików. Używany do pobierania plików z SharePoint po ich wybraniu.SHAREPOINT_PICKER_GRAPH_SCOPE=Files.Read.All

Kluczowe wymagania

Wszystkie poniższe elementy muszą zostać skonfigurowane, aby integracja z SharePoint działała:

  • Uwierzytelnianie Azure Entra ID musi być w pełni skonfigurowane
  • OPENID_REUSE_TOKENS=true jest wymagane (używa przepływu tokenów on-behalf-of)
  • OPENID_SCOPE musi zawierać zakres API Twojej aplikacji LibreChat, na przykład api://<client-id>/access_as_user
  • OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=true jest wymagane podczas korzystania z tego zakresu app-audience z Azure Entra ID
  • Twoja rejestracja aplikacji Azure musi posiadać uprawnienia SharePoint i Graph API
  • Twoja rejestracja aplikacji Azure musi udostępniać zakres API LibreChat używany w OPENID_SCOPE
  • Wszystkie cztery zmienne środowiskowe SharePoint muszą zostać ustawione
  • HTTPS jest wymagane w środowiskach produkcyjnych

Możliwości funkcji

Po włączeniu użytkownicy mogą:

  • Uzyskiwać dostęp do plików z bibliotek dokumentów SharePoint oraz OneDrive for Business
  • Wybierać wiele plików jednocześnie (domyślnie maks.: 10 plików)
  • Widzieć postęp pobierania w czasie rzeczywistym
    • Pliki są pobierane i dołączane do konwersacji tak samo, jak zwykłe przesłane pliki.

Szczegółowe instrukcje konfiguracji SharePoint znajdują się w: SharePoint Integration Guide

SAML

Więcej informacji:

Wzajemne wykluczenie OpenID i SAML

Jeśli OpenID jest włączone, uwierzytelnianie SAML zostanie automatycznie wyłączone.

Tylko jedna metoda uwierzytelniania może być aktywna w danym momencie.

KeyTypeDescriptionExample
SAML_ENTRY_POINTstringAdres URL punktu wejściowego dostawcy tożsamości (IdP) SAML.SAML_ENTRY_POINT=
SAML_ISSUERstringIdentyfikator jednostki (entity ID) dostawcy usług (SP) SAML.SAML_ISSUER=
SAML_CERTstringCertyfikat podpisywania SAML, dostarczony jako ścieżka do pliku lub jednowierszowy ciąg PEM.SAML_CERT=
SAML_CALLBACK_URLstringAdres URL wywołania zwrotnego (callback URL) dla uwierzytelniania SAML.SAML_CALLBACK_URL=/oauth/saml/callback
SAML_SESSION_SECRETstringKlucz tajny dla przechowywania sesji SAML.SAML_SESSION_SECRET=
SAML_EMAIL_CLAIMstring<Optional>: Atrybut w asercji SAML zawierający adres e-mail użytkownika. (domyślnie: email)SAML_EMAIL_CLAIM=
SAML_USERNAME_CLAIMstring<Optional>: Atrybut w asercji SAML zawierający nazwę użytkownika. (domyślnie: username)SAML_USERNAME_CLAIM=
SAML_GIVEN_NAME_CLAIMstring<Optional>: Atrybut w asercji SAML zawierający imię. (domyślnie: given_name)SAML_GIVEN_NAME_CLAIM=
SAML_FAMILY_NAME_CLAIMstring<Optional>: Atrybut w asercji SAML zawierający nazwisko. (domyślnie: family_name)SAML_FAMILY_NAME_CLAIM=
SAML_PICTURE_CLAIMstring<Optional>: Atrybut w asercji SAML zawierający adres URL zdjęcia profilowego. (domyślnie: picture)SAML_PICTURE_CLAIM=
SAML_NAME_CLAIMstring<Optional>: Atrybut w asercji SAML zawierający pełne imię i nazwisko.SAML_NAME_CLAIM=
SAML_BUTTON_LABELstring<Optional>: Etykieta przycisku logowania SAML.SAML_BUTTON_LABEL=
SAML_IMAGE_URLstring<Optional>: URL obrazu przycisku logowania SAML.SAML_IMAGE_URL=
SAML_USE_AUTHN_RESPONSE_SIGNEDboolean<Optional>: Jeśli "true", podpisuje całą odpowiedź SAML. W przeciwnym razie podpisywana jest tylko asercja (domyślnie).SAML_USE_AUTHN_RESPONSE_SIGNED=

Uwierzytelnianie LDAP/AD

Więcej informacji: Uwierzytelnianie LDAP/AD

KeyTypeDescriptionExample
LDAP_URLstringURL serwera LDAP.LDAP_URL=ldap://localhost:389
LDAP_BIND_DNstringDN powiązaniaLDAP_BIND_DN=cn=root
LDAP_BIND_CREDENTIALSstringHasło dla bindDNLDAP_BIND_CREDENTIALS=password
LDAP_USER_SEARCH_BASEstringBaza wyszukiwania użytkowników LDAPLDAP_USER_SEARCH_BASE=o=users,o=example.com
LDAP_SEARCH_FILTERstringFiltr wyszukiwania LDAPLDAP_SEARCH_FILTER=mail={{username}}
LDAP_CA_CERT_PATHstringŚcieżka do certyfikatu CA.LDAP_CA_CERT_PATH=/path/to/root_ca_cert.crt
LDAP_TLS_REJECT_UNAUTHORIZEDstringWeryfikacja TLS LDAPLDAP_TLS_REJECT_UNAUTHORIZED=true
LDAP_STARTTLSstringWłącz LDAP StartTLS, aby uaktualnić połączenie do TLS. Ustaw na true, aby włączyć tę funkcję.LDAP_STARTTLS=true
LDAP_LOGIN_USES_USERNAMEbooleanUżyj nazwy użytkownika zamiast adresu e-mail do logowania przez LDAP.# LDAP_LOGIN_USES_USERNAME=true
LDAP_IDstringAtrybut LDAP dla unikalnego identyfikatora użytkownika. Domyślnie: uid lub sAMAccountName, mail.# LDAP_ID=uid
LDAP_USERNAMEstringAtrybut LDAP dla nazwy użytkownika. Domyślnie: givenName lub mail.# LDAP_USERNAME=givenName
LDAP_EMAILstringAtrybut LDAP dla adresu e-mail. Domyślnie: mail.# LDAP_EMAIL=userPrincipalName
LDAP_FULL_NAMEstringAtrybut(y) LDAP dla pełnego imienia i nazwiska. Mogą być oddzielone przecinkami. Domyślnie: givenName + surname.# LDAP_FULL_NAME=givenName,surname

Resetowanie hasła

E-mail jest używany do weryfikacji konta oraz resetowania hasła. LibreChat obsługuje zarówno API Mailgun, jak i tradycyjne usługi SMTP. Zobacz: Konfiguracja e-mail

Ważna uwaga: Musisz skonfigurować Mailgun (zalecane dla serwerów blokujących SMTP) lub SMTP, aby poczta e-mail działała.

Ostrzeżenie: Nieustawienie poprawnych wartości dla Mailgun lub SMTP spowoduje, że LibreChat będzie używać niezabezpieczonego resetowania hasła!

Mailgun jest szczególnie przydatny w przypadku wdrożeń na serwerach, które blokują porty SMTP. Gdy ustawione są zarówno MAILGUN_API_KEY, jak i MAILGUN_DOMAIN, LibreChat będzie używać Mailgun zamiast SMTP.

KeyTypeDescriptionExample
MAILGUN_API_KEYstringTwój klucz API Mailgun (wymagany dla Mailgun).MAILGUN_API_KEY=
MAILGUN_DOMAINstringTwoja domena Mailgun (wymagana dla Mailgun).MAILGUN_DOMAIN=mg.yourdomain.com
MAILGUN_HOSTstringNiestandardowy host API Mailgun (opcjonalnie). Użyj https://api.eu.mailgun.net dla regionu UE.MAILGUN_HOST=https://api.mailgun.net
EMAIL_FROMstringAdres e-mail nadawcy. Wymagane.[email protected]
EMAIL_FROM_NAMEstringNazwa nadawcy (domyślnie APP_TITLE, jeśli nie ustawiono).EMAIL_FROM_NAME=

Konfiguracja SMTP

Jeśli Mailgun nie jest skonfigurowany, LibreChat powróci do ustawień SMTP.

Ostrzeżenie: Jeśli używasz EMAIL_SERVICE, NIE ustawiaj rozszerzonych parametrów połączenia: HOST, PORT, ENCRYPTION, ENCRYPTION_HOSTNAME, ALLOW_SELFSIGNED.

Zobacz: nodemailer well-known-services

KeyTypeDescriptionExample
EMAIL_SERVICEstringUsługa e-mail (np. Gmail, Outlook).EMAIL_SERVICE=
EMAIL_HOSTstringHost serwera poczty.EMAIL_HOST=
EMAIL_PORTnumberPort serwera poczty.EMAIL_PORT=25
EMAIL_ENCRYPTIONstringMetoda szyfrowania (starttls, tls, itp.).EMAIL_ENCRYPTION=
EMAIL_ENCRYPTION_HOSTNAMEstringNazwa hosta dla szyfrowania.EMAIL_ENCRYPTION_HOSTNAME=
EMAIL_ALLOW_SELFSIGNEDbooleanZezwalaj na certyfikaty z podpisem własnym.EMAIL_ALLOW_SELFSIGNED=
EMAIL_USERNAMEstringNazwa użytkownika do uwierzytelniania.EMAIL_USERNAME=
EMAIL_PASSWORDstringHasło do uwierzytelniania.EMAIL_PASSWORD=
EMAIL_FROM_NAMEstringNazwa nadawcyEMAIL_FROM_NAME=
EMAIL_FROMstringAdres e-mail nadawcy. Wymagane.[email protected]

Firebase CDN

Zobacz: Konfiguracja Firebase CDN

Ważne

  • Jeśli używasz Firebase jako strategii przechowywania plików, ustaw fileStrategy lub fileStrategies na firebase w swoim pliku konfiguracyjnym librechat.yaml. Aby uzyskać więcej informacji na temat konfigurowania pliku librechat.yaml, zapoznaj się z Przewodnikiem konfiguracji YAML: Custom Endpoints & Configuration
KeyTypeDescriptionExample
FIREBASE_API_KEYstringKlucz API dla Twojego projektu Firebase.FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAINstringDomena Firebase Auth dla Twojego projektu.FIREBASE_AUTH_DOMAIN=
FIREBASE_PROJECT_IDstringID Twojego projektu Firebase.FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKETstringZasobnik Firebase Storage dla Twojego projektu.FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_IDstringIdentyfikator nadawcy Firebase Cloud Messaging.FIREBASE_MESSAGING_SENDER_ID=
FIREBASE_APP_IDstringIdentyfikator aplikacji Firebase dla Twojego projektu.FIREBASE_APP_ID=

Amazon S3 i CloudFront

Zobacz: Konfiguracja Amazon S3 oraz CloudFront z S3

Ważne

Jeśli używasz S3 jako strategii przechowywania plików, ustaw fileStrategy lub fileStrategies w swoim pliku konfiguracyjnym librechat.yaml. Jeśli korzystasz z CloudFront, S3 jest nadal wymagane jako źródło przechowywania (storage origin).

KeyTypeDescriptionExample
AWS_ACCESS_KEY_IDstringTwój identyfikator klucza dostępu użytkownika IAM. Opcjonalny w przypadku korzystania z IRSA.AWS_ACCESS_KEY_ID=your_access_key_id
AWS_SECRET_ACCESS_KEYstringTwój klucz tajny dostępu użytkownika IAM. Opcjonalny w przypadku korzystania z IRSA.AWS_SECRET_ACCESS_KEY=your_secret_access_key
AWS_REGIONstringRegion AWS, w którym znajduje się Twój bucket S3.AWS_REGION=us-east-1
AWS_BUCKET_NAMEstringNazwa zasobnika S3 do przechowywania plików.AWS_BUCKET_NAME=your_bucket_name
AWS_ENDPOINT_URLstringNiestandardowy adres URL endpointu AWS (opcjonalnie). Dla usług kompatybilnych z S3. Uwzględnij schemat adresu URL, np. https://a7g8.da.idrivee2-32.com.# AWS_ENDPOINT_URL=https://your_endpoint_url
AWS_FORCE_PATH_STYLEbooleanUstaw na true dla dostawców kompatybilnych z S3, którzy wymagają adresów URL w stylu ścieżki (np. MinIO, Hetzner, Backblaze B2). Nie jest wymagane dla AWS S3. Domyślnie: false.# AWS_FORCE_PATH_STYLE=false
CLOUDFRONT_KEY_PAIR_IDstringIdentyfikator pary kluczy publicznych CloudFront. Wymagany dla podpisanych plików cookie oraz podpisanych adresów URL pobierania CloudFront.# CLOUDFRONT_KEY_PAIR_ID=K1234567890ABC
CLOUDFRONT_PRIVATE_KEYstringKlucz prywatny PEM dla CloudFront. Wymagany dla podpisanych plików cookie oraz podpisanych adresów URL pobierania CloudFront. Zachowaj znaki nowej linii PEM podczas wstrzykiwania tego sekretu.# CLOUDFRONT_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"

Uwaga: W przypadku wdrożeń Kubernetes (np. na EKS), zamiast podawania jawnych poświadczeń można użyć IRSA (IAM Roles for Service Accounts). W takim przypadku wymagane są tylko AWS_REGION oraz AWS_BUCKET_NAME.

Azure Blob Storage CDN

Zobacz: Konfiguracja Azure Blob Storage CDN

Ważne

Jeśli używasz Azure Blob Storage jako strategii przechowywania plików, ustaw fileStrategy lub fileStrategies na azure_blob w pliku konfiguracyjnym librechat.yaml.

KeyTypeDescriptionExample
AZURE_STORAGE_CONNECTION_STRINGstringCiąg połączenia Azure Blob Storage. Użyj tego LUB AZURE_STORAGE_ACCOUNT_NAME dla Managed Identity.AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_STORAGE_ACCOUNT_NAMEstringNazwa konta Azure Storage. Użyj do uwierzytelniania za pomocą Managed Identity (nie ustawiaj ciągu połączenia).# AZURE_STORAGE_ACCOUNT_NAME=yourAccountName
AZURE_STORAGE_PUBLIC_ACCESSbooleanWłącz publiczny dostęp do obiektów blob. Domyślnie: false.AZURE_STORAGE_PUBLIC_ACCESS=false
AZURE_CONTAINER_NAMEstringNazwa kontenera dla przechowywania plików. Domyślnie: files.AZURE_CONTAINER_NAME=files

Uwaga: Użyj albo AZURE_STORAGE_CONNECTION_STRING (Opcja A), albo AZURE_STORAGE_ACCOUNT_NAME z Managed Identity (Opcja B), nie obu jednocześnie.

UI

Przycisk pomocy i FAQ

KeyTypeDescriptionExample
HELP_AND_FAQ_URLstringURL pomocy i FAQ. Jeśli puste lub zakomentowane, przycisk jest włączony. Aby wyłączyć przycisk pomocy i FAQ, ustaw na "/".HELP_AND_FAQ_URL=https://librechat.ai

Zachowanie:

Ustawia nagłówki Cache-Control dla plików statycznych. Te konfiguracje są uruchamiane tylko wtedy, gdy NODE_ENV jest ustawione na production.

Prawidłowe ustawienie nagłówków pamięci podręcznej (cache) ma kluczowe znaczenie dla optymalizacji wydajności i efektywności Twojej aplikacji internetowej. Kontrolując czas, przez jaki przeglądarki i sieci CDN przechowują kopie plików statycznych, możesz znacząco zmniejszyć obciążenie serwera, skrócić czas ładowania stron oraz poprawić ogólne wrażenia użytkownika.

  • Odkomentuj STATIC_CACHE_MAX_AGE, aby zmienić max-age dla plików statycznych. Domyślnie wartość ta jest ustawiona na 4 tygodnie.
  • Odkomentuj STATIC_CACHE_S_MAX_AGE, aby zmienić s-maxage dla plików statycznych. Domyślnie wartość ta jest ustawiona na 1 tydzień.
    • Dotyczy to shared cache, która jest używana przez sieci CDN i serwery proxy.
KeyTypeDescriptionExample
APP_TITLEstringTytuł aplikacjiAPP_TITLE=LibreChat
CUSTOM_FOOTERstringNiestandardowa stopka.# CUSTOM_FOOTER="My custom footer"
TEMP_CHAT_RETENTION_HOURSnumber**Przestarzałe:** Użyj `interface.temporaryChatRetention` w pliku librechat.yaml. Liczba godzin przechowywania tymczasowych czatów. Domyślnie: 720 (30 dni).# TEMP_CHAT_RETENTION_HOURS=168

Zachowanie:

  • Odkomentuj CUSTOM_FOOTER, aby dodać własną stopkę.
  • Odkomentuj i pozostaw CUSTOM_FOOTER pustym, aby usunąć stopkę.
  • You can now add one or more links in the CUSTOM_FOOTER value using the following format: [Anchor text](URL). Each link should be delineated with a pipe (|).

Przykład Markdown: CUSTOM_FOOTER=[Link 1](http://example1.com) | [Link 2](http://example2.com)

Czapka urodzinowa

KeyTypeDescriptionExample
SHOW_BIRTHDAY_ICONbooleanPokaż ikonę czapki urodzinowej.# SHOW_BIRTHDAY_ICON=true

Zachowanie:

  • Ikona czapki urodzinowej pojawi się automatycznie 11 lutego (w urodziny LibreChat).
  • Ustaw SHOW_BIRTHDAY_ICON na false, aby wyłączyć ikonę urodzinową.
  • Ustaw SHOW_BIRTHDAY_ICON na true, aby włączyć czapkę urodzinową na stałe.

Analityka

Google Tag Manager

LibreChat obsługuje Google Tag Manager do celów analitycznych. Aby włączyć tę funkcję w LibreChat, będziesz potrzebować identyfikatora Google Tag Manager. Postępuj zgodnie z tym przewodnikiem, aby wygenerować identyfikator Google Tag Manager i skonfigurować Google Analytics. Następnie ustaw zmienną środowiskową ANALYTICS_GTM_ID na swój identyfikator Google Tag Manager.

Uwaga: Jeśli ANALYTICS_GTM_ID nie zostanie ustawione, Google Tag Manager nie będzie włączony. Jeśli zostanie ustawione nieprawidłowo, zobaczysz nieudane żądania do gtm.js

KeyTypeDescriptionExample
ANALYTICS_GTM_IDstringIdentyfikator Google Tag Manager.ANALYTICS_GTM_ID=

Import konwersacji

Skonfiguruj limity dla importów plików konwersacji, aby zapobiec problemom z pamięcią.

KeyTypeDescriptionExample
CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTESnumberMaksymalny rozmiar pliku w bajtach dla importów konwersacji. Domyślnie: 0 (brak wymuszonego limitu). Przykład: 262144000 (250 MiB).# CONVERSATION_IMPORT_MAX_FILE_SIZE_BYTES=262144000

Podgląd plików w tekście

Kontroluj, jak duże mogą być wygenerowane pliki, zanim LibreChat pominie ekstrakcję podglądu inline i pozostawi je wyłącznie do pobrania.

KeyTypeDescriptionExample
FILE_PREVIEW_MAX_EXTRACT_BYTESnumberMaksymalny rozmiar pliku źródłowego w bajtach dla podglądów inline artefaktów wykonywania kodu. Domyślnie: 2097152 (2 MiB). Renderowane podglądy HTML są nadal ograniczone oddzielnie, więc bardzo rozbudowane pliki mogą pominąć podgląd nawet poniżej tej wartości.# FILE_PREVIEW_MAX_EXTRACT_BYTES=2097152

MCP (Model Context Protocol)

Skonfiguruj ustawienia Model Context Protocol w celu usprawnienia zarządzania serwerem i obsługi OAuth.

Konfiguracja serwera MCP

KeyTypeDescriptionExample
MCP_OAUTH_ON_AUTH_ERRORbooleanTraktuj odpowiedzi 401/403 jako wymóg OAuth, gdy nie znaleziono metadanych OAuth.MCP_OAUTH_ON_AUTH_ERROR=true
MCP_OAUTH_DETECTION_TIMEOUTnumberLimit czasu dla żądań wykrywania OAuth w milisekundach.MCP_OAUTH_DETECTION_TIMEOUT=5000
MCP_OAUTH_HANDLING_TIMEOUTnumberCzas oczekiwania LibreChat na zakończenie procesu MCP OAuth przez użytkownika przed przekroczeniem limitu czasu. Domyślnie: 600000 ms (10 minut).MCP_OAUTH_HANDLING_TIMEOUT=600000
MCP_OAUTH_FLOW_TTLnumberJak długo przechowywany jest stan przepływu MCP OAuth. LibreChat ogranicza tę wartość powyżej MCP_OAUTH_HANDLING_TIMEOUT, aby wywołania zwrotne bliskie terminu końcowego mogły zostać ukończone. Domyślnie: 900000 ms (15 minut).MCP_OAUTH_FLOW_TTL=900000
MCP_CONNECTION_CHECK_TTLnumberBuforuj sprawdzanie stanu połączenia przez tę liczbę milisekund, aby uniknąć kosztownej weryfikacji.MCP_CONNECTION_CHECK_TTL=30000
MCP_TOOLS_LIST_MAX_PAGESnumberMaksymalna liczba narzędzi/stron listy do zażądania, gdy serwer MCP stosuje paginację listy narzędzi (paginacja kursorem). Ogranicza pętlę paginacji, aby nieprawidłowo działający serwer nie mógł zablokować wykrywania narzędzi. Wartość ograniczona do minimum 1. Domyślnie: 50.MCP_TOOLS_LIST_MAX_PAGES=50
MCP_SKIP_CODE_CHALLENGE_CHECKbooleanPomiń walidację metody wyzwania kodu (code challenge). Po ustawieniu na true, wymusza S256 code challenge, nawet jeśli nie jest on reklamowany w .well-known/openid-configurationMCP_SKIP_CODE_CHALLENGE_CHECK=false
MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTESnumberMaksymalna liczba bajtów dozwolona w niebędącej typu GET, przesyłanej strumieniowo odpowiedzi HTTP MCP przed jej odrzuceniem. Ustaw na 0, aby wyłączyć. Domyślnie: 16777216 (16 MiB).# MCP_STREAMABLE_HTTP_MAX_RESPONSE_BYTES=16777216
MCP_STREAMABLE_HTTP_MAX_LINE_BYTESnumberMaksymalna liczba bajtów dozwolona w jednej linii SSE dla strumieniowych odpowiedzi HTTP MCP innych niż GET. Ustaw na 0, aby wyłączyć. Domyślnie: 5242880 (5 MiB).# MCP_STREAMABLE_HTTP_MAX_LINE_BYTES=5242880

Inne

Redis

Redis zapewnia znaczący wzrost wydajności i umożliwia skalowanie poziome dla LibreChat.

Uwaga: Obsługa Redis jest eksperymentalna i podczas jej używania możesz napotkać pewne problemy.

Ważne: Jeśli używasz Redis, po zmianie jakichkolwiek ustawień LibreChat należy wyczyścić pamięć podręczną (cache).

Aby uzyskać szczegółową konfigurację i przykłady, zobacz: Przewodnik konfiguracji Redis

KeyTypeDescriptionExample
USE_REDISbooleanWłącz Redis do buforowania i przechowywania sesji. Gdy ustawione na true, należy podać REDIS_URI.USE_REDIS=true
USE_REDIS_STREAMSbooleanWłącz Redis dla wznawialnych strumieni LLM. Domyślnie przyjmuje wartość USE_REDIS, jeśli nie ustawiono inaczej. Ustaw na false, aby użyć pamięci operacyjnej do obsługi strumieni.# USE_REDIS_STREAMS=true
REDIS_URIstringURI połączenia Redis. Dla pojedynczej instancji: `redis://host:port`. Dla klastra: adresy URI oddzielone przecinkami.REDIS_URI=redis://127.0.0.1:6379
USE_REDIS_CLUSTERbooleanWłącz tryb klastra Redis podczas korzystania z pojedynczego URI# USE_REDIS_CLUSTER="true"
REDIS_CLUSTER_SAFE_DELETEbooleanUsuwaj klucze pamięci podręcznej Redis pojedynczo, aby uniknąć błędów CROSSSLOT w zarządzanych usługach Redis z pojedynczym punktem końcowym, które wewnętrznie partycjonują klucze.# REDIS_CLUSTER_SAFE_DELETE=true
REDIS_USERNAMEstringNazwa użytkownika Redis do uwierzytelniania. Nadpisuje nazwę użytkownika w URI, jeśli podano obie wartości.# REDIS_USERNAME=your_redis_username
REDIS_PASSWORDstringHasło Redis do uwierzytelniania. Nadpisuje hasło w URI, jeśli podano oba.# REDIS_PASSWORD=your_redis_password
REDIS_CAstringŚcieżka do certyfikatu CA dla weryfikacji TLS podczas korzystania z protokołu rediss://.# REDIS_CA=/path/to/ca-cert.pem
REDIS_KEY_PREFIXstringStatyczny prefiks dla wszystkich kluczy Redis zapobiegający zanieczyszczeniu między wdrożeniami.# REDIS_KEY_PREFIX=librechat-prod-v2
REDIS_KEY_PREFIX_VARstringNazwa zmiennej środowiskowej zawierająca dynamiczny prefiks (np. K_REVISION dla Cloud Run). Nie można używać z REDIS_KEY_PREFIX.# REDIS_KEY_PREFIX_VAR=K_REVISION
REDIS_MAX_LISTENERSnumberMaksymalna liczba odbiorców zdarzeń na klienta Redis. Zapobiega wyciekom pamięci. Domyślnie: 40.# REDIS_MAX_LISTENERS=40
REDIS_PING_INTERVALnumberInterwał ping w sekundach w celu utrzymania połączeń. Domyślnie: 0 (wyłączone). Ustaw tylko w przypadku występowania przekroczeń limitu czasu.# REDIS_PING_INTERVAL=300
FORCED_IN_MEMORY_CACHE_NAMESPACESstringKlucze pamięci podręcznej oddzielone przecinkami, aby wymusić przechowywanie w pamięci RAM, nawet gdy Redis jest włączony.# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
REDIS_USE_ALTERNATIVE_DNS_LOOKUPbooleanWłącz alternatywne dnsLookup dla połączeń TLS z AWS Elasticache. Wymagane dla klastrów Elasticache z TLS.# REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true

Uwagi:

  • Gdy USE_REDIS=true, musisz podać REDIS_URI, w przeciwnym razie aplikacja zgłosi błąd.
  • W przypadku trybu Redis Cluster należy podać wiele identyfikatorów URI: redis://node1:7001,redis://node2:7002,redis://node3:7003 (tryb klastra jest wykrywany automatycznie).
  • W przypadku zarządzanych usług Redis z pojedynczym punktem końcowym, które wewnętrznie dzielą klucze na partycje (sharding), należy zachować USE_REDIS_CLUSTER=false i ustawić REDIS_CLUSTER_SAFE_DELETE=true, jeśli czyszczenie pamięci podręcznej kończy się błędami CROSSSLOT.
  • Użyj protokołu rediss:// dla połączeń TLS i ustaw REDIS_CA, jeśli Twój urząd certyfikacji (CA) nie jest publicznie zaufany.
  • REDIS_KEY_PREFIX_VAR oraz REDIS_KEY_PREFIX wzajemnie się wykluczają.
  • AWS Elasticache z TLS: Elasticache może wymagać użycia alternatywnego dnsLookup dla połączeń TLS. Ustaw REDIS_USE_ALTERNATIVE_DNS_LOOKUP=true, jeśli używasz Elasticache z TLS. Zobacz dokumentację ioredis, aby uzyskać więcej szczegółów.

Wybór lidera

Skonfiguruj rozproszony wybór lidera dla wdrożeń wieloinstancyjnych za pomocą Redis. Wybór lidera zapewnia, że tylko jedna instancja wykonuje określone operacje, takie jak zaplanowane zadania.

KeyTypeDescriptionExample
LEADER_LEASE_DURATIONnumberCzas trwania w sekundach, przez jaki dzierżawa lidera jest ważna przed wygaśnięciem. Domyślnie: 25.LEADER_LEASE_DURATION=25
LEADER_RENEW_INTERVALnumberInterwał w sekundach, z jakim lider odnawia swoją dzierżawę. Domyślnie: 10.LEADER_RENEW_INTERVAL=10
LEADER_RENEW_ATTEMPTSnumberMaksymalna liczba prób ponowienia w przypadku niepowodzenia odnowienia dzierżawy. Domyślnie: 3.LEADER_RENEW_ATTEMPTS=3
LEADER_RENEW_RETRY_DELAYnumberOpóźnienie w sekundach między próbami ponowienia przy odnawianiu dzierżawy. Domyślnie: 0.5.LEADER_RENEW_RETRY_DELAY=0.5

Uwagi:

  • Wybór lidera (leader election) wymaga włączonego Redis (USE_REDIS=true).
  • Te ustawienia są istotne tylko w przypadku wdrożeń wieloinstancyjnych.
  • Dzierżawa lidera musi zostać odnowiona przed wygaśnięciem, aby utrzymać przywództwo.
  • Jeśli odnowienie dzierżawy nie powiedzie się po maksymalnej liczbie prób, instancja zrzeknie się przywództwa.

Jaka jest ta instrukcja?

Na tej stronie

Konfiguracja serweraPortTrust proxyKonfiguracja poświadczeńObsługa plików statycznychKontrola pamięci podręcznej pliku Index HTMLBaza danych MongoDBKonfiguracja puli połączeń MongoDBKonfiguracja schematu MongoDBDomeny aplikacjiZapobieganie indeksowaniu przez publiczne wyszukiwarkiLogowaniePliki dziennikaZmienne środowiskoweUprawnieniaŚledzenie OpenTelemetryReal User Monitoring (Przeglądarka)Ścieżka konfiguracji - librechat.yamlUmiejętności wdrażaniaWalidacja konfiguracjiObsługa nieprzechwyconych wyjątkówEndpointsKonfiguracja ogólnaZnane endpointy - librechat.yamlWyszukiwanie w sieciAnthropicAnthropic przez Vertex AIAWS BedrockBingAIGoogleGenerowanie obrazów przez GeminiOpenAIAsystenciTavilyTraversaalWolframAlphaZapierOpenWeatherCode InterpreterArtefaktyWyszukiwanie (Meilisearch)RAG APIMowa na tekst (Speech to Text) i tekst na mowę (Text to Speech)Udostępnione linkiSystem użytkownikaModeracjaPodstawowe ustawienia moderacjiUstawienia banowaniaOgraniczanie częstotliwości logowania i rejestracjiWynik dla każdego naruszeniaOgraniczanie częstotliwości wiadomości (na użytkownika i IP)LimiteryOgranicznik IP:Ogranicznik użytkowników:Limitowanie częstotliwości importu konwersacjiOgranicznik IP:Ogranicznik użytkowników:Ograniczanie częstotliwości forkowania konwersacjiOgranicznik IP:Ogranicznik użytkowników:Limitowanie szybkości przesyłania plikówOgranicznik IP:Ogranicznik użytkowników:Limitowanie szybkości TTS (Text-to-Speech)Ogranicznik IP:Ogranicznik użytkowników:Limitowanie szybkości STT (Speech-to-Text)Ogranicznik IP:Ogranicznik użytkowników:SaldoZarządzanie saldamiRejestracja i logowanieLogowanie przez media społecznościoweUwierzytelnianie AppleUwierzytelnianie DiscordUwierzytelnianie przez FacebookUwierzytelnianie GitHubUwierzytelnianie GoogleOpenID ConnectPonowne wykorzystanie tokena OpenID ConnectIntegracja z Microsoft Graph API / Entra IDIntegracja z SharePointSAMLUwierzytelnianie LDAP/ADResetowanie hasłaKonfiguracja Mailgun (zalecane)Konfiguracja SMTPFirebase CDNAmazon S3 i CloudFrontAzure Blob Storage CDNUIPrzycisk pomocy i FAQTytuł aplikacji i stopkaCzapka urodzinowaAnalitykaGoogle Tag ManagerImport konwersacjiPodgląd plików w tekścieMCP (Model Context Protocol)Konfiguracja serwera MCPInneRedisWybór lidera