Ollama ile RAG Sistemi Kurma: Kendi Dokümanlarınızla Yerel Yapay Zeka Asistanı

Ollama ile RAG Sistemi Kurma: Kendi Dokümanlarınızla Yerel Yapay Zeka Asistanı

Verilerinizin Gücüyle Yerel Bir Yapay Zeka İnşa Edin

Günümüzde yapay zeka modelleri muazzam bir bilgi birikimine sahip olsa da, şirketlerin veya bireylerin kendi özel dokümanlarına doğrudan erişemezler. Hassas verilerinizi bulut tabanlı sistemlere göndermek ise her zaman güvenli bir seçenek değildir. İşte tam bu noktada, verilerinizi tamamen kendi bilgisayarınızda tutarak yapay zekayı özelleştirmenizi sağlayan Ollama ile RAG (Retrieval-Augmented Generation) sistemi devreye giriyor. Bu rehberde, tek bir satır veriyi dışarı sızdırmadan kendi PDF, Word veya metin belgelerinizle konuşabilen yerel bir yapay zeka asistanını nasıl kuracağınızı adım adım öğreneceksiniz.

RAG (Retrieval-Augmented Generation) Nedir?

Büyük dil modelleri (LLM), eğitim verilerinde yer almayan güncel veya özel bilgilere sahip değildir. RAG, bu sorunu çözmek için geliştirilmiş bir mimaridir. Bir kullanıcı soru sorduğunda, sistem önce eldeki özel doküman havuzunda arama yapar, ilgili bilgi parçalarını bulur ve bu bilgileri sorunun yanına ekleyerek dil modeline gönderir. Model, kendisine sunulan bu taze ve doğru bağlamı kullanarak yanıt üretir. Böylece hem uydurma (hallucination) riski minimuma iner hem de model tamamen sizin verilerinizle beslenmiş olur.

Neden Ollama ve Yerel Sistemler?

Ollama, büyük dil modellerini yerel bilgisayarınızda çalıştırmanızı sağlayan açık kaynaklı ve son derece güçlü bir araçtır. Llama 3, Mistral, Phi-3 gibi popüler modelleri bilgisayarınızın donanım gücünü kullanarak çalıştırabilirsiniz. Ollama ile RAG sistemi kurmanın en büyük avantajları şunlardır:

  • Maksimum Veri Gizliliği: Dokümanlarınız internete veya üçüncü taraf sunuculara asla yüklenmez.
  • Sıfır Maliyet: OpenAI veya Anthropic gibi servislerin API ücretlerinden kurtulursunuz.
  • Çevrimdışı Çalışabilirlik: İnternet bağlantınız olmasa bile asistanınızı kullanmaya devam edebilirsiniz.
  • Adım Adım Ollama ile RAG Sistemi Kurulumu

    Yerel RAG sistemimizi inşa etmek için popüler bir yapay zeka kütüphanesi olan LangChain ve vektör veri tabanı olarak ChromaDB kullanacağız.

    1. Adım: Ollama Kurulumu ve Model Seçimi

    İlk olarak Ollama'yı bilgisayarınıza indirip kurmanız gerekiyor. Resmi web sitesinden işletim sisteminize uygun sürümü indirdikten sonra terminal veya komut satırını açarak şu komutla istediğiniz bir modeli indirin:

    ollama run llama3
    

    Bu komut, Llama 3 modelini yerel bilgisayarınıza indirecek ve arka planda bir API sunucusu başlatacaktır.

    2. Adım: Gerekli Python Kütüphanelerinin Yüklenmesi

    Sistemimizi kodlamak için Python ortamına ihtiyacımız var. Terminalde yeni bir sanal ortam oluşturup şu kütüphaneleri yükleyin:

    pip install langchain langchain-community chromadb sentence-transformers pypdf
    

    Bu kütüphaneler; doküman yükleme, metinleri parçalama, vektörleştirme (embedding) ve Ollama ile iletişim kurma süreçlerini yönetmemizi sağlayacaktır.

    3. Adım: RAG Kodunun Yazılması

    Şimdi, yerel klasörünüzdeki PDF dosyalarını okup analiz edecek Python betiğini hazırlayalım. Aşağıdaki kod bloğu, belirtilen PDF dosyasını okur, anlamlı parçalara böler, vektör tabanına kaydeder ve Ollama üzerinden sorduğunuz soruları yanıtlar.

    from langchain_community.document_loaders import PyPDFLoader
    from langchain_text_splitters import RecursiveCharacterTextSplitter
    from langchain_community.embeddings import HuggingFaceEmbeddings
    from langchain_community.vectorstores import Chroma
    from langchain_community.llms import Ollama
    from langchain.chains import RetrievalQA
    
    # 1. Dokümanı Yükleme
    loader = PyPDFLoader("sirket_politikasi.pdf")
    documents = loader.load()
    
    # 2. Metni Küçük Parçalara Bölme
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
    texts = text_splitter.split_documents(documents)
    
    # 3. Embedding Modelini Tanımlama (Yerel)
    embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
    
    # 4. Vektör Veri Tabanı Oluşturma (ChromaDB)
    vector_store = Chroma.from_documents(texts, embeddings)
    
    # 5. Ollama ile Bağlantı Kurma
    llm = Ollama(model="llama3")
    
    # 6. RAG Zincirini (Chain) Oluşturma
    qa_chain = RetrievalQA.from_chain_type(
        llm=llm,
        retriever=vector_store.as_retriever(search_kwargs={"k": 3}),
        return_source_documents=True
    )
    
    # 7. Soru Sorma
    query = "Şirketimizin yıllık izin politikası nedir?"
    result = qa_chain.invoke({"query": query})
    
    print("Cevap:", result["result"])
    

    Kodun Çalışma Mantığı ve Detaylar

    Yukarıdaki kodda gerçekleştirdiğimiz işlemler yerel RAG mimarisinin temel taşlarını oluşturur:

  • Metin Bölümleme (Chunking): Büyük belgeleri tek seferde modele göndermek bağlam sınırını aşabilir. Bu yüzden metinleri 500 karakterlik küçük parçalara ayırıyoruz.
  • Embedding (Vektörleştirme): Kelimeleri ve cümleleri yapay zekanın anlayabileceği sayısal vektörlere dönüştürüyoruz. Bunun için tamamen yerel çalışan ücretsiz all-MiniLM-L6-v2 modelini kullandık.
  • Retriever (Bilgi Getirici): Kullanıcı bir soru sorduğunda, ChromaDB veri tabanında bu soruya en yakın anlamdaki 3 metin parçasını bulup getirir.
  • Ollama Entegrasyonu: Bulunan metin parçaları Llama 3 modeline gönderilir ve model sadece bu verilere dayanarak mantıklı bir Türkçe cevap üretir.
  • Performansı Artırmak İçin İpuçları

    Yerel sisteminizin daha hızlı ve doğru çalışması için şu optimizasyonları yapabilirsiniz:

  • Donanım Hızlandırma: Ollama'nın GPU (ekran kartı) desteğinden tam yararlandığından emin olun. Nvidia CUDA veya Apple Silicon (M1/M2/M3) işlemciler yerel LLM performansını katbekat artırır.
  • Daha Küçük Modeller: Eğer bilgisayarınızın RAM kapasitesi düşükse (8 GB veya altı), Llama 3 yerine 3.8 milyar parametreli Phi-3 veya Mistral modellerini tercih edebilirsiniz.
  • Gelişmiş Metin Bölme: Dokümanlarınızın yapısına göre chunk_size ve chunk_overlap değerlerini optimize edin. Tablolar ve listeler içeren belgeler için daha büyük parça boyutları gerekebilir.

