Takip et

Chat with My Digital Twin: How I Built a Personal Website With a Local AI Chatbot!

Geleneksel, statik web sitelerinin ötesine geçmeye hazır mısınız? Bu makale, kişisel web sitenize yerel bir yapay zeka sohbet botu entegre ederek dijital ikizinizi nasıl oluşturacağınızı adım adım açıklıyor. Böylece ziyaretçilerinizle daha önce hiç olmadığı kadar etkileşim kurabilir, veri gizliliğini koruyabilir ve sınırsız kişiselleştirme imkanları elde edebilirsiniz.

Günümüz dijital dünyasında, kişisel bir web sitesi sadece bir kartvizit olmaktan çok daha fazlasını ifade ediyor. Kendinizi ifade ettiğiniz, projelerinizi sergilediğiniz ve potansiyel işverenler veya müşterilerle bağlantı kurduğunuz bir platform. Ancak, birçok web sitesi hâlâ tek yönlü bir iletişim sunuyor: Siz içerik paylaşırsınız, ziyaretçileriniz pasif bir şekilde tüketir. Peki ya web siteniz, ziyaretçilerinizin sorularına anında yanıt verebilen, sizin hakkınızda kapsamlı bilgi sağlayabilen ve hatta kişiliğinizi yansıtabilen akıllı bir asistan barındırsa nasıl olurdu?

İşte tam da bu noktada, “dijital ikiz” konsepti devreye giriyor. Kendi kişisel web sitenize entegre edeceğiniz yerel bir yapay zeka sohbet botu, sizin dijital yansımanız gibi işlev görerek ziyaretçilerinizle dinamik ve etkileşimli bir deneyim sunabilir. Bu sadece bir “SSS botu” olmaktan öteye geçer; bot, sizin yazılarınızdan, projelerinizden, ilgi alanlarınızdan ve hatta kariyer geçmişinizden beslenerek kişiselleştirilmiş ve bağlama duyarlı yanıtlar üretebilir. Bu sayede, ziyaretçileriniz sizinle ilgili merak ettikleri her şeyi anında öğrenebilir, karmaşık sorular sorabilir ve hatta potansiyel işbirlikleri hakkında daha derinlemesine bilgi edinebilirler.

Böylesine bir etkileşim, sadece kullanıcı deneyimini zenginleştirmekle kalmaz, aynı zamanda kişisel markanızı da güçlendirir. Sizi diğerlerinden ayıran benzersiz bir özellik sunar ve ziyaretçilerinizin sitenizde daha uzun süre kalmasını sağlar. Ayrıca, özellikle veri gizliliği ve güvenlik konularının giderek daha fazla önem kazandığı günümüzde, verilerinizin sunucularınızda kalmasını sağlayan yerel bir AI çözümü kullanmak, hem sizin hem de ziyaretçileriniz için ek bir güven katmanı oluşturur. Bulut tabanlı çözümlerin aksine, yerel AI botunuz internet bağlantısı olmasa bile çalışabilir ve hassas bilgilerinizin üçüncü taraf sunucularına gönderilme riskini ortadan kaldırır. Bu makale boyunca, bu heyecan verici vizyonu gerçeğe dönüştürmek için adım adım bir yol haritası sunacağız.

Lokal Yapay Zeka Sohbet Botu Nedir ve Neden Tercih Etmeliyiz?

Yapay zeka (AI) dünyasında, sohbet botları genellikle bulut tabanlı hizmetler aracılığıyla sunulur. Google Bard (şimdi Gemini), OpenAI’nin ChatGPT’si gibi popüler örnekler, güçlü sunucuların ve devasa veri merkezlerinin gücünü kullanarak karmaşık dil modellerini (LLM’ler) çalıştırır. Peki, “lokal yapay zeka sohbet botu” ne anlama geliyor ve neden bu tür bir çözümü kişisel web siteniz için tercih etmelisiniz?

