RAG 복습

Hugging Face smolagents로 AI 에이전트 만들기

Adel Nehme

VP of AI Curriculum, DataCamp

예시: 스마트 요리 어시스턴트

  • 요리 지식에 접근해야 함
  • 정보가 레시피, 가이드, 계획 자료 전반에 흩어짐
  • 가장 관련 높은 내용만 검색·추출해야 함
Hugging Face smolagents로 AI 에이전트 만들기

RAG(Retrieval Augmented Generation)란?

RAG = 정보 검색 + LLM 생성 결합

Hugging Face smolagents로 AI 에이전트 만들기

RAG 워크플로우

Hugging Face smolagents로 AI 에이전트 만들기

문서 로딩과 분할

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로 AI 에이전트 만들기

벡터 스토어 생성

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로 AI 에이전트 만들기

벡터 스토어 질의

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로 AI 에이전트 만들기

Query: How do I cook salmon with herbs?

상위 2개 검색 청크(의미 유사):

[1] 연어 손질 기본 (p. 2) 갈변을 위해 연어의 물기를 닦습니다. 소금, 후추, 신선한 딜 또는 파슬리를 넉넉히 뿌립니다. 소금이 배도록 10분 휴지. 균일한 조리를 위해 실온에 둡니다...

[2] 오븐에서 연어 굽기 (p. 5) 오븐을 200°C(392°F)로 예열. 베이킹시트에 종이 포일을 깔고 레몬 슬라이스와 허브 버터(딜/파슬리)를 올립니다. 10–12분간 살짝 불투명해지고 결이 생길 때까지 굽고, 2분 휴지 후 서빙...

Hugging Face smolagents로 AI 에이전트 만들기

전통적 RAG 파이프라인의 한계

영양 요구를 충족하며 한 주 식단을 50달러 이하로 계획하려면?

답은 여러 문서에 흩어져 있음(예산, 영양, 기법, 레시피).

Hugging Face smolagents로 AI 에이전트 만들기

연습해 봅시다!

Hugging Face smolagents로 AI 에이전트 만들기

Preparing Video For Download...