BaşlayınÜcretsiz Başlayın

Belgeleri ve vektör veritabanını hazırlama

Sıradaki birkaç egzersizde, Balaguer ve diğerlerinin (2024) RAG VS Fine-Tuning: Pipelines, Tradeoffs, and a Case Study on Agriculture başlıklı makalesini içeren bir PDF ile sohbet edebilmek için tam bir RAG iş akışı kuracaksın. Bu, belgeleri parçalara ayırmak, bir vektör veritabanında saklamak, alınan belgeler ile kullanıcı girdisini bağlayacak bir istem tanımlamak ve LLM'in bu harici verilere erişebilmesi için bir alma zinciri kurmakla çalışır.

Bu egzersizde, belgeyi depolamaya hazırlayacak ve bir Chroma vektör veritabanına aktaracaksın. PDF'i parçalamak için RecursiveCharacterTextSplitter kullanacak ve OpenAI gömleştirme fonksiyonunu kullanarak bunları bir Chroma vektör veritabanına alacaksın. Kursun geri kalanında olduğu gibi, kendi OpenAI API anahtarını sağlamana gerek yok.

Aşağıdaki sınıflar senin için zaten içe aktarıldı: RecursiveCharacterTextSplitter, Chroma ve OpenAIEmbeddings.

Bu egzersiz

LangChain ile LLM Uygulamaları Geliştirme

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • data içindeki belgeleri, chunk_size değeri 300 ve chunk_overlap değeri 50 olan bir RecursiveCharacterTextSplitter kullanarak böl.
  • Sağlanan OpenAI gömleştirme fonksiyonuyla belgeleri gömleştirip bir Chroma vektör veritabanına almak için .from_documents() metodunu kullan.
  • vectorstore'u, nihai RAG zincirinde kullanılmak üzere en iyi 3 belgeyi döndüren bir alıcı (retriever) nesnesine dönüştür.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

loader = PyPDFLoader('rag_vs_fine_tuning.pdf')
data = loader.load()

# Split the document using RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
    chunk_size=____,
    chunk_overlap=____)
docs = splitter.split_documents(data) 

# Embed the documents in a persistent Chroma vector database
embedding_function = OpenAIEmbeddings(api_key='', model='text-embedding-3-small')
vectorstore = Chroma.____(
    docs,
    embedding=embedding_function,
    persist_directory=os.getcwd()
)

# Configure the vector store as a retriever
retriever = vectorstore.as_retriever(
    search_type="similarity",
    search_kwargs={"k": ____}
)
Kodu Düzenle ve Çalıştır