Lokal yapay zeka, bir yapay zeka modelinin (bu durumda bir LLM’in) doğrudan sizin kendi bilgisayarınızda veya sunucunuzda çalıştırılması anlamına gelir. Yani, modelin kendisi ve üzerinde çalıştığı veriler, sizin kontrolünüz altındaki bir ortamda bulunur. Bu, bulut tabanlı çözümlerde olduğu gibi her sorgunun veya verinin harici bir API’ye gönderilmesine gerek kalmadan, tüm işlemenin yerel olarak gerçekleştirildiği anlamına gelir. Bu yaklaşımın sunduğu avantajlar, özellikle kişisel bir web sitesi bağlamında oldukça çarpıcıdır.

Öncelikle ve belki de en önemlisi, gizlilik ve veri güvenliğidir. Kişisel web sitenizde kendinizle ilgili bilgileri içeren bir bot çalıştırdığınızda, bu verilerin üçüncü taraf bir bulut sağlayıcısıyla paylaşılmasını istemeyebilirsiniz. Yerel bir AI botu ile tüm verileriniz ve etkileşimleriniz kendi sunucunuzda kalır. Bu, hassas bilgilerinizin korunması açısından büyük bir avantaj sağlar. İkincisi, maliyet etkinliğidir. Bulut tabanlı AI hizmetleri genellikle kullanım başına ücretlendirilir. Özellikle yoğun kullanıma sahipseniz bu maliyetler hızla artabilir. Yerel bir çözümde ise, başlangıçtaki donanım (eğer mevcut değilse) ve kurulum maliyetleri dışında, genellikle ek bir “kullanım” ücreti ödemezsiniz.

Uzman İpucu: Lokal AI modellerini çalıştırmak için GPU’ya sahip olmak idealdir, ancak Ollama gibi araçlar CPU üzerinde de şaşırtıcı derecede iyi performans gösterebilir. Başlangıç için güçlü bir CPU bile yeterli olabilir.

Üçüncüsü, özelleştirme ve kontrol. Yerel bir ortamda çalıştığınız için, seçtiğiniz LLM modelini tam olarak kendi ihtiyaçlarınıza göre ayarlayabilir, özel veri kümeleriyle (sizin biyografiniz, projeleriniz, makaleleriniz vb.) besleyebilir ve hatta modelin davranışını ince ayar (fine-tuning) yapabilirsiniz. Bu, botunuzun gerçekten sizin “dijital ikiziniz” olmasını sağlar. Son olarak, düşük gecikme süresi ve çevrimdışı çalışma yeteneği vardır. Sorgularınızın bulut sunucularına gidip gelmesini beklemek yerine, işlemler doğrudan yerel olarak gerçekleştiği için yanıt süreleri çok daha hızlı olabilir. Ayrıca, internet bağlantınızın kesilmesi durumunda bile (eğer sunucu yerel ağınızdaysa), botunuz çalışmaya devam edebilir.

Yerel AI botu oluşturmak için kullanacağımız temel araçlardan biri Ollama’dır. Ollama, çeşitli açık kaynaklı LLM’leri (Mistral, Llama 3, Gemma gibi) kendi makinenizde kolayca çalıştırmanızı sağlayan kullanıcı dostu bir platformdur. Retrieval Augmented Generation (RAG) mimarisi ise, botun kişisel verilerinizden en doğru ve alakalı bilgileri çekerek yanıtlar üretmesini sağlayan anahtar bir tekniktir. Bu sayede model, “ezberden” yanıt vermek yerine, sizin sağladığınız belgeleri okuyarak cevaplar üretir, bu da halüsinasyon riskini azaltır ve botun güvenilirliğini artırır. Tüm bu avantajlar göz önüne alındığında, kişisel web siteniz için yerel bir AI sohbet botu entegrasyonu, hem teknik yetkinliğinizi sergilemek hem de ziyaretçilerinize benzersiz bir deneyim sunmak için mükemmel bir seçenektir.

