Dersler · Kodlama · orta · Tech With Tim

Python ile Yerel Bir AI Ajanı Nasıl Yapılır (Ollama, LangChain ve RAG)

Tech With Tim kanalının “How to Build a Local AI Agent With Python (Ollama, LangChain & RAG)” videosu 7 ders halinde: konunun anlatımı, ekrandaki kod, alıştırma terminalinde denenecek adımlar, çözümlü alıştırmalar ve cevabı videodaki ana götüren bir quiz.

7ders
8kod parçası
20alıştırma
22soru
28dk video
Derslere git →Şu an bütün dersler ücretsiz

Diğer dillerde: English · Español

Video İngilizce. YouTube oynatıcısında altyazıyı açıp Otomatik çevir → Türkçe seçebilirsin.

How to Build a Local AI Agent With Python (Ollama, LangChain & RAG), video by Tech With Tim▶ 28:08 · Tech With Tim
1234567
0:00videonun tamamına yayılmış 7 ders28:08

Neler yapabileceksin

  • Python sanal ortamını oluştur ve LangChain, Ollama ile Chroma bağımlılıklarını kur
  • Ollama üzerinden yerel bir LLM çalıştır ve bir LangChain prompt zinciriyle Python'dan çağır
  • Kullanıcı girdisini bir model zincirinden geçiren etkileşimli bir soru döngüsü oluştur
  • CSV satırlarını belgeler olarak, yerel bir gömme (embedding) modeli kullanarak kalıcı bir Chroma vektör deposuna göm
  • Modelin cevap vermeden önce, getirilen belgeleri prompt'a ekleyerek retrieval-augmented generation (RAG) uygula

Önce bilmen iyi olur

  • Fonksiyonlar, döngüler ve sözlükler dahil temel Python sözdizimi
  • Terminal ve komut satırını rahat kullanabilmek
  • VS Code'a ya da başka bir kod editörüne aşinalık
  • CSV dosyaları hakkında temel bir bilgi

Müfredat

7 ders

  1. 1

    Bitmiş yerel inceleme asistanının demosu

    0:00–2:012 dk video

    Bitmiş uygulamaya ilk bakışı yapacaksın: Bu, restoran incelemelerinden oluşan bir CSV dosyasını okuyarak sorulara cevap veren bir terminal programı. Tamamen kendi bilgisayarında çalışır, ücretli bir bulut hesabı gerekmez.

    2 kod2 adım3 alıştırma3 soru
  2. 2

    Proje klasörünü ve sanal ortamı kur

    2:01–4:333 dk video

    Bir proje klasörü oluşturacak, içinde izole bir Python sanal ortamı oluşturup etkinleştirecek ve ajanın ihtiyaç duyduğu kütüphaneleri kuracaksın. Bunu en başta yapmak, projenin paketlerini bilgisayarındaki diğer her şeyden ayrı tutar.

    1 kod6 adım2 alıştırma3 soru
  3. 3

    Ollama'yı kur ve bir sohbet modeli ile bir gömme (embedding) modeli indir

    4:33–7:033 dk video

    Ollama'yı kuracaksın; bu, yapay zekâ modellerini kendi bilgisayarında çalıştıran bir program. Sonra iki model indireceksin: bir sohbet modeli (llama3.2) ve bir gömme modeli (mxbai-embed-large). Koda başlamadan önce ikisinin de hazır olduğundan emin olacaksın.

    1 kod4 adım3 alıştırma4 soru
  4. 4

    Yerel bir modeli LangChain prompt zinciriyle çağır

    7:03–13:357 dk video

    Bu derste, Ollama aracılığıyla kendi bilgisayarında çalışan bir modele LangChain kullanarak bir Python betiği bağlayacaksın. Yer tutuculu bir prompt şablonu yazacak ve onu çağırabileceğin bir zincir hâlinde modele bağlayacaksın.

    1 kod6 adım3 alıştırma3 soru
  5. 5

    Etkileşimli bir soru döngüsü ekle

    13:35–14:501 dk video

    q yazana kadar kullanıcının soru sormaya devam edebilmesi için zinciri while True döngüsüne alacaksın. input(), break ve chain.invoke() komutlarının birlikte nasıl çalıştığını öğrenerek basit bir soru-cevap programı yapacaksın.

    1 kod6 adım3 alıştırma3 soru
  6. 6

    Load the CSV and build a persistent Chroma vector store

    14:50–23:259 dk video

    You will turn each row of a restaurant-reviews CSV into a Document, convert the text into vectors with a local Ollama embedding model, and store them in a persistent Chroma database that is built only once. You will also see why IDs, metadata and a "does the database already exist?" check matter.

    1 kod4 adım3 alıştırma3 soru
  7. 7

    Bir retriever oluştur ve RAG'i zincire bağla

    23:25–28:085 dk video

    Chroma vektör deposunu bir retriever'a dönüştürürsün; bu retriever, bir soru için en ilgili yorumları getirir. Ardından bu yorumları prompt'a aktarırsın, böylece yerel LLM kendi verilerini kullanarak yanıt verir.

    1 kod5 adım3 alıştırma3 soru

