- 강의 질문
- AI TECH
Ch03 관련 질문드립니다.
안녕하세요. Ch03.에서 4. Langgraph로 구현하는 Basic, Agentic RAG를 공부하던 도중 궁금한 내용이 생겨서 질문 드립니다.
1. Langchain으로 RAG를 만들 때는
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, # 청크 크기 (문자 수)
chunk_overlap=200, # 청크 간 겹침 (문자 수)
add_start_index=True # 원본 문서에서의 인덱스 추적
)
를 사용하였는데,
Langgraph으로 RAG를 만들 때는
text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
chunk_size=1000,
chunk_overlap=200
)
를 사용하셨는데요.
두 방식은 어떤 점이 다른지, 그리고 유사한 구현을 하는 두 예제에서 각각 다른 방식으로 구현된 이유가 궁금합니다.
2. Langchain에서는 embedding 모델을,
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
로 사용하였고
Langgraph 예제에서는
embeddings = OpenAIEmbeddings()
를 사용하셨는데,
OpenAIEmbeddings() 함수의 정의를 살펴보니
class OpenAIEmbeddings(
*,
client: Any = None,
async_client: Any = None,
model: str = "text-embedding-ada-002",
로 정의되어 있어 model을 별도로 정의하지 않으면, default 값으로는 "text-embedding-ada-002" 가 사용되는 것으로 보입니다.
혹시 Langchain과 Langgraph 예제에서 다른 임베딩 모델이 사용된 이유가 무엇인지 궁금합니다.
감사합니다.