Kişisel Web Sitesi Altyapısını Nasıl Kurarız? (Front-end ve Back-end Temelleri)

Bir yapay zeka sohbet botunu barındıracak sağlam bir kişisel web sitesi inşa etmek, hem ön yüz (front-end) hem de arka yüz (back-end) geliştirme becerilerini gerektirir. Bu bölümde, web sitenizin temel altyapısını nasıl oluşturacağınızı, mobil uyumluluğu nasıl sağlayacağınızı ve AI botunuzla etkileşim kuracak bir yapı taşıyıcısını nasıl kuracağınızı adım adım inceleyeceğiz. Amacımız, hem görsel olarak çekici hem de fonksiyonel bir platform oluşturmaktır.

Front-end (Ön Yüz) Geliştirme: Ziyaretçilerinizin doğrudan etkileşim kurduğu kısımdır. HTML, web sayfasının yapısını tanımlar; CSS, sitenizin görünümünü ve stilini kontrol eder; JavaScript ise dinamik ve etkileşimli özellikler ekler. Modern web geliştirme pratiklerinde, React, Vue veya Svelte gibi kütüphaneler ve framework’ler sıklıkla tercih edilse de, bu proje için temel HTML, CSS ve JavaScript bilgisi yeterli olacaktır. Sohbet botunun arayüzü, basit bir metin giriş alanı ve mesajları görüntüleyecek bir konteynerden oluşacaktır.

Mobil uyumlu bir tasarım (responsive design) günümüz web siteleri için olmazsa olmazdır. Ziyaretçilerinizin büyük bir kısmı sitenize mobil cihazlardan erişecektir, bu nedenle sitenizin farklı ekran boyutlarına ve cihazlara sorunsuz bir şekilde uyum sağlaması kritik öneme sahiptir. Bunu sağlamak için CSS’in @media kurallarını kullanacağız.





    
    
    Dijital İkizimle Sohbet Et
    


    

Dijital İkizinizle Sohbet Edin!

Merhaba! Ben [Adınız]'ın dijital ikiziyim. Bana onun hakkında her şeyi sorabilirsiniz.

Back-end (Arka Yüz) Geliştirme: Arka yüz, web sitesinin sunucu tarafında çalışan ve AI botunuzla iletişimi yönetecek kısımdır. Front-end'den gelen istekleri alır, bunları yerel AI modelinize iletir ve botun yanıtlarını front-end'e geri gönderir. Bu proje için Node.js ve Express.js ikilisi oldukça uygundur. Python ile Flask veya Django da tercih edilebilir ancak Node.js, JavaScript'i hem ön hem de arka yüzde kullanabilmenizi sağlayarak geliştirme sürecini basitleştirebilir.


// app.js (Node.js/Express)
const express = require('express');
const cors = require('cors'); // Farklı kaynaklardan istekleri kabul etmek için
const fetch = require('node-fetch'); // Ollama API'sine istek atmak için

const app = express();
const port = 3000;

app.use(cors());
app.use(express.json()); // JSON istek gövdelerini ayrıştırmak için

// AI botu ile iletişim kuracak endpoint
app.post('/api/chat', async (req, res) => {
    const userMessage = req.body.message;
    console.log(Kullanıcı mesajı: ${userMessage});

    try {
        // Ollama API'sine istek gönderme
        const ollamaResponse = await fetch('http://localhost:11434/api/generate', { // Ollama'nın varsayılan adresi
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                model: 'llama3', // Kullandığınız modelin adı
                prompt: userMessage,
                stream: false, // Yanıtı tek seferde al
            }),
        });

        if (!ollamaResponse.ok) {
            throw new Error(Ollama API hatası: ${ollamaResponse.status} - ${ollamaResponse.statusText});
        }

        const data = await ollamaResponse.json();
        const botResponse = data.response; // Ollama'dan gelen yanıt

        console.log(Bot yanıtı: ${botResponse});
        res.json({ response: botResponse });

    } catch (error) {
        console.error('Sohbet hatası:', error);
        res.status(500).json({ error: 'Sohbet botu ile iletişimde bir hata oluştu.' });
    }
});

