Yerel, Ses Kontrollü Bir Yapay Zeka Asistanı Mimarisi: Masaüstü Otomasyonu İçin Bir Uygulama Kılavuzu

Bölüm I: Ses Güdümlü Bir Ajan Sisteminin Mimari Taslağı

Bu projenin temel amacı, klavye ve fare kullanımını en aza indirerek bir bilgisayarı sesli komutlarla yönetebilen, tam yetkili bir yapay zeka asistanı oluşturmaktır. Bu hedefe ulaşmak için, her biri sistemin farklı bir temel işlevini yerine getiren modüler ve etkileşimli bir mimari tasarlamak esastır. Bu bölüm, projenin kavramsal çerçevesini oluşturacak, temel bileşenleri ve aralarındaki etkileşimleri tanımlayarak teknik ayrıntılara geçmeden önce üst düzey bir yol haritası sunacaktır.

1.1. Sistemin Üç Temel Direği

Kullanıcının hedefi, üç temel ve birbiriyle etkileşimli alt sisteme ayrılarak daha yönetilebilir hale getirilebilir. Bu modüler yaklaşım, geliştirmeyi basitleştirir ve bileşenlerin bağımsız olarak seçilmesine, test edilmesine ve optimize edilmesine olanak tanır.

  • “Kulaklar” (İşitsel Arayüz): Bu, sistemin birincil giriş kanalıdır. Mikrofondan gelen konuşma komutlarını yakalamaktan ve bunları doğru metne dönüştürmekten sorumlu olan Sesten Metne (Speech-to-Text – STT) motorudur. Bu bileşenin doğruluğu, tüm sistemin başarısı için kritik öneme sahiptir, çünkü yanlış anlaşılan bir komut sonraki tüm adımların başarısız olmasına neden olacaktır.
  • “Beyin” (Akıl Yürütme Motoru): Bu, STT motorundan gelen metin transkriptini alan ve yerel olarak çalışan bir Büyük Dil Modelidir (Large Language Model – LLM). Rolü, kullanıcının niyetini anlamak, komut hakkında akıl yürütmek ve bir kabuk komutu veya Python betiği gibi kesin, yürütülebilir bir plan formüle etmektir. Bu “beyin”, doğal dil ile makine komutları arasında bir köprü görevi görür.
  • “Eller” (Yürütme Çekirdeği): Bu, yerel işletim sistemine ayrıcalıklı erişime sahip bir ajan çerçevesidir (agentic framework). “Beyin”den gelen yürütülebilir planı alır ve dosya sistemi, uygulamalar ve sistem ayarlarıyla etkileşime girerek eylemi gerçekleştirir. Bu bileşen, soyut komutları somut eylemlere dönüştürür.

Bu üç direkli yapının doğası, sistemin genel performansının en güçlü bileşeni tarafından değil, en zayıf halkası tarafından belirlendiği gerçeğini ortaya koyar. Yüksek yetenekli bir ajan (“Eller”), STT motoru (“Kulaklar”) komutu yanlış anlarsa veya LLM (“Beyin”) hatalı kod üretirse işe yaramaz hale gelir. Örneğin, “proje klasörümü aç” komutunun “proje klasörümü sat” olarak yanlış çevrilmesi, tüm sürecin başarısız olmasına yol açar. Benzer şekilde, doğru bir transkript, LLM’nin cd /path/to/project yerine del /path/to/project gibi yıkıcı bir komut üretmesi durumunda felaketle sonuçlanabilir. Bu durum, sistemin genel güvenilirliğinin her bir bileşenin güvenilirliğinin bir çarpımı olduğunu gösterir (Rsistem​=Rstt​×Rllm​×Rajan​). Bu çarpımsal etki, bir alandaki küçük zayıflıkların bile genel sistem kullanılabilirliğini ve güvenliğini önemli ölçüde azaltabileceği anlamına gelir. Bu nedenle, bu kılavuz yalnızca güçlü parçaların bir koleksiyonunu değil, dengeli ve sağlam bir sistemin nasıl inşa edileceğini ele almaktadır.

1.2. Sistem Veri Akış Şeması

Sistemin uçtan uca sürecini görselleştirmek için aşağıdaki veri akışı izlenir. Bu akış, bileşenlerin nasıl bir araya gelerek tek bir işlevsel bütün oluşturduğunu gösterir.

Akış: Mikrofon Girişi -> -> Metin Transkripti -> -> Yürütülebilir Kod/Komut -> -> İşletim Sistemi Eylemi

Bu şema aynı zamanda bir geri bildirim döngüsünü de içerir. Bir eylemin çıktısı veya sonucu, çok adımlı görevleri mümkün kılmak için sonraki komutlar için LLM’ye geri beslenebilir. Örneğin, bir kullanıcı “masaüstündeki dosyaları listele” dedikten sonra, ajan dosya listesini döndürür ve kullanıcı “şimdi o listedeki ‘rapor.docx’ dosyasını aç” diyerek devam edebilir.

