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

Struktur Objek Konfigurasi File

Ikhtisar

Objek fileConfig memungkinkan Anda untuk mengonfigurasi pengaturan penanganan file untuk aplikasi, termasuk batas ukuran dan pembatasan tipe MIME. Bagian ini memberikan rincian mendalam mengenai struktur objek fileConfig.

Terdapat 8 kolom utama di bawah fileConfig:

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

Catatan:

  • Pada saat penulisan ini, endpoint Assistants mendukung tipe file dari daftar ini.
  • OpenAI, Azure OpenAI, Google, dan endpoint Custom mendukung file melalui RAG API.
  • Endpoint OpenAI, Azure OpenAI, Anthropic, Google, dan AWS Bedrock mendukung unggahan file langsung melalui Upload to Provider.
  • Bagian ocr, text, dan stt mengontrol pemrosesan file untuk fitur seperti Upload as Text dan OCR
  • Endpoint lain yang tidak disebutkan, seperti Plugins, belum mendukung unggahan file (untuk saat ini).
  • Endpoint Assistants memiliki nilai endpoint yang ditentukan yaitu assistants. Semua endpoint lainnya menggunakan nilai yang ditentukan yaitu default
    • Untuk endpoint non-asisten, Anda dapat menyesuaikan pengaturan file untuk semuanya di bawah default
    • Jika Anda ingin menyesuaikan pengaturan untuk endpoint tertentu, Anda dapat mencantumkan nama endpoint yang sesuai:
      • assistants
        • tidak menggunakan "default" karena memiliki default yang ditentukan secara terpisah dari yang lain.
      • openAI
      • azureOpenAI
      • google
      • bedrock
      • YourCustomEndpointName
  • Anda dapat mengabaikan nilai-nilai tersebut, dalam hal ini, aplikasi akan menggunakan nilai default sebagaimana ditentukan per tipe endpoint yang tercantum di bawah ini.
  • LibreChat menghitung 1 megabyte sebagai berikut: 1 x 1024 x 1024

