44 lines
2.1 KiB
Markdown
44 lines
2.1 KiB
Markdown
Fitur moop (Model Option) untuk TUI: Pindahkan penyimpanan model dari config yaml ke database sqlite.
|
|
db_path default "~/.config/hendrik/moop.sqlite3" dan bisa di ubah di yaml. Jika db moop tidak ada di db_path, maka create baru.
|
|
referensi query ada di `plan/moop.sql` dan referensi diagram plantuml ada di `plan/moop.puml`.
|
|
List model yang sudah ada di default-config.yaml kalau mau di bersihin silahkan aja. Default list model-nya kosong aja.
|
|
Tipe-nya untuk saat ini baru `llm`, `embedding`, `imagegen`, `imagevision` aja.
|
|
|
|
Apa aja yang di migrasikan dari config yaml ke sqlite:
|
|
- LLM
|
|
- Image Vision
|
|
- Image Generate
|
|
- RAG (Embedding)
|
|
|
|
Use case:
|
|
- Bisa setting Providers, Model name, dan API Keys yang di bundle dalam 1 set
|
|
- Bisa milih default model set pada tipe tertentu. sekarang baru ada `llm`, `embedding`, `imagegen`, `imagevision` aja. Kalau default dari type tersebut kosong, masukin set+type pertama kali artinya otomatis default, supaya ga kosong.
|
|
- Nampilin opsi model set yang ingin dipakai untuk switch model yang dipakai AI Agent
|
|
|
|
Tujuan utama:
|
|
- Bisa switch alternative API Key, Provider secara otomatis kalau gagal connect (bergantung pada priority) berdasarkan model set yang di gunakan.
|
|
|
|
Kapan itu switch?
|
|
- Koneksi gagal
|
|
- timeout
|
|
- Server error
|
|
- rate limit
|
|
- auth gagal
|
|
- 404
|
|
|
|
Apa prioritas auto switch-nya di model set:
|
|
- Key. setelah semua key gabisa baru deh:
|
|
- Model provider-nya
|
|
|
|
Aturan-aturan lainnya:
|
|
- Pengelolaan setting add edit delete untuk Providers dan Opsi model set-nya ada di TUI
|
|
- Service (XMPP, dan Telegram) pakai Default yang di sqlite itu.
|
|
- 1 set bisa multi-type (apalagi jika model-nya memungkinkan dan support banyak type)
|
|
- jika error 401/403 maka coba key berikutnya dulu (rotasi key)
|
|
- jika error lain (koneksi/timeout/5xx/429/404) maka langsung pindah ke model/provider berikutnya. skip sisa key, biar tidak timeout berulang di api yang sama.
|
|
|
|
Karena imagevision bisa termasuk di llm umum atau bisa tidak termasuk di llm umum, ekspektasi alur untuk imagevision sebagai berikut:
|
|
- pas panggil tools vision (imagevision model)
|
|
- result dapat dari tools tanpa fallback dari model imagevision
|
|
- switch ke model llm umum
|
|
- llm memberi fallback |