1.3. Temel İlkeler: Yerel Odaklılık ve Açık Kaynak

Bu projenin temelinde, yalnızca yerel olarak çalışan ve açık kaynaklı bileşenleri kullanma stratejik kararı yatmaktadır. Bu seçim, kullanıcının gizlilik, kontrol ve özelleştirme arzusuna doğrudan yanıt verir.1 Bulut tabanlı hizmetlere güvenmek yerine, tüm veri işleme (konuşma tanıma, niyet anlama ve komut yürütme) kullanıcının kendi makinesinde gerçekleşir. Bu, hassas verilerin üçüncü taraf sunucularına gönderilmesini önler ve internet bağlantısı olmadığında bile sistemin çalışmaya devam etmesini sağlar.

Bu mimarinin kendisi, tasarımı gereği önemli bir güvenlik sorunu yaratır. Olasılıksal bir sistem olan LLM’den, tam ayrıcalıklara sahip deterministik bir yürütme ortamına doğrudan bir boru hattı oluşturulması, yönetilmesi gereken merkezi risktir. Kullanıcı, bilgisayarında “her şeyi yapma” yetkisine sahip bir ajan talep etmektedir. Bu sistemin “Beyni”, deterministik olmayan ve “halüsinasyon” görebilen veya komut enjeksiyonu yoluyla manipüle edilebilen bir LLM’dir.3 “Eller” ise, “Beyin”in ürettiği her türlü kodu tam sistem erişimiyle sorgusuzca yürütecek bir çerçevedir. Bu, potansiyel olarak güvenilmez veya ele geçirilmiş bir akıl yürütme motorundan kullanıcının işletim sisteminin çekirdeğine kadar korumasız, doğrudan bir yol oluşturur. Bu bir hata değil, talep edilen mimarinin temel bir özelliğidir. Bu nedenle, güvenlik bir eklenti olarak değil, en başından itibaren birincil bir mimari düşünce olarak ele alınmalıdır ve bu durum, özellikle Bölüm VI’nın gerekliliğini ortaya koymaktadır.

Bölüm II: Yürütme Çekirdeği: Bir Ajan Çerçevesi Seçimi ve Uygulanması

Bu bölüm, sistemimizin “Eller”ine odaklanmaktadır. Bir LLM’nin bir bilgisayarı kontrol etmesine olanak tanıyan çerçeveler derinlemesine analiz edilecek, birincil bir öneri sunulacak ve alternatifler karşılaştırmalı olarak incelenecektir.

2.1. Birincil Öneri: Open Interpreter

Open Interpreter, tasarım felsefesi ve yetenekleri nedeniyle bu proje için ideal bir temel olarak belirlenmiştir.

  • Temel İşlevsellik: Open Interpreter, OpenAI’nin Kod Tercümanı’nın (Code Interpreter) yerel olarak çalışan bir uygulamasıdır ve bir LLM’ye kullanıcının yerel ortamında kod (Python, Javascript, Shell vb.) çalıştırma yeteneği verir.5 Bu, bir LLM’ye sadece metin üretmekle kalmayıp, aynı zamanda sistem üzerinde doğrudan eylemler gerçekleştirme gücü verir.
  • Temel Avantajlar: Barındırılan hizmetlerin sınırlamalarını aşarak tam internet erişimi, zaman veya dosya boyutu kısıtlaması olmaksızın ve yerel makinede bulunan herhangi bir paket veya kütüphaneyi kullanma yeteneği sunar.5 Bu, kullanıcının her şeye gücü yeten bir ajan gereksinimiyle mükemmel bir şekilde örtüşmektedir. Örneğin, bir kullanıcı “internetten en son Python sürümünü indir, kur ve bir ‘hello world’ betiği çalıştır” gibi karmaşık bir komut verebilir ve Open Interpreter bunu gerçekleştirebilir.
  • Güvenlik Mekanizması: Kritik bir özellik, kod yürütülmeden önce yerleşik kullanıcı onayı istemidir. Bu, hatalı veya kötü niyetli koda karşı temel bir güvenlik korkuluğu görevi görür.5 Ajan bir komut çalıştırmak istediğinde, terminalde komutu gösterir ve kullanıcıdan y (evet) veya n (hayır) tuşuna basmasını bekler. Bu, sistemin kontrolünün her zaman son kullanıcıda kalmasını sağlayan ilk savunma hattıdır.

2.2. Karşılaştırmalı Analiz: Alternatif Ajan Çerçeveleri

