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

Struktura obiektu konfiguracji pliku

Przegląd

Obiekt fileConfig umożliwia skonfigurowanie ustawień obsługi plików w aplikacji, w tym limitów rozmiaru oraz ograniczeń typów MIME. Ta sekcja zawiera szczegółowy opis struktury obiektu fileConfig.

W sekcji fileConfig znajduje się 8 głównych pól:

  • endpoints
  • serverFileSizeLimit
  • avatarSizeLimit
  • imageGeneration
  • fileTokenLimit
  • ocr
  • text
  • stt

Uwagi:

  • W momencie pisania tego tekstu, endpoint Assistants obsługuje typy plików z tej listy.
  • OpenAI, Azure OpenAI, Google oraz niestandardowe endpointy obsługują pliki za pośrednictwem RAG API.
  • Punkty końcowe OpenAI, Azure OpenAI, Anthropic, Google oraz AWS Bedrock obsługują bezpośrednie przesyłanie plików za pomocą Upload to Provider.
  • Sekcje ocr, text oraz stt kontrolują przetwarzanie plików dla funkcji takich jak Upload as Text oraz OCR
  • Wszelkie inne niewymienione endpointy, takie jak Plugins, nie obsługują (jeszcze) przesyłania plików.
  • Punkt końcowy Assistants ma zdefiniowaną wartość endpoint równą assistants. Wszystkie pozostałe punkty końcowe używają zdefiniowanej wartości default.
    • W przypadku endpointów innych niż asystenci, możesz dostosować ustawienia plików dla wszystkich z nich w sekcji default
    • Jeśli chcesz dostosować ustawienia dla konkretnego endpoint, możesz wymienić odpowiadające im nazwy endpoint:
      • assistants
        • nie używa "default", ponieważ posiada zdefiniowane wartości domyślne oddzielone od pozostałych.
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • Możesz pominąć wartości; w takim przypadku aplikacja użyje wartości domyślnych zdefiniowanych dla każdego typu endpoint, wymienionych poniżej.
  • LibreChat liczy 1 megabajt w następujący sposób: 1 x 1024 x 1024

Przykład

fileConfig:
  endpoints:
    assistants:
      fileLimit: 5
      fileSizeLimit: 10
      totalSizeLimit: 50
      supportedMimeTypes:
        - "image/.*"
        - "application/pdf"
    openAI:
      disabled: true
    default:
      totalSizeLimit: 20
    YourCustomEndpointName:
      fileLimit: 5
      fileSizeLimit: 1000
      supportedMimeTypes:
        - "image/.*"
  serverFileSizeLimit: 1000
  avatarSizeLimit: 2
  fileTokenLimit: 100000
  imageGeneration:
    percentage: 100
    px: 1024
  ocr:
    supportedMimeTypes:
      - "^image/(jpeg|gif|png|webp|heic|heif)$"
      - "^application/pdf$"
      - "^application/vnd\\.openxmlformats-officedocument\\.(wordprocessingml\\.document|presentationml\\.presentation|spreadsheetml\\.sheet)$"
      - "^application/vnd\\.ms-(word|powerpoint|excel)$"
      - "^application/epub\\+zip$"
  text:
    supportedMimeTypes:
      - "^text/(plain|markdown|csv|json|xml|html|css|javascript|typescript|x-python|x-java|x-csharp|x-php|x-ruby|x-go|x-rust|x-kotlin|x-swift|x-scala|x-perl|x-lua|x-shell|x-sql|x-yaml|x-toml)$"
  stt:
    supportedMimeTypes:
      - "^audio/(mp3|mpeg|mpeg3|wav|wave|x-wav|ogg|vorbis|mp4|x-m4a|flac|x-flac|webm)$"

serverFileSizeLimit

KeyTypeDescriptionExample
serverFileSizeLimitIntegerGlobalny maksymalny rozmiar dowolnego pliku przesłanego na serwer, określony w megabajtach (MB).Acts as an overarching limit for file uploads across all endpoints, ensuring that no file exceeds this size server-wide.
fileConfig:
  serverFileSizeLimit: 1000

avatarSizeLimit

KeyTypeDescriptionExample
avatarSizeLimitIntegerMaksymalny dozwolony rozmiar obrazów awatarów, określony w megabajtach (MB).Specifically tailored for user avatar uploads, allowing for control over image sizes to maintain consistent quality and loading times.
fileConfig:
  avatarSizeLimit: 2

imageGeneration

