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

Struktur Konfigurasi

Catatan: Bidang yang tidak disebutkan secara khusus sebagai wajib bersifat opsional.

version

  • wajib
KeyTypeDescriptionExample
versionStringMenentukan versi file konfigurasi.version: 1.3.13

cache

KeyTypeDescriptionExample
cacheBooleanMengaktifkan atau menonaktifkan caching. Atur ke `true` untuk mengaktifkan caching (default).cache: true

skillSync

KeyTypeDescriptionExample
skillSyncObjectMengonfigurasi pencerminan Skill eksternal. Pada v1.3.13, GitHub Skill Sync didukung.

lihat: Struktur Objek Skill Sync

messageFilter

KeyTypeDescriptionExample
messageFilterObjectMengonfigurasi filter pesan sisi server. Pada v1.3.13, `messageFilter.pii` dapat menolak teks yang dikirimkan yang berbentuk kredensial sebelum panggilan model dan persistensi.

lihat: Struktur Objek Filter Pesan

fileStrategy

  • Opsi: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategyStringMenentukan lokasi penyimpanan file yang diunggah/dihasilkan pengguna. Defaultnya adalah `"local"` jika tidak ditentukan.fileStrategy: "firebase"
  • Catatan:
    • "cloudfront" menyimpan file di S3 dan mengembalikan URL CloudFront untuk pengiriman media yang stabil, cookie yang ditandatangani (signed cookies), dan unduhan yang ditandatangani (signed downloads).
    • "firebase" menyajikan file melalui lokasi edge Firebase Storage dan Firebase Hosting.
    • S3 menyajikan file melalui presigned URLs (token bertanda tangan sementara) yang memiliki masa kedaluwarsa. Setelah kedaluwarsa, gambar atau avatar apa pun yang merujuk pada URL tersebut akan tampak rusak di UI. Hal ini membuat S3 tidak cocok sebagai strategi utama untuk aset visual. Lihat diskusi terkait untuk detailnya.
    • Untuk performa terbaik gambar dan avatar, gunakan "cloudfront" atau "firebase", atau konfigurasikan fileStrategies untuk mengarahkan avatar dan image ke strategi yang didukung CDN.
    • Silakan merujuk ke dokumentasi File Storage & CDN untuk detail penyiapan.

fileStrategies

Memberikan kontrol terperinci atas strategi penyimpanan file untuk berbagai jenis file.

  • Strategi yang Tersedia: "local" | "firebase" | "s3" | "azure_blob" | "cloudfront"
KeyTypeDescriptionExample
fileStrategiesObjectMengonfigurasi strategi penyimpanan yang berbeda untuk jenis file yang berbeda. Lebih fleksibel daripada opsi fileStrategy tunggal.

Sub-kunci:

KeyTypeDescriptionExample
defaultStringStrategi penyimpanan cadangan saat tipe spesifik tidak ditentukan. Default ke "local".
avatarStringStrategi penyimpanan untuk gambar avatar pengguna dan agen. Disarankan untuk menggunakan strategi berbasis CDN (`"cloudfront"` atau `"firebase"`) untuk performa terbaik.
imageStringStrategi penyimpanan untuk gambar yang diunggah dalam obrolan. Disarankan untuk menggunakan strategi berbasis CDN (`"cloudfront"` atau `"firebase"`) untuk performa terbaik.
documentStringStrategi penyimpanan untuk unggahan dokumen (PDF, file teks, dll.).
skillsStringStrategi penyimpanan untuk file yang dibundel dengan Skills.
  • Catatan:
    • Pengaturan ini lebih diutamakan daripada opsi fileStrategy tunggal
    • Jika tipe file tertentu tidak dikonfigurasi, sistem akan kembali ke default, kemudian ke fileStrategy, dan terakhir ke "local"
    • Gambar dan avatar memerlukan URL yang persisten dan stabil agar dapat dirender dengan benar di seluruh UI. URL presigned S3 akan kedaluwarsa (batas AWS: 7 hari untuk pengguna IAM, beberapa jam untuk kredensial berbasis STS/peran), yang menyebabkan gambar rusak di pemilih model dan UI obrolan. Lihat diskusi terkait untuk konteks lengkapnya. Gunakan "cloudfront" atau "firebase" untuk avatar dan image guna menghindari masalah ini.
    • S3 dan Azure Blob Storage sangat cocok untuk penyimpanan document, di mana URL unduhan presigned yang berumur pendek adalah pilihan yang tepat.
    • Silakan merujuk ke File Storage & CDN documentation untuk detail pengaturan bagi setiap penyedia penyimpanan.

