항목 | 버전/상태 |
OS | Windows 11 |
Python | 3.10.x (⚠️ 3.13은 비추) |
패키지 매니저 | pip |
프로젝트 | RAG 기반 LangChain 실습 |
✅ 설치 과정
1. Python 3.10 가상환경 만들기
py -3.10 -m venv env
.\env\Scripts\activate
Python 3.13에서는 일부 빌드형 패키지(tiktoken, faiss-cpu 등)가 실패
2. pip 업그레이드
pip install --upgrade pip setuptools wheel
3. Rust 설치 (tiktoken 용도)
tiktoken은 OpenAI의 토큰화 처리 라이브러리이며, 내부적으로 Rust로 구현되어 있어 빌드에 Rust 컴파일러가 필요
# rustup 공식 설치
https://rustup.rs/
환경변수에 아래 경로 추가 (자동 등록 안 될 시):
C:\Users\{유저명}\.cargo\bin
설치 확인:
rustc --version
4. SWIG 설치 (faiss-cpu 용도)
faiss-cpu는 벡터 검색용 라이브러리로, 내부에서 SWIG (C/C++ → Python 인터페이스 생성 도구)를 사용
설치:
https://www.swig.org/download.html 에서
swigwin-4.3.1.zip 다운로드 → 압축 해제 후
환경변수 Path에 위 경로 추가
5. requirements.txt 설치
pip install -r requirements.txt
🔧 핵심 RAG 패키지
패키지명 | 설명 |
langchain (0.2.5) | LLM 애플리케이션 구성에 필요한 다양한 체인(Chain)과 구성 요소를 제공하는 핵심 라이브러리입니다. 문서 로드, 임베딩, 메모리, 프롬프트 템플릿 등을 통합해줍니다. |
langchain-core (0.2.7) | LangChain의 기본 프레임워크. 체인 구성 및 실행에 필요한 내부 API를 제공합니다. |
langchain-community (0.2.5) | OpenAI, HuggingFace, Pinecone, FAISS 등 주요 도구들과의 커넥터를 제공합니다. 외부 벤더 연결의 핵심 구성 요소입니다. |
langchain-openai (0.1.8) | OpenAI API와의 통합 모듈. GPT-4, GPT-3.5 등을 LLM으로 사용하기 위해 필요합니다. |
langchain-text-splitters (0.2.1) | 문서를 청크 단위로 나누는 기능을 담당합니다. RecursiveCharacterTextSplitter 등 다양한 분할 전략을 테스트할 수 있습니다. |
🤖 LLM 및 API 관련
패키지명 | 설명 |
openai (1.34.0) | OpenAI API 호출을 위한 공식 라이브러리입니다. GPT, DALL·E, Whisper 등을 API를 통해 사용하는 데 필요합니다. |
tiktoken (0.7.0) | OpenAI 토큰 계산 라이브러리. 텍스트가 모델에 입력될 때 몇 토큰인지 계산할 때 사용됩니다. Rust 빌드 도구 필요합니다. |
faiss-cpu (1.8.0) | Facebook AI에서 만든 벡터 검색 라이브러리. 문서 임베딩 후 유사도 기반 검색(Retrieval)에 사용됩니다. C++ 빌드 도구 필요합니다. |
🌱 유틸리티 및 보조 패키지
패키지명 | 설명 |
python-dotenv (1.0.0) | .env 파일에 저장된 환경변수들을 불러오는 데 사용됩니다. OpenAI API 키 등 보안 설정에 필수입니다. |
colorama (0.4.6) | 콘솔 출력에 색을 입혀 사용자 피드백을 직관적으로 보여주는 데 사용됩니다. |
tqdm (4.66.4) | 루프 진행 상황을 시각적으로 보여주는 진행률(progress bar) 라이브러리입니다. |
bs4 (0.0.2) | BeautifulSoup의 메타 패키지입니다. HTML/XML 파싱 및 텍스트 정제에 사용됩니다. |
'Master RAG' 카테고리의 다른 글
문서 기반 Q&A GPT 챗봇 (FastAPI + LangChain + React) (0) | 2025.06.06 |
---|---|
RAG 챗봇 (0) | 2025.06.06 |
코스 (0) | 2025.06.04 |