본문 바로가기
Programming/AI

LangChain LLM App 개발 프레임워크 (1)

by 코딩하는 금융인 2024. 4. 14.

안녕하세요.

오늘은 다양한 LLM App을 개발할 수 있는 프레임워크 LangChain 설치부터 실행방법까지 간단한 예제를 통해 알아보겠습니다.

 

 LangChain 설치 및 파이썬으로 실습하기

▣ LangChain이란?

언어 모델을 활용해 다양한 애플리케이션을 개발할 수 있는 프레임워크

 

 - 라이브러리로는 파이썬과 JavaScript가 있고, 템플릿이 잘 만들어져 있기에 사용자는 이를 활용해 검색강화 생성(RAG) App 제작, 구조화된 데이터 분석, 챗봇 등을 만들 수 있음

 - 구성으로는 앞서 말한 라이브러리, 템플릿, Serve(Rest API), Smith(통합 개발자 플랫폼), Graph(다중 액터 App)가 있음

 

: 파이썬으로 설치하기

# pip
pip install langchain

# conda
conda install langchain -c conda-forge

 

▣ LangChain 실습해보기

: LangChain의 실행 구조 

프롬프트 생성(명령) → LLM 처리 → 사용자가 이해할 수 있는 형태로 응답 반환(대답)

 

 - LangChain을 이용하기 위해서는 언어모델의 API가 필요한데, 대표적인 언어모델인 OpenAI사의 GPT를 활용

 - 먼저, OpenAI API 인증키*를 등록하고 GPT-3.5 모델"대한민국에서 가장 부동산 가격이 비싼 동네는?"라는 내용의 프롬프트 입력하여 chain을 실행 

* OpenAI API 발급 방법은 과거 포스팅한 글에서 참조

2023.02.06 - [Programming/AI] - [AI] 파이썬으로 GPT 사용하기

import os
from langchain_openai import ChatOpenAI

# OpenAI API
os.environ['OPENAI_API'] = YOUR_OPEN_API_KEY

# model & chain 실행하기
llm = ChatOpenAI(temperature = 0.1, # 창의성
			max_tokens=2048,
			streaming=True, # 실시간 출력
			callbacks=[StreamingStdOutCallbackHandler()],
			model = "gpt-3.5-turbo")

question = llm.invoke("대한민국에서 가장 부동산 가격이 비싼 동네는?")
print(f"[답변] : {question}")
부동산 가격이 가장 높은 동네는 계속 변하기 때문에 정확한 답변을 제공하기 어렵습니다. 그러나 대개 대한민국에서 부동산 시장이 가장 활발하고 부동산 가격이 높은 지역으로는 서울의 강남구와 종로구, 그리고 경기도 일부 지역들이 유명합니다. 특히 강남구의 서울 역삼동, 청담동, 압구정동 등은 부동산 시장에서 높은 가격대를 유지하고 있습니다. 그러나 각 지역의 부동산 시장은 매우 다양하고 변화가 빠르기 때문에 항상 최신 정보를 확인하는 것이 중요합니다.

 

 - Langchain에는 정말 다양한 도구가 있지만, 이번 포스팅에서 템플릿까지만 실습

 - PromptTemplate을 활용하면 프롬프트를 정해진 형식으로 만들 수 있으며, 사용자가 입력할 때는 변수만 입력하면 됨

 - 실습 템플릿 형식"너는 세계에서 저명한 지리학자야. {area1}과 {area2}의 거리 차이는 km로 얼마야?"이고 2개의 변수를 입력한 chain을 실행

from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# 질문 템플릿 형식 정의
template = "너는 세계에서 저명한 지리학자야. {area1}과 {area2}의 거리 차이는 km로 얼마야?"

# 템플릿 완성
prompt = PromptTemplate.from_template(template=template)

# 연결된 chain 객체 생성
llm_chain = LLMChain(prompt=prompt, llm=llm)
print(llm_chain.invoke({"area1": "서울", "area2": "파리"}))
서울과 파리의 거리는 직선거리로 약 8,000km 정도입니다. 다만, 실제 여행할 때는 비행로의 경로, 항공사의 노선, 중간 정착지 등에 따라 이 값이 달라질 수 있습니다.

 

Reference

 

 

반응형

댓글