Contoh:

# Use a single strategy for all file types
fileStrategies:
  default: 's3'
# Route images and avatars to CDN, keep documents in object storage
fileStrategies:
  avatar: 'cloudfront' # CDN delivery for avatars
  image: 'cloudfront' # CDN delivery for generated/uploaded images
  document: 's3' # Object storage for documents
# Only configure specific types, others use default
fileStrategies:
  default: 'local'
  avatar: 'firebase' # Only avatars use Firebase CDN, everything else is local

cloudfront

Kunci:

KeyTypeDescriptionExample
cloudfrontObjectMengonfigurasi pengiriman CloudFront untuk file yang disimpan di S3.

Subkey:

KeyTypeDescriptionExample
domainStringDomain distribusi CloudFront atau CNAME. Diperlukan jika strategi file apa pun menggunakan `"cloudfront"`.domain: "https://cdn.example.com"
distributionIdStringID distribusi CloudFront. Diperlukan saat `invalidateOnDelete` bernilai true.distributionId: "E1234ABCD"
invalidateOnDeleteBooleanMembuat invalidasi CloudFront untuk file yang dihapus. Default: false.invalidateOnDelete: false
imageSigningStringMengontrol akses gambar/avatar inline. Opsi: `"none"` atau `"cookies"`. `"url"` dicadangkan dan belum diimplementasikan untuk gambar.imageSigning: "cookies"
cookieDomainStringDomain cookie induk bersama diperlukan untuk cookie yang ditandatangani. Harus diawali dengan titik.cookieDomain: ".example.com"
cookieExpiryNumberMasa berlaku cookie yang ditandatangani dalam detik. Default: 1800, maksimum: 604800.cookieExpiry: 1800
urlExpiryNumberMasa berlaku URL unduhan CloudFront yang ditandatangani dalam detik. Default: 3600.urlExpiry: 3600
storageRegionStringLabel wilayah opsional yang digunakan dalam kunci objek yang dihasilkan saat jalur wilayah diaktifkan.storageRegion: "us-east-2"
includeRegionInPathBooleanMenyertakan wilayah penyimpanan dalam kunci objek yang baru dibuat. Default: false.includeRegionInPath: false
requireSignedAccessBooleanMenolak startup saat akses CloudFront signed-cookie tidak dapat diinisialisasi. Default: false.requireSignedAccess: true

lihat: Struktur Objek CloudFront dan CloudFront dengan S3

filteredTools

KeyTypeDescriptionExample
filteredToolsArray of StringsMemfilter alat tertentu dari endpoint Plugins dan OpenAI Assistants.filteredTools: ["scholarai", "calculator"]
  • Catatan:
    • Jika includedTools dan filteredTools keduanya ditentukan, hanya includedTools yang akan dikenali.
    • Mempengaruhi endpoint gptPlugins maupun assistants
    • Anda dapat menemukan nama-nama alat untuk difilter di api/app/clients/tools/manifest.json
      • Gunakan nilai pluginKey
    • Selain itu, apa pun yang tercantum di bawah direktori ".well-known" api/app/clients/tools/.well-known
      • Gunakan nilai name_for_model

includedTools

KeyTypeDescriptionExample
includedToolsArray of StringsMencakup alat khusus dari endpoint Plugins maupun OpenAI Assistants.includedTools: ["calculator"]
  • Catatan:
    • Jika includedTools dan filteredTools keduanya ditentukan, hanya includedTools yang akan dikenali.
    • Mempengaruhi endpoint gptPlugins maupun assistants
    • Anda dapat menemukan nama-nama alat untuk difilter di api/app/clients/tools/manifest.json
      • Gunakan nilai pluginKey
    • Selain itu, apa pun yang tercantum di bawah direktori ".well-known" api/app/clients/tools/.well-known
      • Gunakan nilai name_for_model
KeyTypeDescriptionExample
secureImageLinksBooleanApakah akses ke tautan gambar yang dihosting secara lokal oleh aplikasi perlu diamankan atau tidak. Default: false.secureImageLinks: true

imageOutputType

  • Catatan: Sensitif terhadap huruf besar-kecil (case-sensitive). Endpoint Google hanya mendukung tipe output "jpeg" dan "png".
  • Opsi: "png" | "webp" | "jpeg"
