embedchain의 RAG 구조
embedchain의 RAG 구조
embedchain이 '추가와 질의' 두 단계로 동작할 수 있는 배경에는, 내부적으로 RAG 파이프라인이 자동으로 구동된다는 점이 있어요. 데이터를 로드하고 청크로 나누어 임베딩해서 벡터 저장소에 넣고, 질의 시 관련 청크를 찾아 LLM에 주입하는 흐름이에요.
embedchain의 테크 스택은 RAG의 각 구성 요소를 명확히 보여줘요.
- Langchain — LLM 프레임워크로 문서를 로드·청킹·인덱싱
- OpenAI Ada 임베딩 모델 — 텍스트를 벡터로 변환
- OpenAI ChatGPT API — 주어진 문맥으로 답 생성
- Chroma — 임베딩을 저장하는 벡터 데이터베이스
- gpt4all — 오픈소스 대체 LLM
- sentence-transformers — 오픈소스 대체 임베딩 모델
즉, 지식 소스를 add()하면 embedchain이 내부적으로 그 데이터를 로드하고, 긴 문서를 적절한 크기로 청킹하고, 청크를 임베딩해서 Chroma에 저장해요. 질의가 들어오면 query()가 관련 청크를 벡터 검색으로 찾아내 LLM에 문맥으로 주입하고, 그 문맥을 바탕으로 답을 생성해요.
이렇게 하면 LLM이 단순히 기억에 의존하는 게 아니라, 자기 지식 소스의 실제 내용을 근거로 답하게 돼요. '환각'을 줄이고 특정 도메인에 정확한 답을 내기 좋은 구조죠.
정말 많은 문서를 다루려면 로컬 인덱스를 분리해 쓰는 게 좋아요. 즉 인덱싱과 채팅 인터페이스를 분리해서, 수백 개 문서를 미리 색인해 두고 나중에 질의만 하는 방식이 확장에 유리해요.