Chat UI documentation
Arsitektur
Arsitektur
Dokumen ini memberikan gambaran umum tingkat tinggi tentang basis kode Chat UI. Jika Anda ingin berkontribusi atau memahami cara kerja basis kode, ini adalah tempat yang tepat untuk Anda!
Ikhtisar
Chat UI menyediakan antarmuka sederhana yang menghubungkan LLM ke alat eksternal melalui MCP. Proyek ini menggunakan MongoDB dan SvelteKit dengan Tailwind.
Keputusan arsitektur utama:
- Hanya kompatibel dengan OpenAI: Semua interaksi model menggunakan format API OpenAI
- MCP untuk tools: Pemanggilan tool ditangani melalui server Model Context Protocol
- Penemuan otomatis: Model ditemukan dari endpoint
/models
Peta Kode
routes
Semua rute dirender dengan SSR melalui SvelteKit. Sebagian besar logika backend dan frontend berada di sini, dengan modul bersama di lib (klien) dan lib/server (server).
textGeneration
Menyediakan antarmuka standar untuk fitur chat, termasuk keluaran model, pemanggilan alat, dan streaming. Menghasilkan MessageUpdate untuk pembaruan status yang terperinci (token baru, hasil alat, dll.).
endpoints
Menyediakan antarmuka streaming untuk endpoint yang kompatibel dengan OpenAI. Model diambil dan di-cache dari ${OPENAI_BASE_URL}/models.
mcp
Menerapkan fungsionalitas klien MCP untuk penemuan dan eksekusi alat. Lihat Alat MCP untuk konfigurasi.
llmRouter
Logika routing cerdas yang memilih model terbaik untuk setiap permintaan menggunakan heuristik lokal (input gambar → rute multimodal, alat MCP aktif → rute agentic, selain itu default). Lihat LLM Router untuk detailnya.
migrasi
Migrasi MongoDB untuk menjaga kompatibilitas mundur di antara perubahan skema. Setiap perubahan skema harus menyertakan migrasi.
Pengembangan
npm install npm run dev
Server dev berjalan di http://localhost:5173 dengan hot reloading.