KeyTypeDescriptionExample
imageOutputTypeStringTipe output gambar untuk respons gambar. Default ke "png" jika dihilangkan.imageOutputType: "webp"

ocr

Kunci:

KeyTypeDescriptionExample
ocrObjectMengonfigurasi pengaturan Optical Character Recognition (OCR) untuk mengekstrak teks dari gambar.

Subkey:

KeyTypeDescriptionExample
apiKeyStringKunci API untuk layanan OCR.
baseURLStringURL dasar untuk API layanan OCR.
strategyStringStrategi OCR yang digunakan. Opsinya adalah "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser", atau "custom_ocr".
mistralModelStringModel Mistral yang digunakan untuk pemrosesan OCR.

lihat: Struktur Objek Konfigurasi OCR

webSearch

Kunci:

KeyTypeDescriptionExample
webSearchObjectMengonfigurasi fungsionalitas pencarian web, termasuk penyedia pencarian, pengikis konten, dan peranking hasil.

Subkey:

KeyTypeDescriptionExample
serperApiKeyStringNama variabel lingkungan untuk kunci API Serper. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
searxngInstanceUrlStringNama variabel lingkungan untuk URL instans SearXNG. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
searxngApiKeyStringNama variabel lingkungan untuk kunci API SearXNG. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
tavilyApiKeyStringNama variabel lingkungan untuk kunci API Tavily. Digunakan untuk pencarian dan scraper. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
tavilySearchUrlStringNama variabel lingkungan untuk URL API Tavily Search kustom. Opsional; secara default menggunakan pencarian yang di-host oleh Tavily jika tidak diatur.
tavilyExtractUrlStringNama variabel lingkungan untuk URL API Tavily Extract kustom. Opsional; secara default menggunakan extract yang dihosting oleh Tavily jika tidak diatur.
firecrawlApiKeyStringNama variabel lingkungan untuk kunci API Firecrawl. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
firecrawlApiUrlStringNama variabel lingkungan untuk URL API Firecrawl. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
jinaApiKeyStringNama variabel lingkungan untuk kunci API Jina. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
cohereApiKeyStringNama variabel lingkungan untuk kunci API Cohere. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.
searchProviderStringMenentukan penyedia pencarian mana yang akan digunakan. Opsi: "serper", "searxng", "tavily".
scraperProviderStringMenentukan layanan scraper mana yang akan digunakan. Opsi: "firecrawl", "serper", "tavily".
firecrawlVersionStringMenentukan versi API Firecrawl (v0 atau v1).
rerankerTypeStringMenentukan layanan reranker mana yang akan digunakan. Atur ke "none" untuk melewati reranking. Opsi: "jina", "cohere", "none".
scraperTimeoutIntegerBatas waktu dalam milidetik untuk permintaan scraper. Harus berupa bilangan bulat non-negatif.
safeSearchNumberTingkat penyaringan pencarian aman. 0 = OFF, 1 = MODERATE (default), 2 = STRICT.

lihat: Struktur Objek Pencarian Web

fileConfig

Kunci:

KeyTypeDescriptionExample
fileConfigObjectMengonfigurasi pengaturan penanganan file untuk aplikasi, termasuk batas ukuran dan pembatasan tipe MIME.

Subkey:

KeyTypeDescriptionExample
endpointsRecord/ObjectMenentukan konfigurasi penanganan file untuk endpoint individual, yang memungkinkan penyesuaian berdasarkan basis per endpoint.
serverFileSizeLimitNumberUkuran file maksimum (dalam MB) yang akan diterima oleh server. Berlaku secara global di semua endpoint kecuali jika diganti oleh pengaturan khusus endpoint.
avatarSizeLimitNumberUkuran maksimum (dalam MB) untuk gambar avatar pengguna.
clientImageResizeObjectMengonfigurasi pengubahan ukuran gambar di sisi klien untuk mengoptimalkan unggahan file dan mencegah kesalahan unggahan akibat ukuran gambar yang besar.
ocrObjectPengaturan untuk pemrosesan file Optical Character Recognition (OCR).
textObjectPengaturan untuk penguraian file teks langsung.
sttObjectPengaturan untuk pemrosesan file audio Speech-to-Text (STT).
fileTokenLimitNumberJumlah maksimum token dari file teks yang disertakan dalam prompt sebelum pemotongan.fileTokenLimit: 100000

clientImageResize

Kunci:

KeyTypeDescriptionExample
clientImageResizeObjectMengonfigurasi pengubahan ukuran gambar di sisi klien untuk mengoptimalkan unggahan file dan mencegah kesalahan unggahan akibat ukuran gambar yang besar.

Subkey:

KeyTypeDescriptionExample
enabledBooleanMengaktifkan atau menonaktifkan fungsionalitas pengubahan ukuran gambar di sisi klien. Default: false.enabled: true
maxWidthNumberLebar maksimum dalam piksel untuk gambar yang diubah ukurannya. Gambar yang lebih lebar dari ini akan diubah ukurannya. Default: 1920.maxWidth: 1024
maxHeightNumberTinggi maksimum dalam piksel untuk gambar yang diubah ukurannya. Gambar yang lebih tinggi dari ini akan diubah ukurannya. Default: 1080.maxHeight: 768
qualityNumberKualitas kompresi JPEG (0.1 hingga 1.0). Nilai yang lebih tinggi berarti kualitas lebih baik namun ukuran file lebih besar. Default: 0.8.quality: 0.9
compressFormatStringFormat output untuk gambar yang dikompresi. Opsi: "jpeg", "webp". Default: "jpeg".compressFormat: "webp"

Deskripsi:

Konfigurasi clientImageResize memungkinkan pengubahan ukuran gambar secara otomatis di sisi klien sebelum diunggah. Fitur ini membantu:

  • Cegah kegagalan unggahan akibat file gambar berukuran besar yang melebihi batas server
  • Kurangi penggunaan bandwidth dengan mengompresi gambar sebelum transmisi
  • Tingkatkan performa unggahan dengan ukuran file yang lebih kecil
  • Pertahankan kualitas gambar sambil mengoptimalkan ukuran file

Saat diaktifkan, gambar yang melebihi dimensi maxWidth atau maxHeight yang ditentukan akan diubah ukurannya secara otomatis di sisi klien sebelum diunggah ke server. Pengubahan ukuran ini mempertahankan rasio aspek asli sekaligus memastikan gambar pas dalam batas yang ditentukan.

Contoh:

fileConfig:
  clientImageResize:
    enabled: true
    maxWidth: 1920
    maxHeight: 1080
    quality: 0.8
    compressFormat: 'jpeg'

Catatan:

  • Hanya berlaku untuk file gambar (JPEG, PNG, WebP, dll.)
  • Pengubahan ukuran terjadi secara otomatis ketika gambar melebihi dimensi yang ditentukan
  • Aspek rasio asli dipertahankan selama pengubahan ukuran
  • Fitur ini berfungsi dengan semua endpoint unggah gambar yang didukung
  • Pengaturan kualitas hanya berlaku untuk format JPEG dan WebP
  • Mengatur kualitas terlalu rendah (< 0.5) dapat menyebabkan penurunan kualitas gambar yang terlihat jelas.

lihat: Struktur Objek Konfigurasi File

rateLimits

Kunci:

KeyTypeDescriptionExample
rateLimitsObjectMenentukan kebijakan pembatasan laju (rate limiting) untuk mencegah penyalahgunaan dengan membatasi jumlah permintaan.

Subkey:

KeyTypeDescriptionExample
fileUploadsObjectMengonfigurasi batas laju secara khusus untuk operasi unggah file.
conversationsImportObjectMengonfigurasi batas laju secara khusus untuk operasi impor percakapan.
sttObjectMengonfigurasi batas laju secara khusus untuk permintaan speech-to-text (stt)
ttsObjectMengonfigurasi batas laju secara khusus untuk permintaan text-to-speech (tts)

Subkey fileUploads:

KeyTypeDescriptionExample
ipMaxNumberJumlah maksimum unggahan yang diizinkan per alamat IP per jendela waktu.
ipWindowInMinutesNumberJendela waktu dalam menit untuk batas unggahan berbasis IP.
userMaxNumberJumlah maksimum unggahan yang diizinkan per pengguna per jendela.
userWindowInMinutesNumberJendela waktu dalam menit untuk batas unggahan berbasis pengguna.

Subkey conversationsImport:

KeyTypeDescriptionExample
ipMaxNumberJumlah maksimum impor yang diizinkan per alamat IP per jendela.
ipWindowInMinutesNumberJendela waktu dalam menit untuk batas impor berbasis IP.
userMaxNumberJumlah maksimum impor per pengguna per jendela.
userWindowInMinutesNumberJendela waktu dalam menit untuk batas impor berbasis pengguna.