Resmin tamamını sunmak için diğer güçlü açık kaynaklı ajanlar da değerlendirilecektir. Bu, Open Interpreter’ın neden seçildiğini daha iyi anlamayı sağlar ve gelecekteki olası genişlemeler için bir bağlam sunar.

  • Simular (Agent-S): Bu çerçeve, güçlü ancak farklı bir alternatif olarak sunulmaktadır. Gücü, bir insan kullanıcısı gibi ekrandaki görsel öğelerle etkileşim kurmak için bir “temellendirme modeli” (grounding model) kullanarak Grafik Kullanıcı Arayüzü (GUI) otomasyonunda yatmaktadır.8 API’leri olmayan uygulamalar içindeki görevlerde mükemmeldir. Örneğin, bir kullanıcı “Photoshop’u aç, son resmi yükle ve parlaklığı %10 artır” diyebilir ve Simular, menüleri ve kaydırıcıları görsel olarak bularak bu görevi yerine getirebilir. Bu, birincil genel amaçlı çerçeve yerine, GUI ağırlıklı iş akışları için özel bir araç veya gelecekteki bir eklenti olarak konumlandırılacaktır.
  • Cline: Bu ajan, bir Entegre Geliştirme Ortamı (IDE) içindeki kodlama görevleri için oldukça uzmanlaşmıştır ve kod tabanını anlama ve değiştirme üzerine odaklanmıştır.10 Güçlü olmasına rağmen, kullanıcının genel masaüstü otomasyonu hedefi için çok dar bir odak alanına sahiptir.
  • Daha Geniş Ekosistem: awesome-ai-agents deposuna 11 kısaca atıfta bulunularak yapay zeka ajanlarının geniş ve hızla gelişen manzarası gösterilecek ve Open Interpreter’ın olgun ve iyi desteklenen bir başlangıç noktası olarak seçimi pekiştirilecektir.

Bu çerçeveler arasındaki seçim, sadece teknik bir fark değil, aynı zamanda felsefi bir ayrımdır. Open Interpreter, temel olarak bir komut satırı ve kod yürütme ajanıdır. Bu, güçlü, verimli ve betiklenebilirdir, ancak grafiksel kullanıcı arayüzüne kördür. Bir komut satırı eşdeğeri olmadıkça bir “düğmeye tıklayamaz”. Öte yandan Simular, ekranı “görerek” ve fare ile klavyeyi kontrol ederek çalışır.8 Bu, bir insanın çalışma şekline daha yakındır ve herhangi bir uygulamayı otomatikleştirebilir, ancak daha yavaş ve daha kırılgan olabilir (örneğin, bir kullanıcı arayüzü güncellemesi otomasyonu bozabilir). Kullanıcının amacı “klavye ve fare kullanımını en aza indirmek” olduğundan, her iki otomasyon türüne de bir istek olduğu anlaşılmaktadır. Ancak, Open Interpreter gibi kod tabanlı bir ajanla başlamak daha sağlam ve temel bir yaklaşımdır. Gerçekten kapsamlı bir asistanın, arka plan görevleri için Open Interpreter’ı ve ön uç görevleri için Simular gibi bir GUI ajanını kullanan bir

hibrit sistem olması gerekebilir. Bu kılavuz, çok yönlülüğü ve kararlılığı nedeniyle Open Interpreter ile başlamayı önermektedir.

2.3. Uygulama Kılavuzu: Open Interpreter’ın Programatik Kontrolü

Bu alt bölüm, sistem entegrasyonu için eyleme geçirilebilir kodlar sağlayacaktır.

  • Kurulum: Python paketini kurmak için ayrıntılı adımlar: pip install open-interpreter.6
  • Programatik Kullanım:interpreter nesnesini nasıl içe aktarılacağını ve kullanılacağını gösteren bir Python betiği sunulacaktır. Bu, entegrasyonumuz için kritik API’dir.
    • Tek bir komut çalıştırma: interpreter.chat("Masaüstündeki tüm dosyaları listele").5
    • Konuşma geçmişini ve bağlamı yönetme: interpreter.reset() ve interpreter.messages listesini yönetme.5 Bu, ajanın önceki komutları hatırlamasını sağlar.
    • Ajanın davranışını yönlendirmek için bağlam sağlamak veya kısıtlamalar uygulamak amacıyla sistem mesajını yapılandırma: interpreter.system_message += "...".5 Bu, ajanın rolünü tanımlamak için kilit bir araçtır. Örneğin, “Sen yalnızca dosya sistemi işlemleri yapan bir asistansın” gibi bir kural eklenebilir.
    • Yerel bir LLM’ye bağlanma (Bölüm IV’te ayrıntılı olarak açıklanacaktır): interpreter.offline = True, interpreter.llm.model ve interpreter.llm.api_base ayarlarının yapılması.12 Bu, Open Interpreter’ın Ollama tarafından sunulanlar gibi yerel modellerle çalışmak üzere nasıl tasarlandığını gösterir.

Bölüm III: İşitsel Arayüz: Gerçek Zamanlı Bir Sesten Metne Hattı Oluşturma

Bu bölüm, sistemin “Kulaklar”ını ele almaktadır. Buradaki temel zorluk sadece transkripsiyon doğruluğu değil, aynı zamanda bunu bir mikrofondan neredeyse gerçek zamanlı olarak başarmaktır.