Contoh

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
serverFileSizeLimitIntegerUkuran maksimum global untuk file apa pun yang diunggah ke server, ditentukan dalam megabita (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
avatarSizeLimitIntegerUkuran maksimum yang diizinkan untuk gambar avatar, ditentukan dalam megabita (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
imageGenerationObjectPengaturan terkait kualitas dan dimensi output pembuatan gambar.Allows configuration of either output size as a percentage relative to some base size or as an explicit pixel dimension.

imageGeneration mendukung parameter berikut:

  • percentage (Bilangan Bulat)

    • Ukuran output dari gambar yang dihasilkan dinyatakan sebagai persentase (contoh: 100 berarti 100% dari ukuran dasar).
    • Gunakan ini untuk menskalakan gambar keluaran relatif terhadap ukuran default atau ukuran asli.
  • px (Bilangan Bulat)

    • Menentukan dimensi gambar keluaran dalam piksel (contoh: 1024).
    • Gunakan ini untuk menetapkan ukuran output gambar yang dihasilkan secara eksplisit, terlepas dari ukuran dasar.

Anda hanya boleh menetapkan salah satu dari parameter ini (percentage atau px), bukan keduanya, tergantung pada kasus penggunaan Anda.

Contoh konfigurasi:

fileConfig:
  imageGeneration:
    percentage: 100
    px: 1024

fileTokenLimit

KeyTypeDescriptionExample
fileTokenLimitNumberJumlah maksimum token dari file teks yang disertakan dalam prompt sebelum pemotongan.fileTokenLimit: 100000

Deskripsi: Saat melampirkan konten teks, LibreChat memotong teks tersebut pada saat runtime sesuai dengan batas token yang dikonfigurasi tepat sebelum pembuatan prompt.

Default: 100000

fileConfig:
  fileTokenLimit: 100000

ocr

KeyTypeDescriptionExample
ocrObjectPengaturan untuk pemrosesan file Optical Character Recognition (OCR).Configures which file types are processed using OCR.

Deskripsi: Bagian ocr mengonfigurasi jenis file mana yang harus diproses menggunakan fungsionalitas OCR untuk mengekstrak teks dari dokumen visual.

Catatan: Bagian ini mengontrol pencocokan tipe file untuk pemrosesan OCR. Untuk mengaktifkan kemampuan agen dan mengonfigurasi layanan OCR, lihat:

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDaftar pola tipe MIME untuk file yang harus diproses dengan OCR.Uses regular expressions to match file types.

Default: Gambar, PDF, dan dokumen 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
textObjectPengaturan untuk penguraian file teks langsung tanpa OCR.Configures which file types are processed as plain text files for direct content extraction.

Deskripsi: Bagian text mengonfigurasi jenis file mana yang harus diproses menggunakan ekstraksi teks langsung.

Catatan: Penguraian teks adalah metode default yang digunakan oleh fitur "Upload as Text" (dikendalikan oleh kapabilitas context). Fitur ini pertama-tama mencoba menggunakan pustaka penguraian teks dari API RAG, dan jika API RAG tidak terhubung, fitur ini akan beralih ke metode ekstraksi teks yang lebih sederhana tanpa memerlukan layanan eksternal apa pun. Lihat Upload as Text untuk informasi lebih lanjut.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDaftar pola tipe MIME untuk file yang harus diurai sebagai teks biasa.Uses regular expressions to match file types.

Default: Semua file teks dan bahasa pemrograman umum

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
sttObjectPengaturan untuk pemrosesan file audio Speech-to-Text (STT).Configures which audio file types are processed using STT for transcription.

Deskripsi: Bagian stt mengonfigurasi jenis file audio mana yang harus diproses menggunakan fungsionalitas Speech-to-Text untuk mengubah audio menjadi teks.

supportedMimeTypes

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDaftar pola tipe MIME untuk file audio yang harus ditranskripsi dengan STT.Uses regular expressions to match audio file types.

Default: Format audio umum

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

Catatan:

  • File yang cocok dengan pola text diproses dengan ekstraksi teks sederhana
  • File yang cocok dengan pola ocr diproses dengan layanan OCR yang disediakan
  • File yang cocok dengan pola stt diproses dengan transkripsi Speech-to-Text
  • Prioritas pemrosesan: OCR > STT > penguraian teks > fallback
  • File yang tidak cocok dengan pola apa pun akan kembali ke penguraian teks

Prioritas Pemrosesan File

LibreChat memproses file yang diunggah berdasarkan pencocokan tipe MIME dengan urutan prioritas berikut:

  1. OCR - Jika file cocok dengan ocr.supportedMimeTypes DAN OCR telah dikonfigurasi
  2. STT - Jika file cocok dengan stt.supportedMimeTypes DAN STT telah dikonfigurasi
  3. Penguraian Teks - Jika file cocok dengan text.supportedMimeTypes
  4. Fallback - Penguraian teks sebagai upaya terakhir

Urutan pemrosesan ini memastikan kualitas ekstraksi yang optimal sekaligus menjaga fungsionalitas tetap berjalan meskipun layanan khusus (OCR/STT) tidak dikonfigurasi.

Contoh Pemrosesan

File PDF dengan OCR dikonfigurasi:

  • File cocok dengan ocr.supportedMimeTypes
  • Menggunakan OCR untuk mengekstrak teks
  • Kualitas yang lebih baik untuk PDF hasil pindaian dan gambar

File PDF tanpa OCR dikonfigurasi:

  • File cocok dengan text.supportedMimeTypes (atau menggunakan fallback)
  • Menggunakan pustaka text parsing
  • Berfungsi dengan baik untuk PDF digital dengan teks yang dapat dipilih

File Python:

  • File cocok dengan text.supportedMimeTypes
  • Menggunakan penguraian teks (tidak perlu OCR)
  • Ekstraksi teks langsung

File audio dengan STT dikonfigurasi:

  • File cocok dengan stt.supportedMimeTypes
  • Menggunakan STT untuk mentranskripsikan audio menjadi teks

File gambar tanpa OCR dikonfigurasi:

  • File cocok dengan ocr.supportedMimeTypes tetapi OCR tidak tersedia
  • Beralih ke penguraian teks
  • Kemampuan ekstraksi terbatas tanpa OCR

Sistem prioritas ini memungkinkan fitur seperti "Upload as Text" berfungsi tanpa memerlukan konfigurasi OCR, sekaligus tetap memanfaatkan OCR jika tersedia untuk kualitas ekstraksi yang lebih baik.

endpoints

KeyTypeDescriptionExample
endpointsRecord/ObjectMengonfigurasi pengaturan penanganan file untuk endpoint individual, memungkinkan kustomisasi berdasarkan basis per endpoint.Specifies file handling configurations for individual endpoints, allowing customization per endpoint basis.

Deskripsi: Setiap objek di bawah endpoints adalah record yang dapat memiliki pengaturan berikut:

Gambaran Umum

  • disabled
    • Apakah penanganan file dinonaktifkan untuk endpoint tersebut.
  • fileLimit
    • Jumlah maksimum file yang diizinkan per permintaan unggahan.
  • fileSizeLimit
    • Ukuran maksimum untuk satu file. Dalam satuan MB (contoh: gunakan 20 untuk 20 megabyte)
  • totalSizeLimit
    • Ukuran maksimum total untuk semua file dalam satu permintaan. Dalam satuan MB (contoh: gunakan 20 untuk 20 megabyte)
  • supportedMimeTypes
    • Daftar Regular Expressions yang menentukan tipe MIME apa saja yang diizinkan untuk diunggah. Ini dapat disesuaikan untuk membatasi tipe file.

disabled

KeyTypeDescriptionExample
disabledBooleanMenunjukkan apakah pengunggahan file dinonaktifkan untuk endpoint tertentu.Setting this to `true` prevents any file uploads to the specified endpoint, overriding any other file-related settings.

Default: false

openAI:
  disabled: true

fileLimit

Kunci:

KeyTypeDescriptionExample
fileLimitIntegerJumlah maksimum file yang diizinkan dalam satu permintaan unggahan.Helps control the volume of uploads and manage server load.

Default: Bervariasi tergantung endpoint

assistants:
  fileLimit: 5

fileSizeLimit

Kunci:

KeyTypeDescriptionExample
fileSizeLimitIntegerUkuran maksimum yang diizinkan untuk setiap file individu, ditentukan dalam megabyte (MB).This limit ensures that no single file exceeds the specified size, allowing for better resource allocation and management.

Default: Bervariasi tergantung endpoint

YourCustomEndpointName:
  fileSizeLimit: 1000

totalSizeLimit

Kunci:

KeyTypeDescriptionExample
totalSizeLimitIntegerUkuran maksimum total yang diizinkan untuk semua file dalam satu permintaan, ditentukan dalam megabyte (MB).This setting is crucial for preventing excessive bandwidth and storage usage by any single upload request.

Default: Bervariasi tergantung endpoint

assistants:
  totalSizeLimit: 50

supportedMimeTypes

Kunci:

KeyTypeDescriptionExample
supportedMimeTypesArray of StringsDaftar ekspresi reguler yang menentukan tipe MIME yang diizinkan untuk diunggah.This allows for precise control over the types of files that can be uploaded. Invalid regex is ignored.

Default: Bervariasi tergantung endpoint

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

Bagaimana panduan ini?