Subkey tts:

KeyTypeDescriptionExample
ipMaxNumberJumlah maksimum permintaan yang diizinkan per alamat IP per jendela waktu.
ipWindowInMinutesNumberJendela waktu dalam menit untuk batas permintaan berbasis IP.
userMaxNumberJumlah maksimum permintaan per pengguna per jendela.
userWindowInMinutesNumberJendela waktu dalam menit untuk batas permintaan berbasis pengguna.

Subkey stt:

KeyTypeDescriptionExample
ipMaxNumberJumlah maksimum permintaan yang diizinkan per alamat IP per jendela waktu.
ipWindowInMinutesNumberJendela waktu dalam menit untuk batas permintaan berbasis IP.
userMaxNumberJumlah maksimum permintaan per pengguna per jendela.
userWindowInMinutesNumberJendela waktu dalam menit untuk batas permintaan berbasis pengguna.
  • Contoh:
rateLimits:
  fileUploads:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  conversationsImport:
    ipMax: 100
    ipWindowInMinutes: 60
    userMax: 50
    userWindowInMinutes: 60
  stt:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1
  tts:
    ipMax: 100
    ipWindowInMinutes: 1
    userMax: 50
    userWindowInMinutes: 1

registration

Kunci:

KeyTypeDescriptionExample
registrationObjectMengonfigurasi pengaturan terkait pendaftaran untuk aplikasi.

Subkey:

KeyTypeDescriptionExample
socialLoginsKonfigurasi login sosial.
allowedDomainsMenentukan domain yang diizinkan untuk pendaftaran.

lihat juga:

memory

Kunci:

KeyTypeDescriptionExample
memoryObjectMengonfigurasi memori percakapan dan fitur personalisasi untuk aplikasi.

Subkey:

KeyTypeDescriptionExample
disabledBooleanMenonaktifkan fungsionalitas memori saat disetel ke true.
validKeysArray of StringsMenentukan kunci mana yang valid untuk penyimpanan memori.
tokenLimitNumberMengatur jumlah maksimum token untuk penyimpanan dan pemrosesan memori.
charLimitNumberMenetapkan jumlah maksimum karakter untuk penyimpanan memori. Default: 10000.
maxInputTokensNumberMembatasi token chat terbaru yang dikirim ke agen memori otomatis sebelum ekstraksi. Default: 12000.
personalizeBooleanMengaktifkan atau menonaktifkan fitur personalisasi.
messageWindowSizeNumberMenentukan jumlah pesan terbaru yang disertakan dalam konteks memori.
agentObject | UnionMengonfigurasi agen yang bertanggung jawab untuk pemrosesan memori.

lihat: Struktur Objek Memory

summarization

Kunci:

KeyTypeDescriptionExample
summarizationObjectMengonfigurasi peringkasan percakapan dan pemangkasan konteks. Menggantikan kolom `summarize` dan `summaryModel` per-endpoint.

Subkey:

KeyTypeDescriptionExample
providerStringPenyedia LLM untuk panggilan peringkasan. Default-nya adalah penyedia milik agen itu sendiri.
modelStringModel untuk panggilan peringkasan. Defaultnya adalah model milik agen itu sendiri.
parametersObjectParameter LLM tambahan untuk permintaan peringkasan.
promptStringPrompt kustom untuk ringkasan awal.
updatePromptStringPrompt kustom untuk pemadatan ulang saat ringkasan sebelumnya sudah ada.
triggerObjectMenentukan kapan peringkasan dipicu (berdasarkan rasio token, sisa token, atau jumlah pesan).
maxSummaryTokensNumberToken output maksimum untuk respons model peringkasan.
reserveRatioNumberFraksi anggaran token yang dicadangkan sebagai ruang kepala (0–1). Default: 0.05.
contextPruningObjectMengonfigurasi degradasi hasil alat berbasis posisi untuk pesan yang lebih lama.

lihat: Struktur Objek Summarization

actions

Kunci:

KeyTypeDescriptionExample
actionsObjectMengonfigurasi pengaturan terkait tindakan, yang digunakan oleh Agents dan Assistants

Subkey:

KeyTypeDescriptionExample
allowedDomainsArray of StringsDaftar putih domain yang ketat untuk tindakan. Jika diatur, hanya domain yang terdaftar yang dapat diakses.
allowedAddressesArray of StringsDaftar pengecualian SSRF (hanya ruang IP privat). Mengizinkan layanan host:port privat tertentu tanpa membatasi tujuan publik saat `allowedDomains` tidak dikonfigurasi.