3.1. Çekirdek Teknoloji: Whisper Ekosistemi

OpenAI’nin Whisper’ı, yüksek doğruluğu ve çok dilli desteği nedeniyle bu görev için en son teknolojiye sahip açık kaynaklı model olarak belirlenmiştir.13

  • Model Varyantları: Farklı model boyutları (tiny, base, small, medium, large) ve hız, kaynak gereksinimleri (VRAM) ve doğruluk arasındaki denge tartışılacaktır.16 Duyarlı bir yerel asistan için base veya small ile başlamak tavsiye edilir. Daha büyük modeller daha doğru sonuçlar verirken, daha fazla işlem gücü gerektirir ve bu da yanıt süresini uzatabilir.
  • Kurulum: pip install -U openai-whisper aracılığıyla standart kurulum ve ffmpeg‘e olan kritik bağımlılık.16ffmpeg, çeşitli ses formatlarını işlemek için gereklidir.

3.2. Gerçek Zamanlı Transkripsiyon Zorluğu

Temel Whisper modeli, gerçek zamanlı akış için tasarlanmamıştır; ses dosyalarını veya parçalarını (genellikle 30 saniye) işler.16 Bu, üstesinden gelinmesi gereken merkezi teknik engeldir. “Gerçek zamanlı” STT, aslında tasarlanmış bir yanılsamadır. Altta yatan model (Whisper) toplu iş odaklıdır. Başarı, tamamen çevresindeki ses işleme hattının (Ses Aktivitesi Tespiti, arabelleğe alma ve iş parçacığı oluşturma) kalitesine bağlıdır.

Whisper’ın temel tasarımı, belirli bir ses segmentini yazıya dökmektir.16 Doğal olarak sürekli bir “akış” kavramı yoktur. Bu nedenle, herhangi bir “gerçek zamanlı” sistem, bu segmentleri canlı bir mikrofon beslemesinden yapay olarak oluşturmalıdır. Bu, bir kişinin ne zaman konuşmaya başladığına ve ne zaman durduğuna karar vermeyi içerir. Bu karar verme süreci önemsiz değildir. Çok erken yazıya dökerseniz, parçalanmış cümleler elde edersiniz. Çok uzun beklerseniz, sistem yavaş ve tepkisiz hisseder.

WhisperLive 17 ve VAD’li

faster-whisper 18 gibi projeler, sesi akıllıca segmentlere ayırmak için Ses Aktivitesi Tespiti (Voice Activity Detection – VAD) kullanarak bu sorunu açıkça çözer. Bu, kullanıcının sadece

pip install whisper komutunu çalıştırıp gerçek zamanlı bir deneyim bekleyemeyeceği anlamına gelir. Bu karmaşık ses yönetimi mantığını kendileri oluşturmalı veya bunu zaten çözmüş bir kütüphane/proje kullanmalıdırlar.

  • Özelleşmiş Uygulamalar: Whisper üzerine gerçek zamanlı yetenekler inşa eden birkaç proje analiz edilecektir.
    • faster-whisper: CTranslate2 kullanan ve önemli ölçüde hız artışı (4 kata kadar) ve daha az bellek kullanımı sunan bir yeniden uygulamadır, bu da onu yerel dağıtım için ideal kılar.18 Bu, bir arka uç optimizasyonudur.
    • WhisperLive: “Neredeyse canlı” transkripsiyon için tasarlanmış bir istemci-sunucu uygulamasıdır. Ses akışlarını işlemek için sağlam bir mimari sergiler.17
    • whisperX: Bu proje, son derece doğru kelime düzeyinde zaman damgaları ve konuşmacı günlüğü tutma (speaker diarization) üzerine odaklanmıştır.19 Güçlü olmasına rağmen, odak noktası canlı etkileşimden çok sonradan işlemedir.
    • Kendin Yap Gerçek Zamanlı Betikler: Mikrofon girişini yakalamak, arabelleğe almak ve sürekli bir döngü içinde bir Whisper modeline beslemek için PyAudio gibi kütüphaneleri kullanan Python tabanlı çözümler sunan whisper_real_time 20 ve RealtimeSTT 21 gibi depolar incelenecektir.

3.3. Önerilen Yaklaşım ve Uygulama Betiği

faster-whisper‘ın performansını, kendin yap projelerinden esinlenen sağlam bir ses işleme döngüsüyle birleştiren özel bir Python betiği önerilecektir.

  • Çekirdek Mantık: Betik, PyAudio kullanarak mikrofonu sürekli dinlemek için bir arka plan iş parçacığı çalıştıracaktır. Basit bir enerji eşiği veya daha gelişmiş bir VAD kütüphanesi kullanarak konuşmayı algılayacaktır. Konuşma bittiğinde, arabelleğe alınan ses parçası transkripsiyon için faster-whisper modeline gönderilir.
  • Açıklamalı Python Betiği: Aşağıdaki adımları gösteren eksiksiz, iyi yorumlanmış bir Python betiği sunulacaktır:
    1. Bağımlılıkların kurulumu (faster-whisper, pyaudio).
    2. faster-whisper‘dan WhisperModel‘in başlatılması.18
    3. Mikrofon verilerini yakalamak için PyAudio akışının ayarlanması.
    4. Dinleme, arabelleğe alma ve transkripsiyonu tetikleme için ana döngü.
    5. Son metin transkriptini sistemin bir sonraki aşamasına geçirmek için bir geri arama işlevi veya kuyruk.

