Skip to content

hediyeorhan/SimpleRAG_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleRAG

Bu çalışmada Google AI tarafından geliştirilen yapay zekâ Gemini API'ı kullanılarak basit bir RAG (Retrieval-Augmented Generation) projesi geliştirilmiştir.

Projede .env dosyasında içeriğinde şu veriler bulunmaktadır.

• GEMINI_API_KEY=

• LANGCHAIN_API_KEY=

• LANGCHAIN_TRACING_V2=true

• LANGCHAIN_PROJECT=PROJECT_NAME

Projede, Gemini AI ile birlikte Langchain framework'ü kullanılmıştır. Langchain, büyük dil modelleri ile uygulama geliştirilmesinde kullanılmaktadır. Zincir yapısında LLM'lerin birbirleri ile ve insanlar ile konuşmasını sağlamaktadır. Doküman okuma-yükleme, chat geçmişi tutma, embedding işlemleri ve vektör database işlemleri için langchain framework'ünden faydalanılmıştır. LangChain, LLM'ler ile entegrasyon sağlayarak özelleştirilmiş sorgu yönetimi sunmaktadır.

RAG


Bu çalışmada, bir web sayfasından çekilen veriler, RAG kullanılarak büyük dil modeli (LLM) ile entegre bir yapıda değerlendirilmiştir. Toplanan veriler, RecursiveCharacterTextSplitter mekanizması ile 1000 karakterlik parçalara ayrılmış ve her parça arasında 200 karakterlik bir örtüşme sağlanmıştır. Bu sayede, uzun metinlerin anlamlı parçalara bölünmesi sağlanmış, daha verimli bir bilgi arama ve cevap üretme süreci elde edilmiştir. Sonrasında, bu verilerle özelleştirilmiş bir soru-cevap mekanizması oluşturulmuştur.

Bu çalışmada embedding fonksiyonu olarak HuggingFaceEmbeddings kullanılmıştır.
Çalışmada vektör veri tabanı olarak Chroma kullanılmıştır. Chroma open source bir vektör veri tabanıdır.

LangChain Hub üzerinden rlm/rag-prompt adlı özel bir prompt şablonu çekilmiş ve bu şablon, verilerle etkileşime girerek büyük dil modeline yönelik anlamlı soruların oluşturulmasına yardımcı olmuştur. Bu işlem, RAG sürecinin bir parçası olarak, modelin doğru ve bağlama dayalı cevaplar verebilmesi için gerekli olan talimatları içermektedir. LangChain hub üzerinden kullanılacak projeye uygun promptlar seçilebilmektedir. LangChain hub kendi istediğimiz şekilde özelleştirilmiş prompt'lar oluşturmaya olanak sağlamaktadır.


Çalışmanın örnek çıktıları Şekil 1'de görülmektedir.


image
Şekil 1. Örnek çıktı

Releases

No releases published

Packages

No packages published

Languages