lihat juga:

interface

Kunci:

KeyTypeDescriptionExample
interfaceObjectMengonfigurasi elemen antarmuka pengguna di dalam aplikasi, memungkinkan penyesuaian visibilitas dan perilaku berbagai komponen.

Subkey:

KeyTypeDescriptionExample
privacyPolicyObjectBerisi pengaturan yang terkait dengan tautan kebijakan privasi yang disediakan.
termsOfServiceObjectBerisi pengaturan terkait tautan ketentuan layanan yang disediakan.
modelSelectBooleanMenentukan apakah fitur pemilihan model tersedia.
parametersBooleanMengaktifkan atau menonaktifkan visibilitas opsi konfigurasi parameter atau pengaturan percakapan.
presetsBooleanMengaktifkan atau menonaktifkan menu preset
promptsBoolean or ObjectMengaktifkan atau menonaktifkan semua fitur terkait prompt untuk semua pengguna
bookmarksBooleanMengaktifkan atau menonaktifkan semua fitur terkait bookmark untuk semua pengguna
memoriesBooleanMengaktifkan atau menonaktifkan fitur memories untuk semua pengguna
multiConvoBooleanMengaktifkan atau menonaktifkan semua fitur yang terkait dengan "multi convo", atau streaming respons ganda, untuk semua pengguna
agentsBoolean or ObjectMengaktifkan atau menonaktifkan semua fitur agen untuk semua pengguna
temporaryChatBooleanMengaktifkan atau menonaktifkan fitur obrolan sementara
temporaryChatRetentionNumberMengonfigurasi periode retensi untuk obrolan sementara dalam hitungan jam. Min: 1, Maks: 8760. Default: 720 (30 hari).
autoSubmitFromUrlBooleanMengontrol apakah `/c/new?prompt=…&submit=true` secara otomatis mengirimkan ke model. Jika `false`, prompt akan diisi sebelumnya tetapi tidak dikirimkan.
mcpServersObjectBerisi pengaturan terkait pemilihan server MCP dan kontrol akses.
customWelcomeStringPesan selamat datang kustom yang ditampilkan di antarmuka obrolan.
runCodeBooleanMengaktifkan atau menonaktifkan tombol "Run Code" untuk Blok Kode Markdown
webSearchBooleanMengaktifkan atau menonaktifkan tombol pencarian web di antarmuka obrolan
fileSearchBooleanMengaktifkan atau menonaktifkan tombol pencarian file di antarmuka chat
fileCitationsBooleanMengaktifkan atau menonaktifkan kutipan file secara global untuk semua pengguna
peoplePickerObjectMengonfigurasi jenis prinsipal mana yang tersedia sebagai kontrol dalam antarmuka pemilih orang
marketplaceObjectMengaktifkan atau menonaktifkan akses ke Agent Marketplace

lihat: Struktur Objek Antarmuka

modelSpecs

Kunci:

KeyTypeDescriptionExample
modelSpecsObjectMengonfigurasi Model Specs, yang memungkinkan pengaturan mendetail dan kustomisasi model AI serta perilakunya di dalam aplikasi.

Subkey:

KeyTypeDescriptionExample
enforceBooleanMenentukan apakah Model Specs harus secara ketat menggantikan pengaturan konfigurasi lainnya.
prioritizeBooleanMenentukan apakah Model Specs harus diprioritaskan daripada konfigurasi default ketika keduanya dapat diterapkan.
listArray of ObjectsBerisi daftar spesifikasi model individual yang merinci berbagai konfigurasi dan perilaku.

lihat: Struktur Objek Model Specs

endpoints

Kunci:

KeyTypeDescriptionExample
endpointsObjectMendefinisikan endpoint API kustom untuk aplikasi.

Subkey:

KeyTypeDescriptionExample
customArray of ObjectsSetiap objek dalam array merepresentasikan konfigurasi endpoint yang unik.
azureOpenAIObjectKonfigurasi spesifik endpoint Azure OpenAI
assistantsObjectKonfigurasi spesifik endpoint Assistants.
azureAssistantsObjectKonfigurasi spesifik endpoint Azure Assistants.
agentsObjectKonfigurasi spesifik endpoint Agents.
allObjectPengaturan endpoint global yang berlaku untuk semua endpoint. Lihat Shared Endpoint Settings.
allowedAddressesArray of StringsDaftar pengecualian SSRF (hanya ruang IP privat). Mengizinkan baseURL yang disediakan pengguna untuk mengarah ke layanan host:port privat tertentu (misalnya Ollama yang di-host sendiri) tanpa menonaktifkan perlindungan SSRF untuk hal lainnya.