Bölüm IV: Akıl Yürütme Motoru: Yerel Dil Modellerini Dağıtma ve Kullanma

Bu bölüm, sistemin “Beyin”inin kurulumunu detaylandırmaktadır. STT modülünden metin alabilen ve ajan çerçevesi için komutlar üretebilen, yerel, API erişimli bir LLM sunucusu oluşturmaya odaklanılacaktır.

4.1. Yerel LLM Sunucusu: Ollama

Ollama, basitliği, kullanım kolaylığı ve sağlam ekosistemi nedeniyle şiddetle tavsiye edilmektedir.

  • İşlevsellik: Ollama, açık kaynaklı LLM’leri (Llama 3, Code Llama vb.) yerel bir REST API aracılığıyla sunarak kullanıcının makinesini etkili bir şekilde özel bir yapay zeka bulutuna dönüştürür.23
  • Kurulum: macOS, Linux ve Windows için basit tek satırlık kurulum.23
  • Model Yönetimi: Modelleri çekmek, listelemek ve çalıştırmak için komutlar (ollama pull llama3, ollama list) oldukça basittir.23

4.2. Model Seçim Stratejisi

LLM seçimi kritiktir ve büyük ölçüde kullanıcının donanımına (özellikle GPU VRAM’ine) ve istenen görevlere bağlıdır.

  • Temel Kriterler: Model seçimi için faktörler özetlenecektir: kodlama/akıl yürütme ölçütlerindeki performans, bağlam penceresi boyutu, VRAM gereksinimleri ve lisanslama.26
  • Kuantizasyon (Quantization): Daha büyük, daha güçlü modelleri sınırlı VRAM’e sahip tüketici donanımında, bir miktar hassasiyet kaybı pahasına çalıştırma tekniği olarak kuantizasyon kavramı (örneğin, GGUF formatları) açıklanacaktır.2 Ollama bu işlemi otomatik olarak yönetir.
  • Kod ve Talimat Takibi için Lider Modeller:
    • Code Llama Ailesi: Özellikle kod üretimi için ince ayarlanmış ve güçlü bir temel modeldir.26
    • DeepSeek Coder: Özellikle kod üzerine eğitilmiş, en yüksek performanslı model ailelerinden biridir.2
    • Phi-3 Mini: Minimum donanımda çalışabilen, mantık ağırlıklı görevler için mükemmel, oldukça yetenekli küçük bir modeldir.2
    • Llama 3: Güçlü talimat takip yeteneklerine sahip, güçlü, genel amaçlı bir modeldir.2

4.3. Önerilen Tablo: Yerel LLM Seçim Matrisi

Kullanıcının seçimine rehberlik etmek için aşağıdaki ayrıntılı tablo sunulmuştur. Bu tablo, bir kullanıcının donanımı olan birincil kısıtlamasını ele alarak, LLM ekosisteminin karmaşıklığını basitleştirir. Yanlış model seçimi ya düşük performansa ya da hiç çalışmamasına neden olabilir. Bu yapılandırılmış tablo, en kritik karar verme değişkenlerini (VRAM, performans, uzmanlık) tek bir, kolayca başvurulabilir formatta birleştirerek, kullanıcı için ezici bir araştırma görevini, kendi özel donanım ve ihtiyaçlarına dayalı basit bir seçim sürecine dönüştürür.

Model AdıParametre BoyutuTahmini VRAM (Kuantize Edilmiş)Temel Güçlü YönleriEn İyi Kullanım AlanlarıLisans
Code Llama7B, 13B, 34B, 70B4-8GB (7B) ile 12-24GB+ (70B)Python, C++, Java’da yüksek doğruluk 2Profesyonel düzeyde kodlama, genel amaçlı görevlerLlama 2 Topluluk
DeepSeek Coder1.3B, 6.7B, 33B+12-16GB (orta boy)Çok dilli, hızlı, gelişmiş paralel belirteç tahmini 2Karmaşık, gerçek dünya programlama, komut takibiDeepSeek Lisansı
Phi-3 Mini3.8B4-8GBMinimum donanımda verimli, sağlam mantık yetenekleri 2Giriş seviyesi donanım, mantık ağırlıklı görevler, betiklemeMIT
Llama 38B, 70B6-10GB (8B) ile 24GB+ (70B)Hem kod hem de genel metin için çok yönlü, güçlü talimat takibi 2Genel amaçlı asistan, karma görevlerLlama 3 Topluluk
StarCoder23B, 7B, 15B8-24GB (boyuta bağlı)Betikleme için harika, geniş topluluk desteği 2Genel amaçlı kodlama, betikleme, araştırmaOpenRAIL-M

