Dersler · Kodlama · orta · Tech With Tim

[2] 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ı
17alıştırma
21soru
28dk video
Derslere git →1. ders ücretsiz · Beyond Pass hepsini açar

Diğer dillerde: English

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

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

Önce bilmen iyi olur

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

Müfredat

7 ders

  1. 1

    [21] Bitmiş yerel inceleme asistanının demosu Ücretsiz

    0:00–2:012 dk video

    [22] Bitmiş uygulamaya ilk bakışını atıyorsun: CSV dosyasındaki restoran incelemelerini okuyarak soruları yanıtlayan bir terminal programı. Tamamen kendi bilgisayarında çalışır, ücretli bir bulut hesabı gerektirmez.

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

    [68] Proje klasörünü ve sanal ortamı kur Beyond Pass

    2:01–4:333 dk video

    [69] Bir proje klasörü oluşturacak, içinde yalıtılmış bir Python sanal ortamı kuracak, onu etkinleştirecek ve ajanın ihtiyaç duyduğu kütüphaneleri kuracaksın. Bunu baştan yapmak, projenin paketlerini bilgisayarındaki diğer her şeyden ayrı tutar.

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

    Install Ollama and pull a chat model and an embedding model Beyond Pass

    4:33–7:033 dk video

    You install Ollama, which runs AI models on your own computer, and then download two models: a chat model (llama3.2) and an embedding model (mxbai-embed-large). You confirm both are available before writing any code.

    1 kod4 adım2 alıştırma3 soru
  4. 4

    [47] Yerel bir modeli LangChain istem zinciriyle çağır Beyond Pass

    7:03–13:357 dk video

    [48] Bu derste, LangChain kullanarak Ollama üzerinden kendi bilgisayarında çalışan bir modele bağlanan bir Python betiği yazacaksın. Yer tutuculu bir istem şablonu yazacak ve onu modelle birleştirerek çağırabileceğin bir zincir oluşturacaksın.

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

    [44] Etkileşimli bir soru döngüsü ekle Beyond Pass

    13:35–14:501 dk video

    [45] Kullanıcı q yazana kadar soru sorabilmesi için sohbet zincirini bir while True döngüsüne alacaksın. input(), break ve chain.invoke() fonksiyonlarının birlikte nasıl çalıştığını öğreneceksin ve böylece basit bir soru-cevap programı yapacaksın.

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

    CSV'yi yükle ve kalıcı bir Chroma vektör deposu oluştur Beyond Pass

    14:50–23:259 dk video

    Restoran yorumları CSV'sinin her satırını bir Document'a çevireceksin, metni yerel bir Ollama gömme (embedding) modeliyle vektörlere dönüştüreceksin ve kalıcı bir Chroma veritabanına yalnızca bir kez kuracak şekilde kaydedeceksin. Ayrıca ID'lerin, metadata'nın ve "veritabanı zaten var mı?" kontrolünün neden önemli olduğunu göreceksin.

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

    [30] Bir retriever oluştur ve RAG'i zincire bağla Beyond Pass

    23:25–28:085 dk video

    [31] Chroma vektör deposunu, bir soru için en ilgili yorumları getiren bir retriever'a dönüştürürsün. Sonra 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ı

[21] Bitmiş yerel inceleme asistanının demosu

[22] Bitmiş uygulamaya ilk bakışını atıyorsun: CSV dosyasındaki restoran incelemelerini okuyarak soruları yanıtlayan bir terminal programı. Tamamen kendi bilgisayarında çalışır, ücretli bir bulut hesabı gerektirmez.

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

[23] Bu bölüm bir önizlemedir. Henüz hiç kod yazılmadan, videoda bitmiş ürün gösterilir; böylece neyi inşa ettiğini baştan bilirsin. 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 dosyaya bakar ve bulduklarını kullanarak yanıt verir.

[24] Veriler realistic_restaurant_reviews.csv adlı bir CSV dosyasında bulunur. CSV, her satırın bir kayıt, sütunların ise virgüllerle ayrıldığı düz metin tablosudur. Burada sütunlar Title, Date, Rating ve Review'dur. Bir inceleme 'Şehirdeki en iyi pizza' başlığını, bir tarihi, beşe göre bir puanı ve pizzayı anlatan uzun bir metni içerebilir.

[25] Uygulamanın arkasındaki fikir, genellikle RAG olarak kısaltılan retrieval augmented generation (geri getirmeyle desteklenmiş üretim). Program önce sorunla ilgili incelemeleri dosyadan bulup getirir, sonra bunları cevabı yazan bir dil modeline verir. Model bu restoran hakkında önceden bir şey bilmek zorunda değildir; yalnızca aramanın bulduğu parçaları görür.

[26] Kullanılan araçların hepsi ücretsizdir ve yerel olarak çalışır. Videoda, bilgisayarında bir dil modelini çalıştırmak için Ollama, parçaları birbirine bağlamak için LangChain ve ilgili incelemeleri bulan bir vektör veritabanı olarak ChromaDB kullanılıyor. OpenAI hesabı ya da bulut hizmeti gerekmez.