Ücretsiz önizleme · 1. dersin tamamı

Bitmiş yerel inceleme asistanının demosu

Bitmiş uygulamaya ilk bakışı yapacaksın: Bu, restoran incelemelerinden oluşan bir CSV dosyasını okuyarak sorulara cevap veren bir terminal programı. Tamamen kendi bilgisayarında çalışır, ücretli bir bulut hesabı gerekmez.

0:00 videoda 2:01 anına kadar

Alıştırma terminali

Dersin komutlarını yaz, boz ve nedenini gör.

Karalama defteri

Videonun yanında çiz ve yaz.

Fikir

Bu bölüm bir önizlemedir. Hiç kod yazılmadan önce video, neyi inşa ettiğini bilmen için bitmiş ürünü gösterir. Uygulama, komut satırından çalıştırılan küçük bir Python programıdır. Sana bir soru sorar, sahte pizza restoranı incelemelerinden oluşan bir dosyayı tarar ve bulduklarını kullanarak cevap verir.

Veriler realistic_restaurant_reviews.csv adlı bir CSV dosyasında duruyor. CSV, her satırın bir kayıt, virgüllerin ise sütunları ayırdığı düz bir metin tablosudur. Burada sütunlar Title, Date, Rating ve Review. Bir inceleme 'Şehrin en iyi pizzası' başlığını, bir tarihi, beşin üzerinden bir puanı ve pizzayı anlatan uzun bir metni içerebilir.

Uygulamanın arkasındaki fikir retrieval augmented generation, kısaca RAG. Program önce sorunla ilgili incelemeleri dosyadan getirir, sonra bunları cevabı yazan bir dil modeline verir. Model, bu restoran hakkında önceden hiçbir şey bilmek zorunda değildir; yalnızca aramanın bulduğu parçaları görür.

Araçların hepsi ücretsiz ve yerel olarak çalışır. Videoda, makinende bir dil modelini çalıştırmak için Ollama, parçaları birbirine bağlamak için LangChain, ilgili incelemeleri bulan bir vektör veritabanı olarak ChromaDB kullanılıyor. OpenAI hesabı ya da bulut hizmeti gerekmez.

Demoda kullanıcı 'pizzanın kalitesi nasıl?' diye soruyor. Ajan eşleşen incelemeleri getiriyor ve cevabın yalnızca incelemelerden zor puanlanabileceğini belirten bir sonuç yazıyor. Ardından kullanıcı 'vegan seçenek var mı?' diye soruyor ve ajan, bir incelemede geçen vegan pizzaya işaret ederek incelemenin meta verisini aktarıyor. Cevap dosyadaki incelemelere bağlıdır, dolayısıyla yalnızca veri kadar iyidir.