KeyTypeDescriptionExample
imageGenerationObjectUstawienia związane z jakością i wymiarami generowanych obrazów.Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration obsługuje następujące parametry:

  • percentage (Liczba całkowita)

    • Rozmiar wyjściowy wygenerowanego obrazu wyrażony jako wartość procentowa (np. 100 oznacza 100% rozmiaru podstawowego).
    • Użyj tego, aby przeskalować obraz wyjściowy względem rozmiaru domyślnego lub oryginalnego.
  • px (Liczba całkowita)

    • Określa wymiar wyjściowy obrazu w pikselach (np. 1024).
    • Użyj tego, aby jawnie ustawić rozmiar wyjściowy wygenerowanego obrazu, niezależnie od rozmiaru bazowego.

Możesz ustawić tylko jeden z tych parametrów (percentage lub px), a nie oba, w zależności od przypadku użycia.

Przykładowa konfiguracja:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumberMaksymalna liczba tokenów z plików tekstowych do uwzględnienia w promptach przed obcięciem.fileTokenLimit: 100000

Opis: Podczas dołączania zawartości tekstowej, LibreChat przycina tekst w czasie wykonywania do skonfigurowanego limitu tokenów tuż przed konstrukcją promptu.

Domyślnie: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObjectUstawienia przetwarzania plików za pomocą optycznego rozpoznawania znaków (OCR).Configures which file types are processed using OCR.

Opis: Sekcja ocr konfiguruje, które typy plików powinny być przetwarzane przy użyciu funkcji OCR w celu wyodrębnienia tekstu z dokumentów wizualnych.

Uwaga: Ta sekcja kontroluje dopasowywanie typów plików do przetwarzania OCR. Aby włączyć funkcje agenta i skonfigurować usługi OCR, zobacz:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista wzorców typów MIME dla plików, które powinny być przetwarzane za pomocą OCR.Uses regular expressions to match file types.

Domyślnie: Obrazy, pliki PDF oraz dokumenty Office

fileConfig:
  ocr:
    supportedMimeTypes:
      - "^image/(jpeg|gif|png|webp|heic|heif)$"
      - "^application/pdf$"
      - "^application/vnd\\.openxmlformats-officedocument\\.(wordprocessingml\\.document|presentationml\\.presentation|spreadsheetml\\.sheet)$"
      - "^application/vnd\\.ms-(word|powerpoint|excel)$"
      - "^application/epub\\+zip$"

text

KeyTypeDescriptionExample
textObjectUstawienia bezpośredniego parsowania plików tekstowych bez OCR.Configures which file types are processed as plain text files for direct content extraction.

Opis: Sekcja text konfiguruje, które typy plików powinny być przetwarzane przy użyciu bezpośredniej ekstrakcji tekstu.

Uwaga: Parsowanie tekstu jest domyślną metodą używaną przez funkcję „Prześlij jako tekst” (kontrolowaną przez funkcję context). Najpierw podejmuje próbę użycia biblioteki do parsowania tekstu z RAG API, a jeśli RAG API nie jest połączone, przełącza się na prostszą metodę ekstrakcji tekstu, która nie wymaga żadnych usług zewnętrznych. Zobacz Prześlij jako tekst, aby uzyskać więcej informacji.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista wzorców typów MIME dla plików, które powinny być przetwarzane jako zwykły tekst.Uses regular expressions to match file types.

Domyślnie: Wszystkie pliki tekstowe i popularne języki programowania

fileConfig:
  text:
    supportedMimeTypes:
      - "^text/(plain|markdown|csv|json|xml|html|css|javascript|typescript|x-python|x-java|x-csharp|x-php|x-ruby|x-go|x-rust|x-kotlin|x-swift|x-scala|x-perl|x-lua|x-shell|x-sql|x-yaml|x-toml)$"

stt

KeyTypeDescriptionExample
sttObjectUstawienia przetwarzania plików audio Speech-to-Text (STT).Configures which audio file types are processed using STT for transcription.

Opis: Sekcja stt konfiguruje, które typy plików audio powinny być przetwarzane przy użyciu funkcjonalności Speech-to-Text w celu konwersji dźwięku na tekst.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista wzorców typów MIME dla plików audio, które powinny być transkrybowane za pomocą STT.Uses regular expressions to match audio file types.

Domyślnie: Popularne formaty audio

fileConfig:
  stt:
    supportedMimeTypes:
      - "^audio/(mp3|mpeg|mpeg3|wav|wave|x-wav|ogg|vorbis|mp4|x-m4a|flac|x-flac|webm)$"

Uwagi:

  • Pliki pasujące do wzorców text są przetwarzane za pomocą prostej ekstrakcji tekstu
  • Pliki pasujące do wzorców ocr są przetwarzane przy użyciu dostarczonej usługi OCR
  • Pliki pasujące do wzorców stt są przetwarzane za pomocą transkrypcji mowy na tekst (Speech-to-Text).
  • Priorytet przetwarzania: OCR > STT > parsowanie tekstu > fallback
  • Pliki niepasujące do żadnego wzorca będą przetwarzane jako tekst.