app.listen(port, () => {
    console.log(Arka uç sunucusu http://localhost:${port} adresinde çalışıyor);
});
    

Bu temel yapılandırma ile front-end'iniz HTML, CSS ve JavaScript kullanarak görsel arayüzü sunarken, back-end'iniz Node.js ve Express ile front-end'den gelen istekleri işleyip Ollama ile iletişim kuracaktır. Mobil uyumluluk için eklediğimiz CSS media query'leri, sitenizin farklı cihazlarda da estetik ve işlevsel kalmasını sağlayacaktır. Şimdi, bu altyapının üzerine AI botumuzu nasıl inşa edeceğimize odaklanabiliriz.

Lokal AI Ortamını Adım Adım Nasıl Oluştururuz? (Ollama ve Model Seçimi)

Kişisel web sitenize entegre edeceğimiz dijital ikiz botunun kalbi, yerel olarak çalışacak bir Büyük Dil Modeli (LLM) olacaktır. Bu bölümde, açık kaynaklı LLM'leri kendi makinemizde kolayca çalıştırmamızı sağlayan Ollama platformunu nasıl kuracağımızı ve web sitemize entegre etmek için uygun bir AI modelini nasıl seçeceğimizi adım adım ele alacağız.

1. Ollama Kurulumu: Ollama, macOS, Linux ve Windows için tek bir komutla kurulabilen, kullanımı son derece basit bir araçtır. Ziyaretçilerinizin sorgularını işleyecek olan bu yerel sunucuyu kurarak başlıyoruz.

  • İndirme: Ollama'nın resmi web sitesine (ollama.com) gidin ve işletim sisteminize uygun kurulum dosyasını indirin.
  • Kurulum: İndirdiğiniz dosyayı çalıştırın ve adımları takip edin. Kurulum tamamlandığında, Ollama arka planda bir hizmet olarak çalışmaya başlayacaktır.
  • Doğrulama: Terminalinizi (veya Komut İstemi'ni) açın ve ollama run llama3 komutunu çalıştırın. Bu komut, Llama 3 modelini indirip çalıştırmayı deneyecektir. Eğer model daha önce indirilmediyse, otomatik olarak indirilecektir (bu biraz zaman alabilir). Model indikten sonra, sizinle sohbet etmeye hazır olacaktır. Bu, Ollama'nın düzgün çalıştığının bir göstergesidir.

2. AI Model Seçimi: Ollama, birçok farklı açık kaynaklı LLM'i destekler. "Dijital ikiz" amacımız için doğru modeli seçmek önemlidir. Model seçimi yaparken dikkate almanız gereken bazı faktörler şunlardır:

  • Boyut ve Performans: Daha küçük modeller (örn. Mistral 7B, Llama 3 8B), daha hızlı yanıt süreleri sunar ve daha az sistem kaynağı tüketir. Ancak, daha büyük modeller (örn. Llama 3 70B) genellikle daha yeteneklidir ve daha karmaşık sorgulara daha iyi yanıtlar verebilir. Başlangıç için, orta boyutlu ve dengeli bir model (örneğin Llama 3 8B veya Mistral) iyi bir seçim olacaktır.
  • Dil Desteği: Eğer botunuzun Türkçe yanıtlar vermesini istiyorsanız, Türkçe dilinde iyi performans gösteren bir model seçmelisiniz. Çoğu modern LLM çok dilli olsa da, bazıları belirli dillerde daha yeteneklidir.
  • Topluluk Desteği: Geniş bir topluluğa sahip modeller, genellikle daha iyi belgelendirmeye ve daha fazla kaynağa sahiptir.

Model indirmek için terminalde şu komutu kullanabilirsiniz:


ollama pull llama3       // Veya ollama pull mistral
    

Bu komut, seçtiğiniz modeli Ollama kütüphanesine indirecektir. Artık modeliniz yerel olarak çalışmaya hazır.

Uzman İpucu: Ollama modelleri, RAM ve disk alanı tüketir. Sisteminizin kapasitesine uygun bir model seçtiğinizden emin olun. Daha küçük "quantized" (nicelendirilmiş) modeller bile şaşırtıcı derecede iyi performans gösterebilir.

3. Retrieval Augmented Generation (RAG) için Veri Hazırlığı: Botunuzun gerçekten "dijital ikiziniz" olabilmesi için, sizin hakkınızdaki spesifik bilgilerle donatılması gerekir. Bu, RAG mimarisi ile sağlanır. Temel olarak, bot, sizin sağladığınız belgeleri (biyografiniz, projelerinizin açıklamaları, makaleleriniz, blog yazılarınız vb.) okuyarak gelen sorgulara yanıt verir.

  • Veri Toplama: Kendinizle ilgili tüm bilgileri (özgeçmiş, blog yazıları, GitHub proje açıklamaları, hakkınızda sayfası içerikleri) toplayın.
  • Veri Yapılandırma: Bu verileri okunabilir ve işlenebilir formatlara dönüştürün. Markdown veya düz metin dosyaları idealdir. Her bir belgeyi mantıksal "parçalara" (chunks) ayırmak, RAG sürecini daha etkili hale getirir. Örneğin, her paragraf veya kısa bölüm bir parça olabilir.
  • Vektörleme ve Depolama (İleri Seviye): En gelişmiş RAG sistemleri, bu metin parçalarını "embedding" adı verilen sayısal vektörlere dönüştürür ve bunları bir vektör veritabanında saklar (örneğin ChromaDB, Faiss). Bir sorgu geldiğinde, bu sorgu da vektöre dönüştürülür ve veritabanında en benzer vektörler (yani en alakalı metin parçaları) aranır. Bu parçalar daha sonra LLM'e bağlam olarak sunulur. Başlangıç için, basit bir metin dosyası üzerinden anahtar kelime aramaları yaparak bile bir RAG benzeri sistem kurabilirsiniz, ancak daha profesyonel bir yaklaşım için vektör veritabanlarını araştırmanız önerilir.

Bu adımlarla, yerel AI botunuzun temelini atmış olursunuz. Ollama ile modeliniz hazır, ve RAG için kişisel verilerinizi toplamaya başladınız. Artık web sitemizle bu AI botunu nasıl konuşturacağımıza geçebiliriz.

Web Sitemizi AI Botumuzla Nasıl Konuştururuz? (API Entegrasyonu ve Veri Yönetimi)

Önceki bölümlerde front-end ve back-end altyapımızı kurduk ve Ollama ile yerel AI modelimizi hazırladık. Şimdi sıra, bu iki dünya arasında köprü kurmaya, yani web sitemizin kullanıcı arayüzü ile yerel AI botumuzu konuşturmaya geldi. Bu entegrasyon, back-end'imizdeki API aracılığıyla gerçekleşecek ve kullanıcı deneyimini zenginleştirmek için JavaScript'i aktif olarak kullanacağız.

1. Front-end'den Back-end'e İletişim: Kullanıcı, web sitesindeki sohbet giriş alanına bir mesaj yazdığında ve "Gönder" düğmesine tıkladığında, bu mesajın back-end'imize iletilmesi gerekir. Bu işlem için JavaScript'in Fetch API'sini veya Axios gibi bir kütüphaneyi kullanabiliriz. Fetch API, modern tarayıcılarda dahili olarak bulunur ve sunucuya HTTP istekleri göndermek için kullanılır.


// script.js (HTML dosyanızdaki