Opakování RAG

AI Agents with Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Příklad: Chytrý kuchyňský asistent

  • Potřebuje přístup ke kulinářským znalostem
  • Informace jsou rozptýleny v receptech, průvodcích a plánovacích zdrojích
  • Musí vyhledat a extrahovat pouze nejrelevantnější údaje
AI Agents with Hugging Face smolagents

Co je Retrieval Augmented Generation (RAG)?

RAG = kombinace vyhledávání informací s generováním pomocí LLM

AI Agents with Hugging Face smolagents

Průběh RAG workflow

AI Agents with Hugging Face smolagents

Načítání a rozdělování dokumentů

from langchain_community.document_loaders import PyPDFDirectoryLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter

# Load documentation from directory
loader = PyPDFDirectoryLoader("cooking_docs", mode="single")
documents = loader.load()

# Split into chunks
splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)
chunks = splitter.split_documents(documents)
AI Agents with Hugging Face smolagents

Vytvoření vektorového úložiště

from langchain_huggingface import HuggingFaceEndpointEmbeddings
from langchain_community.vectorstores import FAISS

# Create embeddings and vector store
embedder = HuggingFaceEndpointEmbeddings(
    model="BAAI/bge-base-en-v1.5",
    task="feature-extraction",
)
vector_store = FAISS.from_documents(chunks, embedder)
AI Agents with Hugging Face smolagents

Dotazování vektorového úložiště

query = "How do I cook salmon with herbs?"

# Similarity search
relevant_docs = vector_store.similarity_search(query, k=3)

# Create a context string
context = "\n\n".join(doc.page_content for doc in relevant_docs)
AI Agents with Hugging Face smolagents

Dotaz: Jak připravit lososa s bylinkami?

Nejrelevantnější 2 úryvky (sémantická shoda):

[1] Základy přípravy lososa (s. 2) Lososa osušte pro lepší zhnědnutí. Dostatečně ochuťte solí, pepřem a čerstvým koprem nebo petrželkou. Nechte filety 10 minut odležet, aby sůl prostoupila maso. Pro rovnoměrné propečení přiveďte na pokojovou teplotu...

[2] Pečení lososa v troubě (s. 5) Troubu předehřejte na 200 °C. Filety položte na plech vyložený pečicím papírem, přidejte plátky citronu a bylinkové máslo (kopr/petrželka). Pečte 10–12 minut, dokud není maso neprůhledné a snadno se loupe; před podáváním nechte 2 minuty odpočinout...

AI Agents with Hugging Face smolagents

Omezení tradičního RAG pipeline

Jak naplánovat týdenní jídelníček do 50 $ při splnění všech nutričních požadavků?

Odpověď je rozložena napříč dokumenty (rozpočet, výživa, techniky, recepty).

AI Agents with Hugging Face smolagents

Pojďme procvičovat!

AI Agents with Hugging Face smolagents

Preparing Video For Download...