4.4. Ollama ile Python Üzerinden Etkileşim

Resmi ollama Python kütüphanesi kullanılarak kod örnekleri sunulacaktır.

  • Kurulum: pip install ollama.24
  • API Kullanımı: Bir Python betiği, Ollama API’sine bir istem (transkribe edilmiş metin) göndermeyi ve bir yanıt (üretilen komut) almayı gösterecektir.
    • Basit sohbet tamamlama: ollama.chat(model='...', messages=[...]).24
    • Ajanın rolünü tanımlamak için sistem istemlerini kullanma: “Sen yardımcı bir yapay zeka asistanısın. Amacın, kullanıcının doğal dil talebini tek, yürütülebilir bir kabuk komutuna veya kısa bir Python betiğine çevirmektir.”.25

“Beyin” sadece bir model değil; dikkatlice yönlendirilmiş bir sistemdir. Çıktının kalitesi, seçilen LLM’nin ham yeteneği kadar, istem mühendisliğine (sistem istemi) de bağlıdır. LLM’ler genel amaçlı talimat takip motorlarıdır. Özel bir rehberlik olmadan, çıktıları bir yürütme ajanı için ayrıntılı, konuşma tarzında veya yanlış biçimlendirilmiş olabilir. “Eller” (Open Interpreter), açık, yürütülebilir bir kod parçası veya bir kabuk komutu bekler. Bir şeyin nasıl yapılacağını açıklayan uzun bir paragrafı ayrıştıramaz. Bu nedenle, LLM’nin çıktısını yürütme ajanının ihtiyaç duyduğu kesin formata kısıtlamak için bir “meta-istem” veya sistem istemi gereklidir.25 Bu, “beyni inşa etmenin” önemli bir parçasının sadece bir model indirmek değil, aynı zamanda LLM’nin bir sohbet robotu yerine güvenilir bir “komut üreteci” olarak hareket etmesini sağlamak için bu sistem istemini oluşturmak ve iyileştirmek olduğu anlamına gelir. Bu istem, sistemin entelektüel mülkiyetinin temel bir parçası haline gelir.

Bölüm V: Sistem Entegrasyonu: Birleşik Bir Python Kontrol Betiği ve Alternatif Mimariler

Bu son bölüm, tüm bileşenleri işlevsel bir uygulamada bir araya getirir ve daha gelişmiş, önceden oluşturulmuş bir mimariyi inceler.

5.1. Ana Kontrol Betiği

Tüm iş akışını düzenleyen merkezi Python betiği sunulacaktır.

  • Mimari: Betik, bir ana döngü etrafında yapılandırılacaktır. STT dinleyicisini (Bölüm III’ten) ayrı bir iş parçacığında başlatacaktır. STT iş parçacığı bir transkripsiyon ürettiğinde, bu bir kuyruğa yerleştirilecektir. Ana döngü bu kuyruktan okuyacak, metni Ollama istemcisine (Bölüm IV’ten) gönderecek, üretilen kodu/komutu alacak ve yürütme için Open Interpreter’ın programatik sohbet işlevine (Bölüm II’den) geçirecektir.
  • Tam Kod Listesi: Önceki bölümlerdeki kod parçacıklarını ve mantığı tek bir, çalıştırılabilir dosyada birleştiren eksiksiz, açıklamalı bir Python betiği sunulacaktır. Bu betik, kullanıcının hedefine ulaşmak için en doğrudan yolu temsil eder.

5.2. Gelişmiş Alternatif: Open Interpreter “01” Projesi

Daha parlak, zengin özellikli ve ölçeklenebilir bir çözüm arayan kullanıcılar için “01” projesi analiz edilecektir.

  • Konsept: “01”, açıkça Open Interpreter tarafından desteklenen, ses kontrollü akıllı cihazlar oluşturmak için açık kaynaklı bir platformdur.32 “Masaüstü, mobil ve ESP32 çipleri için 1 numaralı açık kaynaklı ses arayüzü” olarak tanımlanmaktadır.
  • İstemci-Sunucu Mimarisi: Monolitik betiğimizin aksine, “01” sofistike bir istemci-sunucu modeli kullanır.
    • Sunucu: Open Interpreter ve LLM’yi çalıştıran çekirdek mantık, bir ana bilgisayarda bulunur.33 Güçlü cihazlar için tam özellikli Livekit Server gibi farklı sunucu arka uçları sunar.32
    • İstemci: “Ses arayüzü” bir mobil uygulama (Android/iOS), bir masaüstü istemcisi veya hatta ESP32 tabanlı özel bir donanım (“01 Light”) olabilir.32 İstemcinin tek işi, sunucuya ses akışı sağlamak ve yanıtı geri oynatmaktır.
  • Artıları ve Eksileri:
    • Artıları: Yüksek düzeyde ölçeklenebilir, birden çok istemci türüne izin verir, uzaktan kontrole olanak tanır, tek bir betikten daha sağlamdır.
    • Eksileri: Kurulumu önemli ölçüde daha karmaşıktır; sunucu yapılandırması, API’ler için ortam değişkenleri (örneğin, STT için Deepgram, TTS için Eleven Labs) ve istemci kurulumu gerektirir.32 Ayrıca hızlı ve deneysel bir geliştirme aşamasındadır.32

