03 / 05 · cluster k=2
8 günde sıfırdan: 5 uzman ajanlı, RAG destekli ve güvenliği kod katmanında duran bir banka asistanı.
Bir banka asistanı doğal dili anlamalı; ama para hareketinde hataya yer yok. LLM'ler esnek ama tutarsız, bankacılık ise kesinlik istiyor. Stajımda bu gerilimi çözen bir mimariyi sıfırdan, 8 günde, katman katman kurdum.
Sıcaklığı 0 olan ve bir test setine karşı ölçülen bir router, her mesajı 5 uzman ajandan birine yönlendiriyor: Hesap, Transfer, Genel (RAG), Kredi, Döviz; her ajan yalnızca kendi araçlarını görüyor. Giriş yapan müşterinin kimliği araç katmanına koddan veriliyor, LLM kimlik bilgisine hiç dokunmuyor. Kararı kimin vereceğini bilinçli ayırdım: workflow'da kod, agent'ta LLM karar veriyor. IBAN doğrulama, tek transaction'da çift taraflı transfer, kredi skoru ve anüite taksit hesabı tamamen deterministik Python.
Kullanıcı TC ve şifreyle giriyor; doğal dille bakiye soruyor, IBAN'a para gönderiyor, kredi uygunluğunu öğreniyor, banka dokümanlarından cevap alıyor ve canlı kur çekiyor. RAG, nomic-embed-text ile anlamsal arama yapıp cevabı dokümana dayandırıyor; kur servisi timeout, hata yakalama ve cache ile korunuyor. Üç guardrail var: yapılmamış bir işleme “yaptım” denmesini yakalayan eylem doğrulama, dil kayması (CJK) dedektörü ve format sızıntısı filtresi. Small-talk ise LLM'e hiç gitmeden fast-path'ten yanıtlanıyor.
Giriş (TC + şifre)
Fast-path ya da router (T=0)
5 uzman ajan, her biri kendi araçlarıyla
Deterministik çekirdek: transfer, kredi
RAG + canlı kur API'si
Guardrail'ler → yanıt
Python · Ollama · qwen2.5:7b · nomic-embed-text · SQLite · Streamlit · Faker
Bu bir staj prototipi: müşteriler Faker ile üretilmiş sentetik veriler, veritabanı SQLite, model yerel bir 7B LLM. Uçtan uca kaliteyi henüz tek bir sayısal metrikle raporlamadım. Sıradaki adım, gerçek senaryolardan bir değerlendirme seti kurmak ve sonuçları daha büyük bir modelle karşılaştırmak olurdu.