Ana noktalar

  • Bitmiş uygulama, yerel bir CSV dosyasındaki restoran incelemeleri hakkındaki soruları yanıtlar. 0:00
  • RAG, model cevap vermeden önce bir dosyadan ilgili bilgiyi getirip modele vermek demektir. 0:12
  • Her şey ücretsiz ve kendi bilgisayarında çalışır: OpenAI ya da bulut hesabı gerekmez. 0:24
  • Kullanılan araçlar: Ollama (yerel model), LangChain (parçaları bağlar) ve ChromaDB (vektör arama veritabanı). 0:36
  • Uygulama komut satırından python main.py ile çalıştırılır ve sen q yazana kadar soru sormaya devam eder. 0:59

Bilmen gereken kelimeler

CSV dosyası
Düz bir metin tablosu. Her satır bir kayıttır ve virgüller sütunları ayırır.
RAG (retrieval augmented generation)
Önce soruya uyan veri parçalarını bul, sonra bunları bir dil modeline ver ki model cevabı onlardan yazsın.
Dil modeli
Metin yazan bir program. Burada senin bilgisayarında çalışır.
Ollama
Bir dil modelini kendi makinende çalıştıran ücretsiz bir araç.
LangChain
Uygulamanın parçalarını, örneğin modeli ve veritabanını birbirine bağlayan bir Python kütüphanesi.
ChromaDB
Bir vektör veritabanı. Metni saklar, böylece bir soruya en uygun parçaları bulabilir.

Ekrandaki kod

realistic_restaurant_reviews.csv (ekranda ilk satırlar gösterilir)text
Title,Date,Rating,Review
Best pizza in town,2024-03-15,5,"The crust was perfectly crispy on the outside and chewy inside. Their signature pepperoni pizza had the perfect ratio of sauce to cheese, and the pepperoni curled up into little cups of deliciousness. Will definitely be back!"
Disappointed with service,2024-02-20,2,"While the pizza itself was decent, we waited over an hour for delivery despite being told it would be 30 minutes. When it finally arrived, it was barely warm. The flavors were good but the experience ruined it."

Satırları görmek için dosyayı herhangi bir metin düzenleyicide aç; bu bölüm için kod çalıştırman gerekmiyor.

Uygulamayı çalıştırmaktext
C:\Users\User\Desktop\Local Ai Agent>python main.py

--------------------
Ask your question here (q to quit):

Proje klasörünün içindeki bir terminalde python main.py yaz ve Enter'a bas.

Alıştırma terminalinde birlikte yap

  1. Bir terminal aç ve proje klasörüne geç (videoda masaüstündeki Local Ai Agent adlı bir klasör kullanılıyor).
    $ cd Desktop
    C:\Users\User>cd Desktop
    C:\Users\User\Desktop>
    Göreceğin: İstem artık Masaüstü klasörünü gösteriyor.
  2. Uygulamayı python main.py ile çalıştır. Video bunu bir önizleme olarak gösterir, bu yüzden dosyan henüz olmayabilir; bu adım bitmiş programın başladığında nasıl göründüğünü gösterir.
    $ python main.py
    --------------------
    Ask your question here (q to quit):
    Göreceğin: Program bir satır tire işareti yazdırır ve senin sorunu bekler.

Bilerek boz

Practice terminal
$ python main.py
python: can't open file 'main.py': [Errno 2] No such file or directory
Neden: Python yalnızca bulunduğun klasörde var olan bir dosyayı çalıştırabilir. main.py dosyasının kaydedildiği proje klasörüne cd ile geçtiğinden emin ol.
Practice terminal
$ cd Local Ai Agent
The system cannot find the path specified.
Neden: Boşluk içeren klasör adları tırnak içine alınmalıdır, bu yüzden cd "Local Ai Agent" kullan.

Dikkat

  • Bu uygulama genel amaçlı bir sohbet botu değil: cevaplarını dosyadaki incelemelerden verir, dolayısıyla incelemelerin kapsamadığı sorular zayıf cevaplar alır. 0:24
  • Yerel modeller senin kendi donanımında çalıştığı için cevaplar bir bulut hizmetine göre daha yavaş gelebilir. 0:59

Alıştırma

Açıkla Çözümü kontrol edildi

Kendi cümlelerinle, pizza incelemelerini örnek alarak retrieval augmented generation'ın ne anlama geldiğini açıkla.