Sonuç ve Gelecek Potansiyeli

Kendi bilgisayarınızda çalışan bir yapay zeka asistanı kurmak, veri bağımsızlığı yolunda atılmış devasa bir adımdır. Ollama ile RAG entegrasyonu sayesinde, internete bağlı olmadan, tamamen gizli ve yüksek performanslı bir bilgi yönetim sistemi inşa edebilirsiniz. Bu sistemi bir web arayüzüne (örneğin Streamlit veya Gradio kullanarak) bağlayarak tüm ekibinizin kullanımına sunabilir, kurumsal verimliliğinizi yeni bir seviyeye taşıyabilirsiniz.

Sıkça Sorulan Sorular

Ollama ile RAG kurmak için internet bağlantısı gerekir mi?
Sadece başlangıçta Ollama uygulamasını, dil modelini (örneğin Llama 3) ve gerekli Python kütüphanelerini indirmek için internet bağlantısı gerekir. Kurulum tamamlandıktan sonra tüm RAG sistemi tamamen internet olmadan, çevrimdışı çalışabilir.
Yerel RAG sistemi için ne kadar RAM ve donanım gerekir?
Minimum 8 GB RAM önerilir ancak 7B (7 milyar parametreli) modelleri akıcı çalıştırmak için en az 16 GB RAM ve harici bir ekran kartı (GPU) veya Apple Silicon işlemci (M serisi) tavsiye edilir.
RAG sisteminde hangi doküman formatlarını kullanabilirim?
LangChain yükleyicileri sayesinde PDF, TXT, DOCX, CSV, HTML ve hatta Markdown formatındaki dokümanları kolayca RAG sisteminize dahil edebilirsiniz.
WxDigitals
WxDigitals

WebTeknoloji.net editör ekibi; web geliştirme, SEO, hosting ve yapay zeka alanlarında üretilen içeriklerin araştırma, test ve yayın süreçlerini yürütür. Tüm incelemeler gerçek kullanım deneyimine, karşılaştırmalar ise resmi dokümantasyon ve güncel fiyatlandırma sayfalarına dayanır.

Bu içeriği faydalı bulduysanız…

Haftalık teknoloji & SEO rehberlerimize katılın, 38 maddelik Teknik SEO Kontrol Listesi PDF'ini hediye olarak hemen indirin.

Yorumlar (0)

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yazın