Kullanıcının talebi, basit bir prototip ile tam teşekküllü bir ürün arasındaki bir yol ayrımında durmaktadır. Monolitik betik temel talebi karşılarken, “01” projesi, parlak, güvenilir ve genişletilebilir bir sesli asistan için gereken gerçek mimari karmaşıklığı ortaya koymaktadır. Kullanıcının ilk talebi, üç direği birbirine bağlayan tek bir Python betiği ile karşılanabilir. Bu, “Minimum Uygulanabilir Ürün”dür. Ancak, bu betiğin sınırlamaları vardır: yalnızca çalıştığı makinede çalışır, farklı istemci cihazlarına kolayca genişletilemez ve gerçek zamanlı ses işleme yeteneği temel düzeyde olabilir. “01” projesi 32, profesyonel bir istemci-sunucu yazılım mimarisi benimseyerek bu sorunları zaten çözmüştür. “Kulaklar”ı (istemci) “Beyin” ve “Eller”den (sunucu) ayırır. Bu, kullanıcının hedefleri büyüdükçe (örneğin, “Bilgisayarımı telefonumdan kontrol etmek istiyorum” veya “Özel bir donanım düğmesi istiyorum”), kaçınılmaz olarak basit betiklerini bir istemci-sunucu modeline yeniden düzenlemek zorunda kalacakları anlamına gelir. “01” projesi, bu evrim için doğrudan bir plan veya hatta hazır bir çözüm sunarak, kullanıcının tekerleği yeniden icat etmesini engeller. Bu rapor, betiği Adım 1 ve “01”i projenin yaşam döngüsündeki mantıksal Adım 2 veya 3 olarak konumlandırmalıdır.

Bölüm VI: Güvenlik Zorunlulukları: Sisteminizi Korumak ve İzolasyon Sağlamak

Bu, tartışmasız en önemli bölümdür. Bir yapay zekaya tam sistem erişimi vermek doğası gereği tehlikelidir ve bu bölüm bu riski yönetmek için bir çerçeve sunacaktır.

6.1. Tehdit Modeli: “Aşırı Yetki”

Güvenlik sorununu, aşırı işlevsellik, aşırı izinler ve aşırı özerkliğin tehlikeli bir birleşimi olan “Aşırı Yetki” (Excessive Agency) kavramını kullanarak çerçeveleyeceğiz.3

  • Çekirdek Güvenlik Açığı: Ajan, dosya ve sistem ayarlarıyla etkileşime girerek veri kaybına veya güvenlik risklerine yol açabilir.5 Bu durum, LLM’lerin halüsinasyon görebilmesi veya manipüle edilebilmesi gerçeğiyle daha da kötüleşir.
  • Saldırı Vektörleri:
    • Komut Enjeksiyonu (Prompt Injection): Ajanın işlediği verilere (örneğin, özetlemesi istenen bir web sayfası) gizlenmiş kötü niyetli talimatlar, ajanın davranışını ele geçirebilir.4 Bu, OWASP’a göre LLM ile ilgili en büyük tehlikedir.39
    • Ajan Kaçırma (Agent Hijacking): Bir saldırgan, ajanı kimlik bilgilerini ifşa etmesi veya yetkisiz eylemler gerçekleştirmesi için kandırabilir.38
    • İstenmeyen Yıkıcı Eylemler: LLM, bir komutu yanlış anlayabilir ve belirsizlik veya halüsinasyon nedeniyle yıkıcı kod üretebilir (örneğin, dosyaları taşımak yerine silmek).3

Yerel bir ajanın güvenliği bir paradokstur. Yerel olarak çalışmak veri gizliliğini artırırken (kod ve veriler makineden ayrılmaz), barındırılan, kısıtlanmış bir ortama kıyasla sistem güvenlik riskini önemli ölçüde artırır. Yerel modellerin birincil motivasyonlarından biri gizliliktir.1 Kullanıcı, verilerini ve komutlarını üçüncü taraf bir buluta göndermekten kaçınmak ister. ChatGPT’nin Kod Tercümanı gibi barındırılan çözümler, güvenlik nedeniyle ağır şekilde kısıtlanmıştır: internet erişimi yok, sınırlı paketler, kısa çalışma süreleri ve bir sanal alan (sandbox) ortamı.5 Open Interpreter’ın ana özelliği, bu kısıtlamaların