[27] Demoda kullanıcı 'pizzanın kalitesi nasıl?' diye sorar. Ajan eşleşen incelemeleri çeker ve cevabın yalnızca incelemelerden zor puanlanabileceğini belirten bir sonuç yazar. Ardından kullanıcı 'vegan seçenek var mı?' diye sorar ve ajan, bir incelemede geçen vegan pizzaya işaret eder ve incelemenin meta verisini alıntılar. Cevap dosyadaki incelemelere bağlıdır; bu yüzden yalnızca veri kadar iyidir.

Ana noktalar

  • [28] Bitmiş uygulama, yerel bir CSV dosyasındaki restoran incelemeleri hakkındaki soruları yanıtlar. 0:00
  • [29] RAG, bir dosyadan ilgili bilgiyi geri getirip modele cevaplamadan önce vermek demektir. 0:12
  • [30] Her şey ücretsizdir ve kendi bilgisayarında çalışır: OpenAI ya da bulut hesabı gerekmez. 0:24
  • [31] Kullanılan araçlar: Ollama (yerel model), LangChain (parçaları birbirine bağlar) ve ChromaDB (vektör arama veritabanı). 0:36
  • [32] 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

Ekrandaki kod

[33] realistic_restaurant_reviews.csv (ekranda gösterilen ilk satırlar)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."

[34] Satırları görmek için dosyayı herhangi bir metin editöründe aç; bu bölümde çalıştırılacak kod yok.

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

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

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

Alıştırma terminalinde birlikte yap

  1. [37] Bir terminal aç ve proje klasörüne geç (videoda Masaüstünde Local Ai Agent adlı bir klasör kullanılıyor).
    $ cd Desktop
    C:\Users\User>cd Desktop
    C:\Users\User\Desktop>
    Göreceğin: [38] Komut satırı artık Masaüstü klasörünü gösteriyor.
  2. [39] Uygulamayı python main.py ile çalıştır. Video bir önizleme olduğu için dosyaya henüz sahip olmayabilirsin; bu adım, bitmiş programın başlangıçta nasıl göründüğünü gösterir.
    $ python main.py
    --------------------
    Ask your question here (q to quit):
    Göreceğin: [40] Program bir satır tire işareti yazdırır ve soruni bekler.

Bilerek boz

Practice terminal
$ python main.py
python: can't open file 'main.py': [Errno 2] No such file or directory
Neden: [41] Python yalnızca bulunduğun klasördeki var olan dosyaları ç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: [42] Boşluk içeren klasör adlarını tırnak içine almalısın, bu yüzden cd "Local Ai Agent" kullan.

Dikkat

  • [43] Uygulama genel amaçlı bir sohbet botu değildir: cevapları dosyadaki incelemelerden verir, bu yüzden incelemelerin kapsamadığı sorular zayıf cevaplar alır. 0:24
  • [44] Yerel modeller kendi donanımında çalıştığı için yanıtlar bir bulut hizmetine göre daha yavaş gelebilir. 0:59

Alıştırma

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

[45] Retrieval augmented generation'ın ne anlama geldiğini, pizza incelemelerini örnek alarak kendi cümlelerinle açıkla.

Çözüm
  1. [46] Retrieval (geri getirme): Soruyla eşleşen incelemeleri CSV'de bul, ör. 'vegan' geçen incelemeler.
  2. [47] Augmented generation (geliştirilmiş üretim): Bulunan incelemeleri dil modeline ver, böylece model cevabını bunlara dayanarak yazsın.

[48] 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ı bunlara dayanarak verir.

Karalama defterinde

[49] Kağıt defterinde 'CSV reviews', 'Relevant reviews' ve 'Model answer' etiketli üç kutu çiz ve aralarına oklar koy. Her okun altına, orada ne olduğunu anlatan bir cümle yaz.

Test

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

    1. [51] Yalnızca kendi yerleşik pizza bilgisini
    2. [52] CSV dosyasından getirilen ilgili incelemeleri, bir modele verilmiş halde
    3. [53] Ücretli bir OpenAI bulut hesabını
    4. [54] İnternette bir web araması yapmayı
    Cevabı göster

    B. [52] CSV dosyasından getirilen ilgili incelemeleri, bir modele verilmiş halde · [55] Uygulama CSV'den ilgili incelemeleri bulur ve bunları yerel bir modele verir (RAG).

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

    1. [57] Ollama
    2. [58] LangChain
    3. [59] ChromaDB
    4. [60] Sublime Text
    Cevabı göster

    C. [59] ChromaDB · [61] 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. [62] Uygulamadan nasıl çıkarsın?

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

    B. [64] Soru isteminde q yaz · [67] İstemde 'q to quit' yazar; yani q yazmak programı sonlandırır.

    1:18 o anı izle

1. dersi videoyla aç →

2–7. dersler

Beyond Pass ile açılırlar: her kursun her dersi, eksiksiz. Tek ödeme: 90 gün için $14.99 ya da bir yıl için $29. Abonelik yok.

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