Struktur Konfigurasi
Catatan: Bidang yang tidak disebutkan secara khusus sebagai wajib bersifat opsional.
version
- wajib
| Key | Type | Description | Example |
|---|---|---|---|
| version | String | Menentukan versi file konfigurasi. | version: 1.3.13 |
cache
| Key | Type | Description | Example |
|---|---|---|---|
| cache | Boolean | Mengaktifkan atau menonaktifkan caching. Atur ke `true` untuk mengaktifkan caching (default). | cache: true |
skillSync
| Key | Type | Description | Example |
|---|---|---|---|
| skillSync | Object | Mengonfigurasi pencerminan Skill eksternal. Pada v1.3.13, GitHub Skill Sync didukung. |
lihat: Struktur Objek Skill Sync
messageFilter
| Key | Type | Description | Example |
|---|---|---|---|
| messageFilter | Object | Mengonfigurasi 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"
| Key | Type | Description | Example |
|---|---|---|---|
| fileStrategy | String | Menentukan 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 konfigurasikanfileStrategiesuntuk mengarahkanavatardanimageke 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"
| Key | Type | Description | Example |
|---|---|---|---|
| fileStrategies | Object | Mengonfigurasi strategi penyimpanan yang berbeda untuk jenis file yang berbeda. Lebih fleksibel daripada opsi fileStrategy tunggal. |
Sub-kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| default | String | Strategi penyimpanan cadangan saat tipe spesifik tidak ditentukan. Default ke "local". | |
| avatar | String | Strategi penyimpanan untuk gambar avatar pengguna dan agen. Disarankan untuk menggunakan strategi berbasis CDN (`"cloudfront"` atau `"firebase"`) untuk performa terbaik. | |
| image | String | Strategi penyimpanan untuk gambar yang diunggah dalam obrolan. Disarankan untuk menggunakan strategi berbasis CDN (`"cloudfront"` atau `"firebase"`) untuk performa terbaik. | |
| document | String | Strategi penyimpanan untuk unggahan dokumen (PDF, file teks, dll.). | |
| skills | String | Strategi penyimpanan untuk file yang dibundel dengan Skills. |
- Catatan:
- Pengaturan ini lebih diutamakan daripada opsi
fileStrategytunggal - Jika tipe file tertentu tidak dikonfigurasi, sistem akan kembali ke
default, kemudian kefileStrategy, 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"untukavatardanimageguna 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.
- Pengaturan ini lebih diutamakan daripada opsi
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 localcloudfront
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| cloudfront | Object | Mengonfigurasi pengiriman CloudFront untuk file yang disimpan di S3. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| domain | String | Domain distribusi CloudFront atau CNAME. Diperlukan jika strategi file apa pun menggunakan `"cloudfront"`. | domain: "https://cdn.example.com" |
| distributionId | String | ID distribusi CloudFront. Diperlukan saat `invalidateOnDelete` bernilai true. | distributionId: "E1234ABCD" |
| invalidateOnDelete | Boolean | Membuat invalidasi CloudFront untuk file yang dihapus. Default: false. | invalidateOnDelete: false |
| imageSigning | String | Mengontrol akses gambar/avatar inline. Opsi: `"none"` atau `"cookies"`. `"url"` dicadangkan dan belum diimplementasikan untuk gambar. | imageSigning: "cookies" |
| cookieDomain | String | Domain cookie induk bersama diperlukan untuk cookie yang ditandatangani. Harus diawali dengan titik. | cookieDomain: ".example.com" |
| cookieExpiry | Number | Masa berlaku cookie yang ditandatangani dalam detik. Default: 1800, maksimum: 604800. | cookieExpiry: 1800 |
| urlExpiry | Number | Masa berlaku URL unduhan CloudFront yang ditandatangani dalam detik. Default: 3600. | urlExpiry: 3600 |
| storageRegion | String | Label wilayah opsional yang digunakan dalam kunci objek yang dihasilkan saat jalur wilayah diaktifkan. | storageRegion: "us-east-2" |
| includeRegionInPath | Boolean | Menyertakan wilayah penyimpanan dalam kunci objek yang baru dibuat. Default: false. | includeRegionInPath: false |
| requireSignedAccess | Boolean | Menolak startup saat akses CloudFront signed-cookie tidak dapat diinisialisasi. Default: false. | requireSignedAccess: true |
lihat: Struktur Objek CloudFront dan CloudFront dengan S3
filteredTools
| Key | Type | Description | Example |
|---|---|---|---|
| filteredTools | Array of Strings | Memfilter alat tertentu dari endpoint Plugins dan OpenAI Assistants. | filteredTools: ["scholarai", "calculator"] |
- Catatan:
- Jika
includedToolsdanfilteredToolskeduanya ditentukan, hanyaincludedToolsyang akan dikenali. - Mempengaruhi endpoint
gptPluginsmaupunassistants - Anda dapat menemukan nama-nama alat untuk difilter di
api/app/clients/tools/manifest.json- Gunakan nilai
pluginKey
- Gunakan nilai
- Selain itu, apa pun yang tercantum di bawah direktori ".well-known"
api/app/clients/tools/.well-known- Gunakan nilai
name_for_model
- Gunakan nilai
- Jika
includedTools
| Key | Type | Description | Example |
|---|---|---|---|
| includedTools | Array of Strings | Mencakup alat khusus dari endpoint Plugins maupun OpenAI Assistants. | includedTools: ["calculator"] |
- Catatan:
- Jika
includedToolsdanfilteredToolskeduanya ditentukan, hanyaincludedToolsyang akan dikenali. - Mempengaruhi endpoint
gptPluginsmaupunassistants - Anda dapat menemukan nama-nama alat untuk difilter di
api/app/clients/tools/manifest.json- Gunakan nilai
pluginKey
- Gunakan nilai
- Selain itu, apa pun yang tercantum di bawah direktori ".well-known"
api/app/clients/tools/.well-known- Gunakan nilai
name_for_model
- Gunakan nilai
- Jika
secureImageLinks
| Key | Type | Description | Example |
|---|---|---|---|
| secureImageLinks | Boolean | Apakah 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"
| Key | Type | Description | Example |
|---|---|---|---|
| imageOutputType | String | Tipe output gambar untuk respons gambar. Default ke "png" jika dihilangkan. | imageOutputType: "webp" |
ocr
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| ocr | Object | Mengonfigurasi pengaturan Optical Character Recognition (OCR) untuk mengekstrak teks dari gambar. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| apiKey | String | Kunci API untuk layanan OCR. | |
| baseURL | String | URL dasar untuk API layanan OCR. | |
| strategy | String | Strategi OCR yang digunakan. Opsinya adalah "mistral_ocr", "azure_mistral_ocr", "vertexai_mistral_ocr", "document_parser", atau "custom_ocr". | |
| mistralModel | String | Model Mistral yang digunakan untuk pemrosesan OCR. |
lihat: Struktur Objek Konfigurasi OCR
webSearch
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| webSearch | Object | Mengonfigurasi fungsionalitas pencarian web, termasuk penyedia pencarian, pengikis konten, dan peranking hasil. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Nama variabel lingkungan untuk kunci API Serper. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| searxngInstanceUrl | String | Nama variabel lingkungan untuk URL instans SearXNG. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| searxngApiKey | String | Nama variabel lingkungan untuk kunci API SearXNG. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| tavilyApiKey | String | Nama variabel lingkungan untuk kunci API Tavily. Digunakan untuk pencarian dan scraper. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| tavilySearchUrl | String | Nama variabel lingkungan untuk URL API Tavily Search kustom. Opsional; secara default menggunakan pencarian yang di-host oleh Tavily jika tidak diatur. | |
| tavilyExtractUrl | String | Nama variabel lingkungan untuk URL API Tavily Extract kustom. Opsional; secara default menggunakan extract yang dihosting oleh Tavily jika tidak diatur. | |
| firecrawlApiKey | String | Nama variabel lingkungan untuk kunci API Firecrawl. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| firecrawlApiUrl | String | Nama variabel lingkungan untuk URL API Firecrawl. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| jinaApiKey | String | Nama variabel lingkungan untuk kunci API Jina. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| cohereApiKey | String | Nama variabel lingkungan untuk kunci API Cohere. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI. | |
| searchProvider | String | Menentukan penyedia pencarian mana yang akan digunakan. Opsi: "serper", "searxng", "tavily". | |
| scraperProvider | String | Menentukan layanan scraper mana yang akan digunakan. Opsi: "firecrawl", "serper", "tavily". | |
| firecrawlVersion | String | Menentukan versi API Firecrawl (v0 atau v1). | |
| rerankerType | String | Menentukan layanan reranker mana yang akan digunakan. Atur ke "none" untuk melewati reranking. Opsi: "jina", "cohere", "none". | |
| scraperTimeout | Integer | Batas waktu dalam milidetik untuk permintaan scraper. Harus berupa bilangan bulat non-negatif. | |
| safeSearch | Number | Tingkat penyaringan pencarian aman. 0 = OFF, 1 = MODERATE (default), 2 = STRICT. |
lihat: Struktur Objek Pencarian Web
fileConfig
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| fileConfig | Object | Mengonfigurasi pengaturan penanganan file untuk aplikasi, termasuk batas ukuran dan pembatasan tipe MIME. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Record/Object | Menentukan konfigurasi penanganan file untuk endpoint individual, yang memungkinkan penyesuaian berdasarkan basis per endpoint. | |
| serverFileSizeLimit | Number | Ukuran file maksimum (dalam MB) yang akan diterima oleh server. Berlaku secara global di semua endpoint kecuali jika diganti oleh pengaturan khusus endpoint. | |
| avatarSizeLimit | Number | Ukuran maksimum (dalam MB) untuk gambar avatar pengguna. | |
| clientImageResize | Object | Mengonfigurasi pengubahan ukuran gambar di sisi klien untuk mengoptimalkan unggahan file dan mencegah kesalahan unggahan akibat ukuran gambar yang besar. | |
| ocr | Object | Pengaturan untuk pemrosesan file Optical Character Recognition (OCR). | |
| text | Object | Pengaturan untuk penguraian file teks langsung. | |
| stt | Object | Pengaturan untuk pemrosesan file audio Speech-to-Text (STT). | |
| fileTokenLimit | Number | Jumlah maksimum token dari file teks yang disertakan dalam prompt sebelum pemotongan. | fileTokenLimit: 100000 |
clientImageResize
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| clientImageResize | Object | Mengonfigurasi pengubahan ukuran gambar di sisi klien untuk mengoptimalkan unggahan file dan mencegah kesalahan unggahan akibat ukuran gambar yang besar. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Mengaktifkan atau menonaktifkan fungsionalitas pengubahan ukuran gambar di sisi klien. Default: false. | enabled: true |
| maxWidth | Number | Lebar maksimum dalam piksel untuk gambar yang diubah ukurannya. Gambar yang lebih lebar dari ini akan diubah ukurannya. Default: 1920. | maxWidth: 1024 |
| maxHeight | Number | Tinggi maksimum dalam piksel untuk gambar yang diubah ukurannya. Gambar yang lebih tinggi dari ini akan diubah ukurannya. Default: 1080. | maxHeight: 768 |
| quality | Number | Kualitas 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 |
| compressFormat | String | Format 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:
| Key | Type | Description | Example |
|---|---|---|---|
| rateLimits | Object | Menentukan kebijakan pembatasan laju (rate limiting) untuk mencegah penyalahgunaan dengan membatasi jumlah permintaan. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| fileUploads | Object | Mengonfigurasi batas laju secara khusus untuk operasi unggah file. | |
| conversationsImport | Object | Mengonfigurasi batas laju secara khusus untuk operasi impor percakapan. | |
| stt | Object | Mengonfigurasi batas laju secara khusus untuk permintaan speech-to-text (stt) | |
| tts | Object | Mengonfigurasi batas laju secara khusus untuk permintaan text-to-speech (tts) |
Subkey fileUploads:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Jumlah maksimum unggahan yang diizinkan per alamat IP per jendela waktu. | |
| ipWindowInMinutes | Number | Jendela waktu dalam menit untuk batas unggahan berbasis IP. | |
| userMax | Number | Jumlah maksimum unggahan yang diizinkan per pengguna per jendela. | |
| userWindowInMinutes | Number | Jendela waktu dalam menit untuk batas unggahan berbasis pengguna. |
Subkey conversationsImport:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Jumlah maksimum impor yang diizinkan per alamat IP per jendela. | |
| ipWindowInMinutes | Number | Jendela waktu dalam menit untuk batas impor berbasis IP. | |
| userMax | Number | Jumlah maksimum impor per pengguna per jendela. | |
| userWindowInMinutes | Number | Jendela waktu dalam menit untuk batas impor berbasis pengguna. |
Subkey tts:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Jumlah maksimum permintaan yang diizinkan per alamat IP per jendela waktu. | |
| ipWindowInMinutes | Number | Jendela waktu dalam menit untuk batas permintaan berbasis IP. | |
| userMax | Number | Jumlah maksimum permintaan per pengguna per jendela. | |
| userWindowInMinutes | Number | Jendela waktu dalam menit untuk batas permintaan berbasis pengguna. |
Subkey stt:
| Key | Type | Description | Example |
|---|---|---|---|
| ipMax | Number | Jumlah maksimum permintaan yang diizinkan per alamat IP per jendela waktu. | |
| ipWindowInMinutes | Number | Jendela waktu dalam menit untuk batas permintaan berbasis IP. | |
| userMax | Number | Jumlah maksimum permintaan per pengguna per jendela. | |
| userWindowInMinutes | Number | Jendela 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: 1registration
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| registration | Object | Mengonfigurasi pengaturan terkait pendaftaran untuk aplikasi. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| socialLogins | Konfigurasi login sosial. | ||
| allowedDomains | Menentukan domain yang diizinkan untuk pendaftaran. |
lihat juga:
memory
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| memory | Object | Mengonfigurasi memori percakapan dan fitur personalisasi untuk aplikasi. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| disabled | Boolean | Menonaktifkan fungsionalitas memori saat disetel ke true. | |
| validKeys | Array of Strings | Menentukan kunci mana yang valid untuk penyimpanan memori. | |
| tokenLimit | Number | Mengatur jumlah maksimum token untuk penyimpanan dan pemrosesan memori. | |
| charLimit | Number | Menetapkan jumlah maksimum karakter untuk penyimpanan memori. Default: 10000. | |
| maxInputTokens | Number | Membatasi token chat terbaru yang dikirim ke agen memori otomatis sebelum ekstraksi. Default: 12000. | |
| personalize | Boolean | Mengaktifkan atau menonaktifkan fitur personalisasi. | |
| messageWindowSize | Number | Menentukan jumlah pesan terbaru yang disertakan dalam konteks memori. | |
| agent | Object | Union | Mengonfigurasi agen yang bertanggung jawab untuk pemrosesan memori. |
lihat: Struktur Objek Memory
summarization
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| summarization | Object | Mengonfigurasi peringkasan percakapan dan pemangkasan konteks. Menggantikan kolom `summarize` dan `summaryModel` per-endpoint. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Penyedia LLM untuk panggilan peringkasan. Default-nya adalah penyedia milik agen itu sendiri. | |
| model | String | Model untuk panggilan peringkasan. Defaultnya adalah model milik agen itu sendiri. | |
| parameters | Object | Parameter LLM tambahan untuk permintaan peringkasan. | |
| prompt | String | Prompt kustom untuk ringkasan awal. | |
| updatePrompt | String | Prompt kustom untuk pemadatan ulang saat ringkasan sebelumnya sudah ada. | |
| trigger | Object | Menentukan kapan peringkasan dipicu (berdasarkan rasio token, sisa token, atau jumlah pesan). | |
| maxSummaryTokens | Number | Token output maksimum untuk respons model peringkasan. | |
| reserveRatio | Number | Fraksi anggaran token yang dicadangkan sebagai ruang kepala (0–1). Default: 0.05. | |
| contextPruning | Object | Mengonfigurasi degradasi hasil alat berbasis posisi untuk pesan yang lebih lama. |
lihat: Struktur Objek Summarization
actions
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| actions | Object | Mengonfigurasi pengaturan terkait tindakan, yang digunakan oleh Agents dan Assistants |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | Daftar putih domain yang ketat untuk tindakan. Jika diatur, hanya domain yang terdaftar yang dapat diakses. | |
| allowedAddresses | Array of Strings | Daftar pengecualian SSRF (hanya ruang IP privat). Mengizinkan layanan host:port privat tertentu tanpa membatasi tujuan publik saat `allowedDomains` tidak dikonfigurasi. |
lihat juga:
interface
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| interface | Object | Mengonfigurasi elemen antarmuka pengguna di dalam aplikasi, memungkinkan penyesuaian visibilitas dan perilaku berbagai komponen. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| privacyPolicy | Object | Berisi pengaturan yang terkait dengan tautan kebijakan privasi yang disediakan. | |
| termsOfService | Object | Berisi pengaturan terkait tautan ketentuan layanan yang disediakan. | |
| modelSelect | Boolean | Menentukan apakah fitur pemilihan model tersedia. | |
| parameters | Boolean | Mengaktifkan atau menonaktifkan visibilitas opsi konfigurasi parameter atau pengaturan percakapan. | |
| presets | Boolean | Mengaktifkan atau menonaktifkan menu preset | |
| prompts | Boolean or Object | Mengaktifkan atau menonaktifkan semua fitur terkait prompt untuk semua pengguna | |
| bookmarks | Boolean | Mengaktifkan atau menonaktifkan semua fitur terkait bookmark untuk semua pengguna | |
| memories | Boolean | Mengaktifkan atau menonaktifkan fitur memories untuk semua pengguna | |
| multiConvo | Boolean | Mengaktifkan atau menonaktifkan semua fitur yang terkait dengan "multi convo", atau streaming respons ganda, untuk semua pengguna | |
| agents | Boolean or Object | Mengaktifkan atau menonaktifkan semua fitur agen untuk semua pengguna | |
| temporaryChat | Boolean | Mengaktifkan atau menonaktifkan fitur obrolan sementara | |
| temporaryChatRetention | Number | Mengonfigurasi periode retensi untuk obrolan sementara dalam hitungan jam. Min: 1, Maks: 8760. Default: 720 (30 hari). | |
| autoSubmitFromUrl | Boolean | Mengontrol apakah `/c/new?prompt=…&submit=true` secara otomatis mengirimkan ke model. Jika `false`, prompt akan diisi sebelumnya tetapi tidak dikirimkan. | |
| mcpServers | Object | Berisi pengaturan terkait pemilihan server MCP dan kontrol akses. | |
| customWelcome | String | Pesan selamat datang kustom yang ditampilkan di antarmuka obrolan. | |
| runCode | Boolean | Mengaktifkan atau menonaktifkan tombol "Run Code" untuk Blok Kode Markdown | |
| webSearch | Boolean | Mengaktifkan atau menonaktifkan tombol pencarian web di antarmuka obrolan | |
| fileSearch | Boolean | Mengaktifkan atau menonaktifkan tombol pencarian file di antarmuka chat | |
| fileCitations | Boolean | Mengaktifkan atau menonaktifkan kutipan file secara global untuk semua pengguna | |
| peoplePicker | Object | Mengonfigurasi jenis prinsipal mana yang tersedia sebagai kontrol dalam antarmuka pemilih orang | |
| marketplace | Object | Mengaktifkan atau menonaktifkan akses ke Agent Marketplace |
lihat: Struktur Objek Antarmuka
modelSpecs
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| modelSpecs | Object | Mengonfigurasi Model Specs, yang memungkinkan pengaturan mendetail dan kustomisasi model AI serta perilakunya di dalam aplikasi. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| enforce | Boolean | Menentukan apakah Model Specs harus secara ketat menggantikan pengaturan konfigurasi lainnya. | |
| prioritize | Boolean | Menentukan apakah Model Specs harus diprioritaskan daripada konfigurasi default ketika keduanya dapat diterapkan. | |
| list | Array of Objects | Berisi daftar spesifikasi model individual yang merinci berbagai konfigurasi dan perilaku. |
lihat: Struktur Objek Model Specs
endpoints
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| endpoints | Object | Mendefinisikan endpoint API kustom untuk aplikasi. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| custom | Array of Objects | Setiap objek dalam array merepresentasikan konfigurasi endpoint yang unik. | |
| azureOpenAI | Object | Konfigurasi spesifik endpoint Azure OpenAI | |
| assistants | Object | Konfigurasi spesifik endpoint Assistants. | |
| azureAssistants | Object | Konfigurasi spesifik endpoint Azure Assistants. | |
| agents | Object | Konfigurasi spesifik endpoint Agents. | |
| all | Object | Pengaturan endpoint global yang berlaku untuk semua endpoint. Lihat Shared Endpoint Settings. | |
| allowedAddresses | Array of Strings | Daftar 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, danmaxToolResultChars. Pengaturan ini dapat dikonfigurasi secara individual per endpoint atau secara global menggunakan kunciall.headersakan digabungkan dengan nilai tingkat endpoint yang lebih diutamakan jika terjadi tabrakan kunci. Kuncialltidak menerimabaseURL.
Catatan:
endpoints.allowedAddressesberlaku untuk nilaibaseURLyang disediakan pengguna (saat admin mengonfigurasi endpoint kustom denganapiKey: 'user_provided'danbaseURL: 'user_provided'). Setiap baseURL yang disediakan pengguna divalidasi terhadap blok SSRF pada saat permintaan; entri yang tercantum di sini dikecualikan. LihatmcpSettings.allowedAddressesuntuk semantik bidang — aturan yang sama berlaku (hanya ruang IP privat, port diperlukan, tanpa URL/path/CIDR/host telanjang/literal IP publik).
mcpSettings
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| mcpSettings | Object | Mendefinisikan pengaturan global untuk server Model Context Protocol (MCP) |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| allowedDomains | Array of Strings | Daftar putih domain yang ketat untuk koneksi server MCP. Jika diatur, hanya entri yang terdaftar yang dapat diakses. | |
| allowedAddresses | Array of Strings | Daftar 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
allowedDomainsyang ketat (yang kemudian menjadi satu-satunya set yang dapat dijangkau), atau — agar tujuan publik tetap dapat dijangkau — dikecualikan sebagai layanan host:port yang tepat melaluiallowedAddresses - 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 portlihat: Struktur Objek Pengaturan MCP
mcpServers
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| mcpServers | Object | Mendefinisikan konfigurasi untuk server Model Context Protocol (MCP), yang memungkinkan integrasi dinamis server MCP di dalam aplikasi. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| <serverName> | Object | Setiap 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:
stdiowebsocketssestreamable-http
- Kolom
typemenentukan tipe koneksi ke server MCP. - Jika
typedihilangkan, nilainya akan ditentukan secara default berdasarkan keberadaan dan formaturlataucommand:- Jika
urlditentukan dan diawali denganhttpatauhttps,typeakan menggunakanssesecara default. - Jika
urlditentukan dan diawali denganwsatauwss, makatypesecara default akan menjadiwebsocket. - Jika
commandditentukan,typesecara default akan menjadistdio.
- Jika
- 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 berupatrue(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 konfigurasiheadersatauenvserver 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: truelihat: Struktur Objek MCP Servers
speech
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| speech | Object | Mengonfigurasi penyedia Text-to-Speech (TTS) dan Speech-to-Text (STT) untuk aplikasi. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| tts | Object | Konfigurasi penyedia Text-to-Speech (OpenAI, Azure OpenAI, ElevenLabs, LocalAI). | |
| stt | Object | Konfigurasi penyedia Speech-to-Text (OpenAI, Azure OpenAI). | |
| speechTab | Object | Pengaturan UI default untuk fitur ucapan. |
lihat: Struktur Objek Speech
turnstile
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| turnstile | Object | Mengonfigurasi Cloudflare Turnstile untuk perlindungan bot pada formulir pendaftaran dan login. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| siteKey | String | Kunci situs Cloudflare Turnstile Anda (wajib). | |
| options | Object | Opsi widget Turnstile tambahan (opsional). |
lihat: Struktur Objek Turnstile
transactions
Kunci:
| Key | Type | Description | Example |
|---|---|---|---|
| transactions | Object | Mengontrol fitur pencatatan transaksi dan visibilitas. |
Subkey:
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Mengaktifkan atau menonaktifkan pencatatan transaksi. Default: true. |
lihat: Struktur Objek Transaksi
Tautan tambahan
- Struktur Objek Summarization
- Struktur Objek AWS Bedrock
- Struktur Objek Endpoint Kustom
- Struktur Objek Endpoint Azure OpenAI
- Struktur Objek Endpoint Assistants
- Agen
- Struktur Objek Konfigurasi OCR
- Struktur Objek Speech
- Struktur Objek Turnstile
- Struktur Objek Transactions
- Struktur Objek Saldo
- Struktur Objek Pencarian Web
- Struktur Objek Memory
Bagaimana panduan ini?