Priorytet przetwarzania plików

LibreChat przetwarza przesłane pliki w oparciu o dopasowanie typu MIME z następującą kolejnością priorytetów:

  1. OCR – Jeśli plik pasuje do ocr.supportedMimeTypes ORAZ OCR jest skonfigurowany
  2. STT – Jeśli plik pasuje do stt.supportedMimeTypes ORAZ STT jest skonfigurowane
  3. Analiza tekstu - Jeśli plik pasuje do text.supportedMimeTypes
  4. Fallback – Analiza tekstu w ostateczności

Ta kolejność przetwarzania zapewnia optymalną jakość ekstrakcji przy jednoczesnym zachowaniu funkcjonalności, nawet gdy wyspecjalizowane usługi (OCR/STT) nie są skonfigurowane.

Przykłady przetwarzania

Plik PDF ze skonfigurowanym OCR:

  • Plik pasuje do ocr.supportedMimeTypes
  • Używa OCR do wyodrębniania tekstu
  • Lepsza jakość zeskanowanych plików PDF i obrazów

Plik PDF bez skonfigurowanego OCR:

  • Plik pasuje do text.supportedMimeTypes (lub używa wartości domyślnej)
  • Używa biblioteki do parsowania tekstu
  • Działa dobrze w przypadku cyfrowych plików PDF z możliwością zaznaczania tekstu

Plik Python:

  • Plik pasuje do text.supportedMimeTypes
  • Wykorzystuje parsowanie tekstu (nie wymaga OCR)
  • Bezpośrednia ekstrakcja tekstu

Plik audio z skonfigurowanym STT:

  • Plik pasuje do stt.supportedMimeTypes
  • Używa STT do transkrypcji dźwięku na tekst

Plik obrazu bez skonfigurowanego OCR:

  • Plik pasuje do ocr.supportedMimeTypes, ale OCR nie jest dostępny
  • Powraca do parsowania tekstu
  • Ograniczona możliwość ekstrakcji bez OCR

Ten system priorytetów pozwala funkcjom takim jak „Upload as Text” działać bez konieczności konfiguracji OCR, jednocześnie wykorzystując OCR, gdy jest dostępny, w celu poprawy jakości ekstrakcji.

endpoints

KeyTypeDescriptionExample
endpointsRecord/ObjectKonfiguruje ustawienia obsługi plików dla poszczególnych endpoint, umożliwiając dostosowanie ich dla każdego endpoint z osobna.Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

Opis: Każdy obiekt w sekcji endpoints to rekord, który może posiadać następujące ustawienia:

Przegląd

  • disabled
    • Czy obsługa plików jest wyłączona dla tego endpoint.
  • fileLimit
    • Maksymalna liczba plików dozwolona w jednym żądaniu przesłania.
  • fileSizeLimit
    • Maksymalny rozmiar pojedynczego pliku. W jednostkach MB (np. użyj 20 dla 20 megabajtów)
  • totalSizeLimit
    • Całkowity maksymalny rozmiar wszystkich plików w pojedynczym żądaniu. W jednostkach MB (np. użyj 20 dla 20 megabajtów)
  • supportedMimeTypes
    • Lista wyrażeń regularnych określająca, jakie typy MIME są dozwolone do przesłania. Można ją dostosować, aby ograniczyć typy plików.

disabled

KeyTypeDescriptionExample
disabledBooleanWskazuje, czy przesyłanie plików jest wyłączone dla określonego endpoint.Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

Domyślnie: false

openAI:
  disabled: true

fileLimit

Klucz:

KeyTypeDescriptionExample
fileLimitIntegerMaksymalna liczba plików dozwolona w pojedynczym żądaniu przesyłania.Helps control the volume of uploads and manage server load.

Domyślnie: Różni się w zależności od endpoint

assistants:
  fileLimit: 5

fileSizeLimit

Klucz:

KeyTypeDescriptionExample
fileSizeLimitIntegerMaksymalny dozwolony rozmiar każdego pojedynczego pliku, określony w megabajtach (MB).This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

Domyślnie: Różni się w zależności od endpoint

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

Klucz:

KeyTypeDescriptionExample
totalSizeLimitIntegerCałkowity maksymalny rozmiar dozwolony dla wszystkich plików w pojedynczym żądaniu, określony w megabajtach (MB).This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

Domyślnie: Różni się w zależności od endpoint

assistants:
  totalSizeLimit: 50

supportedMimeTypes

Klucz:

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsLista wyrażeń regularnych definiujących typy MIME dozwolone do przesłania.This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

Domyślnie: Różni się w zależności od endpoint

assistants:
  supportedMimeTypes:
      - "image/.*"
      - "application/pdf"

Jaka jest ta instrukcja?