티스토리 뷰

반응형

 

📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습

4. LangChain + Chroma로 문서 벡터화 & RAG 검색 파이프라인 구축


🎯 목표

이번 글에서는:

  • PDF나 텍스트 문서를 벡터로 변환하고,
  • ChromaDB에 저장한 뒤,
  • 사용자 질문에 관련 문서를 검색하고,
  • LLM에게 함께 전달하는 RAG 구조의 핵심을 구현합니다.

Retrieval-Augmented Generation = 정보 검색(Retrieval) + 텍스트 생성(Generation)


🧩 RAG 구성 요약

[질문]
  ↓
[벡터 검색: Chroma]
  ↓
[관련 문서 추출]
  ↓
[문서 + 질문 → Ollama]
  ↓
[응답 생성]

🛠️ 1. LangChain 설치

npm install langchain chromadb
npm install @langchain/community

Python으로 할 경우에는 langchain과 chromadb를 pip로 설치합니다.


📄 2. 문서 → 벡터 변환 코드 예시

반응형
import { Chroma } from '@langchain/community/vectorstores/chroma';
import { OpenAIEmbeddings } from '@langchain/community/embeddings/openai'; // or use HuggingFace
import { TextLoader } from 'langchain/document_loaders/fs/text';

const loader = new TextLoader('./docs/sample.txt');
const docs = await loader.load();

const vectorStore = await Chroma.fromDocuments(
  docs,
  new OpenAIEmbeddings(),
  {
    collectionName: 'my-docs',
    url: 'http://localhost:8000', // Chroma 서버 주소
  }
);

로컬 환경에서 ChromaDB는 Python CLI로 구동됩니다.


🚀 3. 검색 → LLM 질문 전달 파이프라인

const results = await vectorStore.similaritySearch("What is the policy?", 3);

const context = results.map((r) => r.pageContent).join('\n---\n');

const prompt = `Answer based on the context below:\n${context}\n\nQuestion: What is the policy?`;

const response = await axios.post('http://localhost:11434/api/generate', {
  model: 'mistral',
  prompt,
  stream: false,
});

💾 Chroma 실행 방법 (Python)

pip install chromadb
chromadb run --host 0.0.0.0 --port 8000

또는 Docker:

docker run -p 8000:8000 ghcr.io/chroma-core/chroma:latest

🔒 Embedding 대안 (로컬)

  • @langchain/community/embeddings/huggingface
  • SentenceTransformers, MiniLM, E5-base 등 활용 가능

✅ 마무리

  • LangChain + Chroma를 통해 문서를 벡터화
  • 유사한 문서를 검색하고 LLM에게 전달
  • 실전 RAG 구조의 기본 뼈대를 구성했습니다

다음 글에서는 이 흐름을 NestJS API 구조에 통합하고,
문서 업로드 → 벡터화 저장 → 질문 응답 흐름을 API로 연결해보겠습니다.


 

RAG 구현,LangChain Chroma 사용법,문서 벡터화,LLM 검색 구조,NestJS RAG 통합,텍스트 검색 AI,Chroma 벡터 데이터베이스,Open Source RAG 실습,LangChain 실전 코드,AI 문서 기반 챗봇


 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함
반응형