
Sohbet arayüzü, Memo'nun birincil etkileşim yüzeyidir. Gerçek zamanlı akış, zengin içerik render'ı ve yerel arka uçla derin entegrasyonu destekler.
Mesajlar Sunucu Tarafı Olaylar (SSE) üzerinden token-token iletilir. Go arka ucu, çıkarım motoru token ürettikçe akışa gönderir:
// Arka uç SSE işleyici kalıbı
w.Header().Set("Content-Type", "text/event-stream")
w.Header().Set("Cache-Control", "no-cache")
w.Header().Set("Connection", "keep-alive")
for token := range llm.Stream(ctx, prompt) {
fmt.Fprintf(w, "data: %s\n\n", token)
flusher.Flush()
}
Flutter ön yüzü, Riverpod durum güncellemeleri aracılığıyla her token'ı anında render eder ve modelin gerçek zamanlı "yazıyor" görünümünü oluşturur.
Tüm model yanıtları GitHub-Flavored Markdown olarak ayrıştırılır ve tam destekle render edilir:
| Format | Destek |
|---|---|
| Başlıklar | Bağlantı kimlikli H1–H6 |
| Kod Blokları | highlight.js ile sözdizimi vurgulama (Go, Python, JS, Bash, YAML, JSON, Dart) |
| Satır İçi Kod | Bronz vurgulu tek aralıklı yazı tipi |
| Tablolar | Duyarlı, çizgili vurgulu satırlar |
| Listeler | Sıralı ve sırasız, iç içe |
| Alıntılar | Stil verilmiş çağrı blokları ([!NOTE], [!WARNING], [!TIP], [!DANGER]) |
| Bağlantılar | Otomatik bağlantılı URL'ler, dahili belge çapraz referansları |
| Görüntüler | Markdown görüntü sözdiziminden satır içi render |
Dosya veya görüntüleri doğrudan sohbet giriş alanına sürükleyip bırak:
Sohbet girişinde / yazarak komut paletini aç:
| Komut | Eylem |
|---|---|
/agent |
Araç çağrı iş akışları için Ajan Modunu etkinleştir |
/orchestra |
Uzman rollerle Orkestra Modunu başlat |
/search |
Anlamsal sorgu ile RAG hafızada ara |
/model |
Aktif modeli değiştir |
/incognito |
Gizli modu aç/kapat |
/clear |
Mevcut sohbeti temizle |
/export |
Sohbeti Markdown olarak dışa aktar |
Konuşmadan metne dönüştürme, uygulama ile birlikte gelen whisper.cpp üzerinden tamamen cihaz üstünde çalışır:
# whisper.cpp, Go arka ucu tarafından yönetilen bir alt süreç olarak çalışır
whisper-cli -m models/ggml-base.bin -f audio.wav -l auto
Sohbet üst çubuğundaki küre ikonu web aramayı açıp kapatır. Açıkken model, native function-calling ile bir web_search aracı alır (DuckDuckGo, API anahtarı gerekmez) — bu, cevabı üreten isteğin tam içinde olur — ve her mesajda gerçekten canlı bir arama gerekip gerekmediğine kendisi karar verir, kendi sorgusunu kendisi seçer; mesajın içeriğinden bağımsız olarak her seferinde arama tetiklenmez. Mekanizmanın tamamı için Ajan Modu'na bakın — bu toggle, Ajan Modu'nun kendi araç setiyle aynı mekanizmayı paylaşıyor, sadece tek bu araca kapsamlandırılmış hâliyle. Minimal Mod altında tamamen kapanır.
Geçici oturumlar oluşturmak için gizli modu aç. Bu modda:
Hassas görüşmeler, tek seferlik sorgular veya hafıza deponu kirletmeden model davranışını test etmek için gizli modu kullan.
marked aracılığıyla