반응형
LangChain 소개와 가장 간단한 예제
LangChain이란?
LangChain은 언어 모델(LLM)을 사용하여 애플리케이션을 개발하기 위한 강력한 프레임워크입니다. 이 프레임워크는 다양한 LLM을 쉽게 통합하고, 복잡한 작업을 체인으로 연결하여 수행할 수 있게 해줍니다. LangChain을 사용하면 챗봇, 질문-답변 시스템, 문서 요약 등 다양한 AI 기반 애플리케이션을 효율적으로 개발할 수 있습니다.
LangChain의 주요 특징:
- 다양한 LLM 지원 (OpenAI, Hugging Face 등)
- 프롬프트 관리 및 최적화
- 메모리 컴포넌트를 통한 대화 기록 관리
- 외부 데이터 소스와의 통합
- 체인과 에이전트를 통한 복잡한 작업 수행
가장 간단한 LangChain 예제
이제 LangChain을 사용한 가장 기본적인 예제를 살펴보겠습니다. 이 예제에서는 OpenAI의 GPT 모델을 사용하여 회사 이름을 생성합니다.
import os
from dotenv import load_dotenv
from langchain_openai import OpenAI
from langchain_core.prompts import PromptTemplate
# .env 파일에서 환경 변수 로드
load_dotenv()
# OpenAI API 키 가져오기
openai_api_key = os.getenv("OPENAI_API_KEY")
if not openai_api_key:
raise ValueError("OPENAI_API_KEY가 .env 파일에 설정되지 않았습니다.")
# 언어 모델 초기화
llm = OpenAI(temperature=0.9)
# 프롬프트 템플릿 정의
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?"
)
# 체인 생성 및 실행
chain = prompt | llm
response = chain.invoke({"product": "colorful socks"})
print(response)
이 코드는 다음과 같은 단계로 작동합니다:
- 필요한 라이브러리를 임포트합니다.
.env
파일에서 OpenAI API 키를 안전하게 로드합니다.- OpenAI 언어 모델을 초기화합니다.
- 회사 이름을 요청하는 프롬프트 템플릿을 정의합니다.
- 프롬프트와 언어 모델을 연결하여 체인을 생성합니다.
- 체인을 실행하여 "colorful socks"를 만드는 회사의 이름을 생성합니다.
- 결과를 출력합니다.
코드 설명
load_dotenv()
:.env
파일에서 환경 변수를 로드합니다. 이는 API 키와 같은 민감한 정보를 안전하게 관리하기 위한 방법입니다.OpenAI(temperature=0.9)
: OpenAI의 GPT 모델을 초기화합니다.temperature
매개변수는 출력의 무작위성을 조절합니다 (0에 가까울수록 일관된 출력, 1에 가까울수록 다양한 출력).PromptTemplate
: 동적으로 프롬프트를 생성할 수 있는 템플릿을 만듭니다.prompt | llm
: 프롬프트와 언어 모델을 연결하여 체인을 생성합니다. 이는 LangChain의 새로운 권장 방식입니다.chain.invoke()
: 생성된 체인을 실행하여 결과를 얻습니다.
코드 실행결과
이 간단한 예제는 LangChain의 기본적인 사용법을 보여줍니다. LangChain을 사용하면 복잡한 자연어 처리 작업을 쉽게 구현할 수 있으며, 이를 바탕으로 다양한 AI 애플리케이션을 개발할 수 있습니다.
LangChain의 더 고급 기능을 사용하면 메모리 컴포넌트를 통해 대화 기록을 관리하거나, 외부 데이터 소스와 통합하여 더 복잡한 작업을 수행할 수 있습니다. 이러한 기능들을 활용하면 챗봇, 개인 비서, 문서 분석 도구 등 다양한 애플리케이션을 효율적으로 개발할 수 있습니다.
반응형
'인공지능 > Lang Chain' 카테고리의 다른 글
LangChain 랭체인의 구조 (0) | 2024.06.30 |
---|---|
LangChain을 이용한 MP3 음성 파일 STT 구현하기 (0) | 2024.06.29 |
LangChain과 gTTS를 활용한 동적 TTS 시스템 구축하기 (0) | 2024.06.29 |
간단한 Python TTS 애플리케이션 만들기: gTTS 활용하기 (0) | 2024.06.29 |
LangChain으로 만드는 텍스트 요약 예제 (0) | 2024.06.29 |
LangChain으로 만드는 간단한 질문-답변 시스템 (0) | 2024.06.29 |