Catatan: Endpoint mendukung Shared Endpoint Settings seperti streamRate, headers, titleModel, titleMethod, titlePrompt, titlePromptTemplate, titleEndpoint, dan maxToolResultChars. Pengaturan ini dapat dikonfigurasi secara individual per endpoint atau secara global menggunakan kunci all. headers akan digabungkan dengan nilai tingkat endpoint yang lebih diutamakan jika terjadi tabrakan kunci. Kunci all tidak menerima baseURL.

Catatan: endpoints.allowedAddresses berlaku untuk nilai baseURL yang disediakan pengguna (saat admin mengonfigurasi endpoint kustom dengan apiKey: 'user_provided' dan baseURL: 'user_provided'). Setiap baseURL yang disediakan pengguna divalidasi terhadap blok SSRF pada saat permintaan; entri yang tercantum di sini dikecualikan. Lihat mcpSettings.allowedAddresses untuk semantik bidang — aturan yang sama berlaku (hanya ruang IP privat, port diperlukan, tanpa URL/path/CIDR/host telanjang/literal IP publik).

mcpSettings

Kunci:

KeyTypeDescriptionExample
mcpSettingsObjectMendefinisikan pengaturan global untuk server Model Context Protocol (MCP)

Subkey:

KeyTypeDescriptionExample
allowedDomainsArray of StringsDaftar putih domain yang ketat untuk koneksi server MCP. Jika diatur, hanya entri yang terdaftar yang dapat diakses.
allowedAddressesArray of StringsDaftar pengecualian SSRF (hanya ruang IP privat). Mengizinkan layanan host:port privat tertentu tanpa mengubah `allowedDomains` ke mode daftar putih ketat.
  • Catatan:
    • Ini adalah fitur keamanan untuk melindungi dari penyalahgunaan / penggunaan yang tidak semestinya terhadap alamat internal melalui server MCP
    • Secara default, LibreChat membatasi server MCP agar tidak terhubung ke alamat jaringan internal, lokal, atau pribadi.
    • Server MCP yang menggunakan alamat IP lokal atau domain dapat ditambahkan ke daftar putih allowedDomains yang ketat (yang kemudian menjadi satu-satunya set yang dapat dijangkau), atau — agar tujuan publik tetap dapat dijangkau — dikecualikan sebagai layanan host:port yang tepat melalui allowedAddresses
    • Seperti halnya semua perubahan konfigurasi yaml, LibreChat perlu dimulai ulang agar perubahan tersebut diterapkan.
    • Mendukung domain, wildcard subdomain (*.example.com), domain Docker, dan alamat IP

Contoh:

mcpSettings:
  # Strict whitelist mode:
  # allowedDomains:
  #   - "example.com"           # Specific domain
  #   - "*.example.com"         # All subdomains
  #   - "http://mcp-server:3000" # Internal service, explicitly whitelisted

  # Default SSRF mode with private service exemptions:
  allowedAddresses:
    - 'host.docker.internal:8080' # Permit one private host on one port
    - '10.0.0.5:8000' # Permit one private IP on one port

lihat: Struktur Objek Pengaturan MCP

mcpServers

Kunci:

KeyTypeDescriptionExample
mcpServersObjectMendefinisikan konfigurasi untuk server Model Context Protocol (MCP), yang memungkinkan integrasi dinamis server MCP di dalam aplikasi.

Subkey:

