Повторение RAG

ИИ-агенты с Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

Пример: умный кулинарный ассистент

  • Нужен доступ к кулинарным знаниям
  • Информация разбросана по рецептам, руководствам и планировщикам
  • Необходимо найти и извлечь только самые релевантные данные
ИИ-агенты с Hugging Face smolagents

Что такое RAG (Retrieval Augmented Generation)?

RAG = сочетание поиска информации с генерацией LLM

ИИ-агенты с Hugging Face smolagents

Рабочий процесс RAG

ИИ-агенты с Hugging Face smolagents

Загрузка и разбиение документов

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)
ИИ-агенты с Hugging Face smolagents

Создание векторного хранилища

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)
ИИ-агенты с Hugging Face smolagents

Запрос к векторному хранилищу

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)
ИИ-агенты с Hugging Face smolagents

Запрос: Как приготовить лосось с травами?

Топ-2 найденных фрагмента (семантическое совпадение):

[1] Основы подготовки лосося (с. 2) Обсушите лосось, чтобы добиться румяной корочки. Щедро посолите, поперчите и добавьте свежий укроп или петрушку. Дайте филе отдохнуть 10 минут, чтобы соль впиталась. Для равномерного приготовления доведите до комнатной температуры...

[2] Запекание лосося в духовке (с. 5) Разогрейте духовку до 200°C (392°F). Выложите филе на противень с пергаментом, сверху — ломтики лимона и зелёное масло (укроп/петрушка). Запекайте 10–12 минут до матового состояния; дайте отдохнуть 2 минуты перед подачей...

ИИ-агенты с Hugging Face smolagents

Ограничения классического RAG-пайплайна

Как спланировать питание на неделю менее чем за $50, соблюдая все нормы питательности?

Ответ распределён по нескольким документам (бюджет, питание, техники, рецепты).

ИИ-агенты с Hugging Face smolagents

Давайте потренируемся!

ИИ-агенты с Hugging Face smolagents

Preparing Video For Download...