MemoDokümantasyon
TR

Sohbet Sistemi

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.

Akış Mimarisi

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.

Yanıt Render'ı

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 & Görüntü Sürükle-Bırak

Dosya veya görüntüleri doğrudan sohbet giriş alanına sürükleyip bırak:

  • Görüntüler: Yerel olarak Base64 kodlanır. Görüntü analizi için çok modlu GGUF modellerine gönderilir. Hiçbir zaman harici sunuculara yüklenmez.
  • Belgeler (PDF, TXT, MD): RAG hafızaya aktarılır. Dosya içeriği parçalanır, gömülür ve gelecekteki hatırlama için saklanır.
  • Kod Dosyaları: Sohbette sözdizimi vurgulamasıyla görüntülenir. İsteğe bağlı olarak anlamsal arama için indekslenir.

Slash-Komut Paleti

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

Cihaz Üstü Ses Girişi

Konuşmadan metne dönüştürme, uygulama ile birlikte gelen whisper.cpp üzerinden tamamen cihaz üstünde çalışır:

  • Ağ gerekmez — transkripsiyon yerel olarak gerçekleşir
  • TR/EN otomatik algılama — Türkçe ve İngilizce modelleri arasında otomatik geçiş yapar
  • Bas-konuş — mikrofon düğmesini basılı tut, bırak ve gönder
# 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

Web Arama Entegrasyonu

Etkinleştirildiğinde sohbet, yanıtları canlı web arama sonuçlarıyla zenginleştirebilir. Arama sorguları sohbet bağlamından çıkarılır, yapılandırılabilir arama sağlayıcıları üzerinden yürütülür ve üretimden önce modelin bağlam penceresine enjekte edilir.

Gizli Mod

Geçici oturumlar oluşturmak için gizli modu aç. Bu modda:

  • Diske hiçbir mesaj yazılmaz
  • Hiçbir vektör gömüsü oluşturulmaz
  • Hafıza hatırlama çalıştırılmaz
  • Sekmeyi kapattığında veya modu kapattığında oturum sonlanır


Hassas görüşmeler, tek seferlik sorgular veya hafıza deponu kirletmeden model davranışını test etmek için gizli modu kullan.

Performans

  • İlk token gecikmesi: Yerel modeller için genellikle 100ms altında
  • Akış arabelleği: 1 token hassasiyeti — toplu gecikme yok
  • Markdown ayrıştırma: Ertelenmiş sözdizimi vurgulama ile istemci tarafında marked aracılığıyla
  • Bellek: Sohbet geçmişi oturum sırasında bellekte tutulur; kapanışta diske yazılır (gizli mod hariç)