kaldırılmasıdır.5 Yerel makinedeki kullanıcı hesabının tam izinleriyle çalışır. Bu nedenle, gizlilik için yerel bir ajan seçerek, kullanıcı bir bulut hizmetinin veri gizliliği riskini, yerel bir hizmetin doğrudan sistem bütünlüğü riskiyle takas etmektedir. Bu temel bir ödünleşimdir. Sonuç olarak, kullanıcı, kaçınmaya çalıştığı bulut hizmetlerinin güvenlik önlemlerini etkili bir şekilde yeniden yaratarak kendi sağlam sanal alanını uygulamadan hem maksimum gizliliğe hem de maksimum güvenliğe sahip olamaz.

6.2. Azaltma Stratejisi 1: En Az Ayrıcalık İlkesi ve İnsan Gözetimi

  • Döngüde İnsan (Human-in-the-Loop): En kritik koruma. Open Interpreter’ın varsayılan onay adımını aktif tutmak (interpreter.auto_run = False) şiddetle tavsiye edilir.5 Yüksek riskli operasyonlar için insan onayı zorunlu olmalıdır.40
  • Ajanı Kısıtlama: Katı kurallar ve sınırlar belirlemek için Open Interpreter’ın sistem istemini kullanın. Örneğin: “Açık, çok adımlı bir onay olmadan dosyaları silen veya sistem açısından kritik ayarları değiştiren herhangi bir komutu yürütmekten men edildin.” Bu, yumuşak bir savunma katmanı sağlar.

6.3. Azaltma Stratejisi 2: Yürütme Sanal Alanı (Execution Sandboxing)

Ele geçirilmiş veya arızalı bir ajanın “patlama yarıçapını” sınırlamak için, yürütme ortamını izole etme yöntemleri detaylandırılacaktır.

  • Docker ile Konteynerleştirme: En sağlam çözüm. Tüm ajan sistemini (veya en azından Open Interpreter yürütme ortamını) bir Docker konteyneri içinde çalıştırma süreci özetlenecektir. Bu, ajanın eylemlerini ana işletim sisteminin dosya sisteminden ve işlemlerinden izole eder.
  • Özel Yapay Zeka Sanal Alanları: Gelişmiş, amaca yönelik sanal alan çözümleri tanıtılacaktır.
    • E2B: Yapay zeka ajanları için tam bir araç paketi ile izole edilmiş bulut sanal alanları sağlayan açık kaynaklı, güvenli bir ortamdır.41
    • AIO Sandbox: Tarayıcı, Kabuk ve Dosya işlemlerini tek bir Docker konteynerinde birleştiren, güvenli ve birleşik bir yürütme ortamı sağlayan hepsi bir arada bir ajan sanal alanıdır.42 Bu araçlar, bu güvenlik sorununu kurumsal düzeyde çözmek için özel olarak tasarlanmıştır.

Bölüm VII: Sonuç ve Gelecek Yörüngesi

7.1. Önerilen Yolun Özeti

Birincil uygulama planının kısa bir özeti:

  1. Eller: Gücü ve esnekliği için Open Interpreter ile başlayın.
  2. Kulaklar: faster-whisper ve PyAudio kullanarak gerçek zamanlı bir STT hattı oluşturun.
  3. Beyin: Sağlanan matrise göre bir model seçerek Ollama ile yerel bir LLM sunucusu kurun.
  4. Entegrasyon: Üç bileşeni de bağlamak için ana Python betiğini kullanın.
  5. Güvenlik: Onay istemlerini etkinleştirerek ve sanal alanlı bir ortam planlayarak güvenliği ilk günden itibaren önceliklendirin.

7.2. Gelecekteki Geliştirmeler

Projeyi geliştirmek için sonraki adımlara bir bakış.

  • “Ağız” Ekleme (Metinden Sese): Tam bir konuşma döngüsü oluşturmak için, asistanın sözlü geri bildirim sağlaması gerekir. Leon 43 ve Home Assistant 44 gibi bu bileşeni entegre eden platformlara atıfta bulunarak açık kaynaklı TTS seçenekleri kısaca tartışılacaktır.
  • Çok Modlu Girdiler: Ajanların geleceği vizyonu içerir. LLaVA gibi modellerin (Ollama tarafından desteklenir 24) ajanın ekranı “görmesine” nasıl izin verebileceğine, Open Interpreter’ın kod tabanlı yaklaşımı ile Simular’ın GUI tabanlı yaklaşımı arasındaki boşluğu nasıl kapatabileceğine kısaca değinilebilir.
  • “01” Tarzı Bir Mimariye Evrilme: Proje olgunlaştıkça, monolitik betikten daha sağlam bir istemci-sunucu mimarisine geçişin doğal ve gerekli bir evrim olacağı fikri yinelenecektir.