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:
endpointsserverFileSizeLimitavatarSizeLimitimageGenerationfileTokenLimitocrtextstt
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,textorazsttkontrolują 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ścidefault.- 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.
openAIazureOpenAIgooglebedrockYourCustomEndpointName
- W przypadku endpointów innych niż asystenci, możesz dostosować ustawienia plików dla wszystkich z nich w sekcji
- 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
| Key | Type | Description | Example |
|---|---|---|---|
| serverFileSizeLimit | Integer | Globalny 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: 1000avatarSizeLimit
| Key | Type | Description | Example |
|---|---|---|---|
| avatarSizeLimit | Integer | Maksymalny 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: 2imageGeneration
| Key | Type | Description | Example |
|---|---|---|---|
| imageGeneration | Object | Ustawienia 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.
100oznacza 100% rozmiaru podstawowego). - Użyj tego, aby przeskalować obraz wyjściowy względem rozmiaru domyślnego lub oryginalnego.
- Rozmiar wyjściowy wygenerowanego obrazu wyrażony jako wartość procentowa (np.
-
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.
- Określa wymiar wyjściowy obrazu w pikselach (np.
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: 1024fileTokenLimit
| Key | Type | Description | Example |
|---|---|---|---|
| fileTokenLimit | Number | Maksymalna 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: 100000ocr
| Key | Type | Description | Example |
|---|---|---|---|
| ocr | Object | Ustawienia 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:
- Konfiguracja Agentów dla możliwości
ocrorazcontext - Konfiguracja OCR dla konfiguracji usługi OCR
supportedMimeTypes
| Key | Type | Description | Example |
|---|---|---|---|
| supportedMimeTypes | Array of Strings | Lista 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
| Key | Type | Description | Example |
|---|---|---|---|
| text | Object | Ustawienia 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
| Key | Type | Description | Example |
|---|---|---|---|
| supportedMimeTypes | Array of Strings | Lista 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
| Key | Type | Description | Example |
|---|---|---|---|
| stt | Object | Ustawienia 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
| Key | Type | Description | Example |
|---|---|---|---|
| supportedMimeTypes | Array of Strings | Lista 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
textsą przetwarzane za pomocą prostej ekstrakcji tekstu - Pliki pasujące do wzorców
ocrsą przetwarzane przy użyciu dostarczonej usługi OCR - Pliki pasujące do wzorców
sttsą 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:
- OCR – Jeśli plik pasuje do
ocr.supportedMimeTypesORAZ OCR jest skonfigurowany - STT – Jeśli plik pasuje do
stt.supportedMimeTypesORAZ STT jest skonfigurowane - Analiza tekstu - Jeśli plik pasuje do
text.supportedMimeTypes - 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
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Record/Object | Konfiguruje 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
20dla 20 megabajtów)
- Maksymalny rozmiar pojedynczego pliku. W jednostkach MB (np. użyj
totalSizeLimit- Całkowity maksymalny rozmiar wszystkich plików w pojedynczym żądaniu. W jednostkach MB (np. użyj
20dla 20 megabajtów)
- Całkowity maksymalny rozmiar wszystkich plików w pojedynczym żądaniu. W jednostkach MB (np. użyj
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
| Key | Type | Description | Example |
|---|---|---|---|
| disabled | Boolean | Wskazuje, 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: truefileLimit
Klucz:
| Key | Type | Description | Example |
|---|---|---|---|
| fileLimit | Integer | Maksymalna 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: 5fileSizeLimit
Klucz:
| Key | Type | Description | Example |
|---|---|---|---|
| fileSizeLimit | Integer | Maksymalny 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: 1000totalSizeLimit
Klucz:
| Key | Type | Description | Example |
|---|---|---|---|
| totalSizeLimit | Integer | Cał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: 50supportedMimeTypes
Klucz:
| Key | Type | Description | Example |
|---|---|---|---|
| supportedMimeTypes | Array of Strings | Lista 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?