Çözüm
  1. Retrieval (getirme): Soruyla eşleşen incelemeleri CSV'de bul; örneğin vegan geçen incelemeler gibi.
  2. Augmented generation (zenginleştirilmiş üretim): Bu incelemeleri dil modeline ver ki model cevabını onlara dayanarak yazsın.

RAG önce bir belgede soruyla ilgili parçaları arar (retrieval), sonra bu parçaları cevabı yazan bir dil modeline verir (generation). Örneğin vegan seçenekler sorulduğunda uygulama vegan yiyecekten bahseden incelemeleri bulur ve model cevabını onlara dayanarak verir.

Yap Çözümü kontrol edildi

Bir pizza yeri hakkında inceleme CSV'sine yeni bir satır yaz. Sütunlar Title, Date, Rating, Review bu sırayla olsun. Review metnini çift tırnak içine al.

İpucu

Örnek satırlara bak: virgülle ayrılmış dört değer var ve uzun metin, virgül içerdiği için tırnak içinde.

Çözüm
  1. Sütunlar Title, Date, Rating, Review olduğu için satırda virgülle ayrılmış dört değer olmalı.
  2. Önce kısa bir başlık yaz, sonra 2024-04-01 gibi bir tarih, ardından 1 ile 5 arasında bir puan.
  3. İnceleme metnini en sona koy ve metin virgül içerebileceği için çift tırnak içine al.

Örnek: Great vegan pizza,2024-04-01,4,"They had a vegan pizza with lots of vegetables, and the crust was lovely."

Açıkla Çözümü kontrol edildi

Her aracı görevine eşleştir: Ollama, LangChain, ChromaDB. Görevler: (a) parçaları birbirine bağlar, (b) dil modelini senin bilgisayarında çalıştırır, (c) soruyla ilgili incelemeleri bulur.

İpucu

Dersteki her aracın hangi işi yaptığı tarif edildiğini düşün.

Çözüm
  1. Ollama dil modelini yerel olarak çalıştırır.
  2. LangChain uygulamanın parçalarını birbirine bağlar.
  3. ChromaDB, ilgili incelemeleri bulan vektör veritabanıdır.

Ollama = (b), LangChain = (a), ChromaDB = (c).

Karalama defterinde

Karalama defterinde üç kutu çiz; etiketleri 'CSV yorumları', 'İlgili yorumlar' ve 'Model yanıtı' olsun ve kutular arasına oklar koy. Her okun altına, orada ne olduğunu anlatan bir cümle yaz.

Test

  1. Uygulama restoran hakkındaki soruları yanıtlamak için neyi kullanır?

    1. Yalnızca kendi yerleşik pizza bilgisini
    2. CSV dosyasından alınan ilgili yorumlar bir modele verilir
    3. Ücretli bir OpenAI bulut hesabı
    4. İnternette web araması
    Cevabı göster

    B. CSV dosyasından alınan ilgili yorumlar bir modele verilir · Uygulama CSV'den ilgili yorumları alır ve bunları yerel bir modele iletir (RAG).

    0:19 o anı izle
  2. Bu projede vektör arama veritabanı hangi araçtır?

    1. Ollama
    2. LangChain
    3. ChromaDB
    4. Sublime Text
    Cevabı göster

    C. ChromaDB · ChromaDB vektör veritabanıdır; Ollama modeli çalıştırır ve LangChain parçaları birbirine bağlar.

    0:08 o anı izle
  3. Uygulamadan nasıl çıkarsın?

    1. Ctrl+Alt+Delete tuşlarına bas
    2. Soru isteminde q yaz
    3. CSV dosyasına exit yaz
    4. Sublime Text penceresini kapat
    Cevabı göster

    B. Soru isteminde q yaz · İstemde 'q to quit' yazıyor, yani q yazıp programı sonlandırırsın.

    1:18 o anı izle

1. dersi videoyla aç →

Beyond, Tech With Tim kanalının “How to Build a Local AI Agent With Python (Ollama, LangChain & RAG)” videosundan yaptı. Video YouTube’un kendi oynatıcısında oynar. YouTube’da izle · Bütün dersler