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
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.
2 kod2 adım3 alıştırma3 soru - 2
Proje klasörünü ve sanal ortamı kur
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
Ollama'yı kur ve bir sohbet modeli ile bir gömme (embedding) modeli indir
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
Yerel bir modeli LangChain prompt zinciriyle çağır
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
Etkileşimli bir soru döngüsü ekle
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
Load the CSV and build a persistent Chroma vector store
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
Bir retriever oluştur ve RAG'i zincire bağla
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.
Dersin komutlarını yaz, boz ve nedenini gör.
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
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.
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
- Bir terminal aç ve proje klasörüne geç (videoda masaüstündeki Local Ai Agent adlı bir klasör kullanılıyor). Göreceğin: İstem artık Masaüstü klasörünü gösteriyor.
$ cd Desktop C:\Users\User>cd Desktop C:\Users\User\Desktop>
- 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. Göreceğin: Program bir satır tire işareti yazdırır ve senin sorunu bekler.
$ python main.py -------------------- Ask your question here (q to quit):
Bilerek boz
$ python main.py python: can't open file 'main.py': [Errno 2] No such file or directoryNeden: 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.
$ 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
Alıştırma
Kendi cümlelerinle, pizza incelemelerini örnek alarak retrieval augmented generation'ın ne anlama geldiğini açıkla.
Çözüm
- Retrieval (getirme): Soruyla eşleşen incelemeleri CSV'de bul; örneğin vegan geçen incelemeler gibi.
- 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.
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
- Sütunlar Title, Date, Rating, Review olduğu için satırda virgülle ayrılmış dört değer olmalı.
- Önce kısa bir başlık yaz, sonra 2024-04-01 gibi bir tarih, ardından 1 ile 5 arasında bir puan.
- İ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."
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
- Ollama dil modelini yerel olarak çalıştırır.
- LangChain uygulamanın parçalarını birbirine bağlar.
- 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
Uygulama restoran hakkındaki soruları yanıtlamak için neyi kullanır?
- Yalnızca kendi yerleşik pizza bilgisini
- CSV dosyasından alınan ilgili yorumlar bir modele verilir
- Ücretli bir OpenAI bulut hesabı
- İ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ı izleBu projede vektör arama veritabanı hangi araçtır?
- Ollama
- LangChain
- ChromaDB
- 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ı izleUygulamadan nasıl çıkarsın?
- Ctrl+Alt+Delete tuşlarına bas
- Soru isteminde q yaz
- CSV dosyasına exit yaz
- 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
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
