본문 바로가기
인공지능/Lang Chain

LangChain 소개와 가장 간단한 예제

by makepluscode 2024. 6. 29.
반응형

LangChain 소개와 가장 간단한 예제

LangChain이란?

LangChain이란?

LangChain은 언어 모델(LLM)을 사용하여 애플리케이션을 개발하기 위한 강력한 프레임워크입니다. 이 프레임워크는 다양한 LLM을 쉽게 통합하고, 복잡한 작업을 체인으로 연결하여 수행할 수 있게 해줍니다. LangChain을 사용하면 챗봇, 질문-답변 시스템, 문서 요약 등 다양한 AI 기반 애플리케이션을 효율적으로 개발할 수 있습니다.

LangChain의 주요 특징:

  1. 다양한 LLM 지원 (OpenAI, Hugging Face 등)
  2. 프롬프트 관리 및 최적화
  3. 메모리 컴포넌트를 통한 대화 기록 관리
  4. 외부 데이터 소스와의 통합
  5. 체인과 에이전트를 통한 복잡한 작업 수행

가장 간단한 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)

이 코드는 다음과 같은 단계로 작동합니다:

  1. 필요한 라이브러리를 임포트합니다.
  2. .env 파일에서 OpenAI API 키를 안전하게 로드합니다.
  3. OpenAI 언어 모델을 초기화합니다.
  4. 회사 이름을 요청하는 프롬프트 템플릿을 정의합니다.
  5. 프롬프트와 언어 모델을 연결하여 체인을 생성합니다.
  6. 체인을 실행하여 "colorful socks"를 만드는 회사의 이름을 생성합니다.
  7. 결과를 출력합니다.

코드 설명

  • load_dotenv(): .env 파일에서 환경 변수를 로드합니다. 이는 API 키와 같은 민감한 정보를 안전하게 관리하기 위한 방법입니다.
  • OpenAI(temperature=0.9): OpenAI의 GPT 모델을 초기화합니다. temperature 매개변수는 출력의 무작위성을 조절합니다 (0에 가까울수록 일관된 출력, 1에 가까울수록 다양한 출력).
  • PromptTemplate: 동적으로 프롬프트를 생성할 수 있는 템플릿을 만듭니다.
  • prompt | llm: 프롬프트와 언어 모델을 연결하여 체인을 생성합니다. 이는 LangChain의 새로운 권장 방식입니다.
  • chain.invoke(): 생성된 체인을 실행하여 결과를 얻습니다.

코드 실행결과

VSCode에서실행해보기

이 간단한 예제는 LangChain의 기본적인 사용법을 보여줍니다. LangChain을 사용하면 복잡한 자연어 처리 작업을 쉽게 구현할 수 있으며, 이를 바탕으로 다양한 AI 애플리케이션을 개발할 수 있습니다.

LangChain의 더 고급 기능을 사용하면 메모리 컴포넌트를 통해 대화 기록을 관리하거나, 외부 데이터 소스와 통합하여 더 복잡한 작업을 수행할 수 있습니다. 이러한 기능들을 활용하면 챗봇, 개인 비서, 문서 분석 도구 등 다양한 애플리케이션을 효율적으로 개발할 수 있습니다.

반응형