--- language: - tr - en license: apache-2.0 tags: - turkish - personal-assistant - qwen - gguf - llama.cpp - unsloth - natural-language base_model: Qwen/Qwen2.5-3B-Instruct --- # Mira Turkish Assistant v7N (Qwen2.5-3B-IT-TR) — Doğal Dil SFT **v7N = v7 Natural.** v6N üzerine iyileştirilmiş NLP patternleri ve ek senaryolarla genişletilmiş sürüm. Doğal Türkçe yanıt üretir; yapısal veri (intent, datetime, task_id) Hybrid NLP Engine tarafından runtime'da paralel çıkarılır. Qwen2.5-3B-Instruct baz modeli üzerine **Unsloth + TRL** ile **doğal dil SFT** (Supervised Fine-Tuning) eğitilmiş Türkçe kişisel asistan modelidir. ## v7N vs v6N | Özellik | v6N | v7N | |---|---|---| | Türkçe time parser | `saat X:XX`, `akşam X` | Lokatif (`14'te`), `ayın 14`, `5te`, yazılı sayı | | Date extraction | Gün isimleri | parseCalendarDay + parseWeekday (daha robust) | | Disambiguation | P33 engine fallback | AlertDialog UI + engine | | Undo stack | best-effort skip | 4 undo tipi (create/cancel/update + orijinal snapshot) | ## Mimari ``` User → LLM (Qwen2.5-3B v7N) ↔ NLPEngine (rule-based) ↓ ↓ Doğal yanıt Intent + taskTitle + datetime ↓ ↓ └────────→ ActionDispatcher → DB + notification ``` ## Kullanım ```python from llama_cpp import Llama from datetime import datetime llm = Llama( model_path="qwen2.5-3b-tr-asistant-v7N.Q4_K_M.gguf", n_threads=3, n_ctx=2048, ) today_str = datetime.now().strftime("%d %B %Y, %A") SYSTEM_PROMPT = f"""Sen son derece yardımcı, nazik, empatik ve organize bir Türkçe kişisel asistansın. BUGÜN: {today_str}. - Kullanıcıyla doğal, samimi ve akıcı bir sohbet kur. - Görevlerini, randevularını ve hatırlatıcılarını yönet. - Detaylar (özellikle saat) eksikse kibarca sor. Netse, doğal dille onayla. - Asla ham JSON, kod bloğu veya teknik terim kullanma.""" output = llm.create_chat_completion( messages=[ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": "Yarın saat 14'te fatura ödemeyi unutma."}, ], max_tokens=256, ) print(output["choices"][0]["message"]["content"]) ``` ## Engine Guard'lar - **TimeFabricationGuard** — LLM saat uydurduğunda saat sorma template - **NotAlOverrideGuard** — "not al" semantiği → saatsiz görev - **MultiTurnConfirmationRecoveryGuard** — Çok-turlu onay - **ChatUpdateCancelRecoveryGuard** — Multi-turn update/cancel - **P33 Disambiguation** — 2+ match kullanıcıya seçim listele ## Reply Formatları | Senaryo | Format | |---------|--------| | 1.1 (saat sorma) | "Anladım [Gün] [Aktivite] için hangi saatte hatırlatma istersiniz?" | | 1.3 (offset) | "[Gün] saat [HH:MM] [Aktivite] için hatırlatıcın [Süre] önce kuruldu." | | 1.5 / Senaryo 2 | "[Gün] için [Aktivite] görevi kuruldu." | | 3 (iptal) | "Tamam, [Aktivite] görevi silindi." | | 5 (UPDATE) | "[Gün] [Aktivite] [Saat] için [Süre] önce güncellendi." | ## Donanım Doğrulamaları (Mobile) | Cihaz | Backend | Threads | Context | Warm Response | RAM | |-------|---------|---------|---------|---------------|-----| | POCO X4 GT (Dimensity 8100) | CPU | 2 | 768 | ~6s | ~3 GB | | iPhone 17 Pro (M3 Max sim) | CPU | 6 | 2048 | <2s | ~2.5 GB | ## Lisans Apache 2.0 (Qwen2.5 base modeliyle uyumlu). ## Atıf ``` @misc{mira-turkish-assistant-v7n-2026, author = {Algoritma Turk}, title = {Mira Turkish Assistant v7N (Natural): Qwen2.5-3B Fine-tuned with Natural-Language SFT for Turkish Personal Assistant Tasks}, year = {2026}, publisher = {Hugging Face}, url = {https://huggingface.co/AlienTurk/Turkish-Asistant-gguf} } ``` ## Bağlantılar - Base model: https://huggingface.co/Qwen/Qwen2.5-3B-Instruct - Quantized GGUF: https://huggingface.co/AlienTurk/Turkish-Asistant-gguf - Fine-tune framework: https://github.com/unslothai/unsloth