Post

LangChain 개요 및 환경 설정 - part.1

LangChain의 개념과 주요 기능, 환경 설정 방법을 소개합니다.

LangChain 개요 및 환경 설정 - part.1

1. LangChain이란?

LangChain은 대형 언어 모델(LLM)을 활용하여 AI 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크입니다. 특히, 프롬프트 최적화, 대화 이력 관리, 외부 도구와의 연동, 벡터 데이터베이스와의 통합 등 다양한 기능을 제공합니다.

주요 기능

  • LLM 인터페이스 제공: OpenAI, Hugging Face 등의 LLM과 쉽게 연결 가능
  • 프롬프트 템플릿 관리: 재사용 가능한 프롬프트 구조화
  • 체인(Chains) 기능: 여러 단계의 작업을 연결하여 복잡한 AI 워크플로우 구성 가능
  • 에이전트(Agents) 지원: 사용자의 요청에 따라 적절한 액션 수행
  • 메모리 관리: 대화 이력을 저장하고 활용할 수 있는 다양한 메모리 시스템 제공

2. LangChain 설치 및 환경 설정

LangChain을 사용하려면 Python 환경을 설정하고 필수 패키지를 설치해야 합니다.

2.1 Python 환경 준비

LangChain은 Python 3.8 이상에서 원활하게 작동합니다. 가상 환경을 생성한 후 진행하는 것을 추천합니다.

1
2
python -m venv langchain-env
source langchain-env/bin/activate  # (Windows: langchain-env\Scripts\activate)

2.2 필수 패키지 설치

LangChain의 기본 기능을 활용하기 위해 다음과 같은 패키지를 설치합니다.

1
2
pip install langchain langchain-openai
pip install tiktoken faiss-cpu pypdf
  • langchain: LangChain의 핵심 라이브러리
  • langchain-openai: OpenAI API 연동을 위한 패키지
  • tiktoken: OpenAI 모델의 토큰화 지원
  • faiss-cpu: 벡터 검색 기능 제공 (RAG 구현 시 유용)
  • pypdf: PDF 문서 분석 시 사용

3. OpenAI API 키 설정

LangChain에서 OpenAI의 GPT 모델을 사용하려면 API 키를 설정해야 합니다.

1
2
3
4
import os
from getpass import getpass

os.environ["OPENAI_API_KEY"] = getpass("Enter OpenAI API Key: ")

보안 주의사항: API 키는 코드에 직접 입력하지 말고, .env 파일을 활용하는 것이 좋습니다.

1
pip install python-dotenv

.env 파일 생성 후 다음과 같이 API 키 저장:

1
OPENAI_API_KEY=your_api_key_here

Python 코드에서 .env 파일을 불러오기:

1
2
3
4
5
from dotenv import load_dotenv
import os

load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")

4. LangChain 기본 테스트 실행

설치가 완료되었는지 확인하기 위해 간단한 LangChain 코드 실행:

1
2
3
4
5
from langchain_openai import ChatOpenAI

chat = ChatOpenAI(model_name="gpt-4o-mini")
response = chat.invoke("LangChain이 무엇인가요?")
print(response)

이 코드를 실행하면 LangChain이 OpenAI 모델을 활용하여 답변을 생성하는 것을 확인할 수 있습니다.

5. 프로젝트 폴더 구조 설정

LangChain 프로젝트를 체계적으로 관리하기 위해 다음과 같은 폴더 구조를 추천합니다.

1
2
3
4
5
6
7
/my-langchain-project
├── main.py  # 메인 실행 파일
├── requirements.txt  # 필수 패키지 목록
├── .env  # 환경 변수 파일 (API 키 저장)
├── data/  # 문서 저장 폴더
├── models/  # 사전 학습된 모델 저장 폴더
└── utils/  # 유틸리티 함수 모음

이렇게 폴더를 정리하면 프로젝트의 확장성과 유지보수성이 향상됩니다.

This post is licensed under CC BY 4.0 by the author.