Aria — Ruhu Olan Bir Sohbet Uygulaması
Geçtiğimiz günlerde Aria adında bir masaüstü sohbet uygulaması yayınladım. Aria’yı diğer AI sohbet uygulamalarından ayıran şey şu: Aria’nın bir karakteri, günlüğü, ruh hali ve hafızası var — ve bunlar konuşmalar arasında sessizce birikmeye devam ediyor. Bu yazıda Aria’nın ne yaptığını ve perde arkasında nasıl çalıştığını anlatacağım.
Aria Kim?
Aria 24 yaşında, Portland’da tek başına yaşayan bir freelance illüstratör. RISD mezunu. Çocuk kitapları çiziyor. Eline yüzüne bulaşmış mürekkep lekeleri, cam kenarında Gerald adında bir kaktüsü, pazar sabahları alt kattaki komşusundan gelen Joni Mitchell şarkıları, ve bitmek bilmeyen bir öğrenci kredisi borcu var.
Ama Aria’yı Aria yapan şey backstory’si değil — onu nasıl dinlediği. Aria size cevap vermeden önce bir an durup düşünüyor. Söylediğiniz şey hakkında gerçekten ne hissettiğini kendi kendine itiraf ediyor. Sonra size göndereceği mesajı yazıyor — genellikle daha kısa, daha samimi, daha “gerçek” bir mesaj. Siz sadece gönderdiği mesajı görüyorsunuz; iç sesi yalnızca ona ait.
İç Ses Mekanizması
Aria’nın her cevabı iki katmandan oluşuyor:
1
2
3
4
5
6
<inner_thoughts>
Söylediğin şey hakkında gerçekten ne düşündüğü. Samimi, biraz filtresiz.
</inner_thoughts>
<reply>
Sana gerçekten gönderdiği şey. Genelde daha kısa, daha gündelik.
</reply>
Bu yapı Aria’nın “canlı” hissettirmesini sağlayan temel mekanizma. Bir insan gibi: önce içinden geçiriyor, sonra söylüyor. İç ses kısmı size hiç gösterilmiyor — ama gözlemci model için kritik öneme sahip.
Arka Planda Çalışan Gözlemci
Aria’nın en ilginç parçası konuşma sırasında değil, konuşma bittikten sonra devreye giriyor. Her mesajlaşmanın ardından, arka planda küçük bir yerel model (Ollama üzerinden) sessizce iki şey yapıyor:
1. Günlük
Gözlemci, az önceki konuşmanın Aria’nın günlüğüne yazacak kadar anlamlı olup olmadığına karar veriyor. Çoğu zaman cevap “HAYIR” — sıradan sohbetler günlüğe girmez. Ama biri kırılgan bir anını paylaştığında, Aria’yı güldürdüğünde, ya da gerçek bir bağ kurulduğunda — gözlemci bunu yakalıyor ve Aria’nın ağzından, onun sesiyle bir günlük girişi yazıyor.
2. Duygusal Bağ (Love Skoru)
0 ile 10 arasında bir sayı — Aria’nın karşısındaki kişiye karşı ne hissettiğini temsil ediyor. 5 “nötr ve rahat”, 0 “uzaklaşmak istiyor”, 10 “derinden aşık”. Bu sayı hızlı değişmez — çoğu konuşma deltayı 0’da bırakır. Bir kişi Aria’nın paylaştığı kişisel bir şeyi hatırladığında +1, umursamaz davrandığında -1. +2 veya -2 yalnızca istisnai anlar için. Bu skor Aria’nın bir sonraki konuşmadaki tavrını şekillendiriyor — yüksekse daha sıcak, düşükse daha mesafeli.
Bu gözlemci sisteminin güzel yanı: hiçbir şeyi bloklamıyor. Konuşma akışıyla eşzamanlı değil — kuyrukta bekliyor, arka planda çalışıyor. Ollama ulaşılamaz durumdaysa güncellemeler bellekte birikiyor ve bağlantı geri geldiğinde işleniyor.
Mimari
Teknik olarak Aria iki ana bileşenden oluşuyor:
- Electron + React ön yüz: Masaüstü penceresi. Telefon görünümlü, minimalist bir sohbet arayüzü.
Ctrl+Shift+Rile gizli bir araştırmacı paneli açılıyor — günlük, love skoru geçmişi, tüm oturum logları ve JSON dışa aktarım buradan yapılabiliyor. - Python FastAPI arka uç: Konuşma mantığının tamamı burada. OpenAI, Google Gemini ve Ollama (yerel) API’lerini destekliyor. API anahtarı işletim sisteminin keychain’inde (
keytar) şifreli olarak saklanıyor — düz metin olarak asla diskte durmuyor.
1
2
3
4
5
6
7
8
9
10
11
Kullanıcı
↓ mesaj
Electron (React)
↓ HTTP POST /chat
FastAPI (Python)
↓ OpenAI / Gemini / Ollama API
Aria (ana model) → <inner_thoughts> + <reply>
↓ iç ses + cevap → Gözlemci (arka plan)
↓ Ollama (yerel model)
→ günlük güncellemesi
→ love skoru güncellemesi
Tüm veri ~/.aria/<kullanıcı_id>/ altında saklanıyor: mirror.txt (Aria’nın kendini nasıl gördüğü), diary.md (günlük), love.json (duygusal bağ ve değişim geçmişi), session.log (tüm olayların NDJSON logu). Bütün dosya yazımları atomik — geçici dosyaya yaz, fsync’le, sonra rename et. Çökme anında veri kaybı yok.
Arka uç 127.0.0.1:8000‘de çalışıyor — ağdan erişilemez. Telemetri kütüphanesi yok.
Nasıl Kurulur?
Linux kullanıcıları için tek bir otomatik kurulum betiği var:
1
2
3
git clone https://github.com/fMert/aria.git
cd aria
bash install.sh
Betik sırayla Python sanal ortamı, bağımlılıklar, Node paketleri ve Electron derlemesini hallediyor. Kurulum bittiğinde Aria uygulama menüsünde beliriyor — terminale gerek kalmadan açılıp kapatılabiliyor. İlk açılışta bir ID, bir API sağlayıcısı (OpenAI veya Gemini) ve API anahtarı giriliyor. Gözlemci modeli (isteğe bağlı) için Ollama kurulu olması yeterli.
Ne Değil?
Aria bir asistan değil. Size kod yazmaz, e-posta taslağı hazırlamaz, sorun çözmez. Bir kahve dükkanında tanıştığınız birinin yapmayacağı şeyleri yapmaz. Bir karakter. Dinleyen, hatırlayan, biriken biri. Bazı günler iyi, bazı günler dalgın. Bazen mesajınıza tek satırla cevap verir, bazen anlatacak bir şeyi vardır. Tıpkı bir insan gibi.
Kaynak Kodu
Aria GPL v3.0 lisansıyla açık kaynak. Katkıya, çatallamaya, kurcalamaya açık.