KeyTypeDescriptionExample
<serverName>ObjectSetiap kunci di bawah `mcpServers` merepresentasikan konfigurasi server MCP individual, yang diidentifikasi dengan nama unik.
  • Catatan:
    • Inisialisasi terjadi saat startup, dan aplikasi harus dimulai ulang agar perubahan dapat diterapkan.
    • <serverName> adalah pengidentifikasi unik untuk setiap konfigurasi server MCP.
    • Setiap server MCP dapat dikonfigurasi menggunakan salah satu dari empat tipe koneksi:
      • stdio
      • websocket
      • sse
      • streamable-http
    • Kolom type menentukan tipe koneksi ke server MCP.
    • Jika type dihilangkan, nilainya akan ditentukan secara default berdasarkan keberadaan dan format url atau command:
      • Jika url ditentukan dan diawali dengan http atau https, type akan menggunakan sse secara default.
      • Jika url ditentukan dan diawali dengan ws atau wss, maka type secara default akan menjadi websocket.
      • Jika command ditentukan, type secara default akan menjadi stdio.
    • Opsi konfigurasi tambahan meliputi:
      • timeout: Batas waktu dalam milidetik untuk permintaan server MCP. Menentukan berapa lama waktu tunggu untuk respons permintaan alat.
      • initTimeout: Timeout dalam milidetik untuk inisialisasi server MCP. Menentukan berapa lama waktu tunggu untuk inisialisasi server.
      • serverInstructions: Mengontrol apakah instruksi server disertakan dalam konteks agen. Dapat berupa true (menggunakan yang disediakan server), false (dinonaktifkan), atau string kustom (menggantikan yang disediakan server).
      • customUserVars: (Opsional) Mendefinisikan variabel kustom (misalnya, kunci API, URL) yang dapat diatur oleh masing-masing pengguna untuk server MCP. Nilai per-pengguna ini, yang disediakan melalui UI, kemudian dapat direferensikan dalam konfigurasi headers atau env server menggunakan sintaks {{VARIABLE_NAME}}. Hal ini memungkinkan autentikasi atau kustomisasi per-pengguna untuk alat MCP.
    • lihat: Struktur Objek MCP Servers

Contoh:

mcpServers:
  everything:
    # type: sse # type can optionally be omitted
    url: http://localhost:3001/sse
    timeout: 30000
    initTimeout: 10000
    serverInstructions: true # Use server-provided instructions
  puppeteer:
    type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-puppeteer'
    timeout: 30000
    initTimeout: 10000
    serverInstructions: 'Do not access any local files or local/internal IP addresses'
  filesystem:
    # type: stdio
    command: npx
    args:
      - -y
      - '@modelcontextprotocol/server-filesystem'
      - /home/user/LibreChat/
    iconPath: /home/user/LibreChat/client/public/assets/logo.svg
  mcp-obsidian:
    command: npx
    args:
      - -y
      - 'mcp-obsidian'
      - /path/to/obsidian/vault
  streamable-http-example:
    type: streamable-http
    url: https://example.com/mcp
    headers:
      Authorization: 'Bearer ${API_TOKEN}'
    timeout: 30000
  per-user-crendentials-example:
    type: sse
    url: 'https//some.mcp/sse'
    headers:
      X-Custom-Auth-Token: '{{USER_API_KEY}}' # Placeholder for the user-provided API key, defined in `customUserVars` below.
    customUserVars:
      USER_API_KEY:
        title: 'Service API Key'
        description: "Your personal API key for this service. You can get it <a href='https://example.com/api-keys' target='_blank'>here</a>."
    serverInstructions: true

lihat: Struktur Objek MCP Servers

speech

Kunci:

KeyTypeDescriptionExample
speechObjectMengonfigurasi penyedia Text-to-Speech (TTS) dan Speech-to-Text (STT) untuk aplikasi.

Subkey:

KeyTypeDescriptionExample
ttsObjectKonfigurasi penyedia Text-to-Speech (OpenAI, Azure OpenAI, ElevenLabs, LocalAI).
sttObjectKonfigurasi penyedia Speech-to-Text (OpenAI, Azure OpenAI).
speechTabObjectPengaturan UI default untuk fitur ucapan.

lihat: Struktur Objek Speech

turnstile

Kunci:

KeyTypeDescriptionExample
turnstileObjectMengonfigurasi Cloudflare Turnstile untuk perlindungan bot pada formulir pendaftaran dan login.

Subkey:

KeyTypeDescriptionExample
siteKeyStringKunci situs Cloudflare Turnstile Anda (wajib).
optionsObjectOpsi widget Turnstile tambahan (opsional).

lihat: Struktur Objek Turnstile

transactions

Kunci:

KeyTypeDescriptionExample
transactionsObjectMengontrol fitur pencatatan transaksi dan visibilitas.

Subkey:

KeyTypeDescriptionExample
enabledBooleanMengaktifkan atau menonaktifkan pencatatan transaksi. Default: true.

lihat: Struktur Objek Transaksi

Bagaimana panduan ini?