우선 LangChain을 어떻게 쓰는것인지 알아보기 위해서 파이썬으로 테스트 해봤다.
나는 기존에 OpenAI API KEY를 발급 받은것이 있어서 환경 변수에 등록부터 했다.
- 등록 방법: 시스템 환경 변수 편집 -> 환경 변수 -> 새로만들기 -> 키 등록

1. 환경 변수를 불러오는 코드를 작성한다.
import os
# 환경변수에서 API 키 가져오기
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if not OPENAI_API_KEY:
raise ValueError("환경변수 'OPENAI_API_KEY'가 설정되지 않았습니다.")
2. 필요한 패키지를 설치한다.
openai, langchain만 설치하면 되는줄 알았는데 'ModuleNotFoundError: No module named 'langchain_community' 오류가 떠서 추가로 설치했다.
# OpenAI API 라이브러리 설치
pip install openai
# LangChain 라이브러리 설치 (기본적인 LLM 체인 구성을 위한 핵심 라이브러리)
pip install langchain
# LangChain의 추가 기능이 포함된 확장 모듈 설치
pip install langchain-community
# 설치된 패키지 목록 중 "langchain" 관련 패키지 확인
pip list | findstr langchain
3. 나의 돈은 소중하니까 저렴한 모델로 선택한다.
chat_chain = LLMChain(
llm=ChatOpenAI(openai_api_key=OPENAI_API_KEY, model="gpt-3.5-turbo"),
prompt=chat_prompt,
output_parser=CommaSeparatedListOutputParser()
)
4. 원하는 프롬프트와 질문을 입력한다.
- 프롬프트
"너는 여행 가이드를 도와주는 AI야. 사용자가 특정 장소에 대해 추천을 요청하면, 해당 장소에서 유명한 항목(맛집, 관광지 등)을 3개 추천해줘. 단어는 반드시 comma(,)로 분리해서 답변하고, 다른 내용은 포함하지 마."
- 질문
"부산 해운대에서 유명한 맛집 3가지를 추천해줘."
5. 완성 코드
import os
from langchain.chat_models import ChatOpenAI
from langchain.prompts.chat import (
ChatPromptTemplate,
SystemMessagePromptTemplate,
HumanMessagePromptTemplate,
)
from langchain.chains import LLMChain
from langchain.schema import BaseOutputParser
# 환경변수에서 API 키 가져오기
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if not OPENAI_API_KEY:
raise ValueError("환경변수 'OPENAI_API_KEY'가 설정되지 않았습니다.")
# CommaSeparatedListOutputParser 정의
class CommaSeparatedListOutputParser(BaseOutputParser):
"""LLM 출력에서 ','로 분리된 결과를 반환하는 파서."""
def parse(self, text: str):
return text.strip().split(", ")
# 시스템 메시지 프롬프트 템플릿
system_template = """
너는 여행 가이드를 도와주는 AI야.
사용자가 특정 장소에 대해 추천을 요청하면, 해당 장소에서 유명한 항목(맛집, 관광지 등)을 3개 추천해줘.
단어는 반드시 comma(,)로 분리해서 답변하고, 다른 내용은 포함하지 마.
"""
system_message_prompt = SystemMessagePromptTemplate.from_template(system_template)
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)
# 프롬프트 통합
chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
# LLMChain 구성
chat_chain = LLMChain(
llm=ChatOpenAI(openai_api_key=OPENAI_API_KEY, model="gpt-3.5-turbo"),
prompt=chat_prompt,
output_parser=CommaSeparatedListOutputParser()
)
# 질문 실행
response = chat_chain.run("부산 해운대에서 유명한 맛집 3가지를 추천해줘.")
# 결과 출력
print(response) # ['맛집1', '맛집2', '맛집3']와 같은 리스트 형태로 출력됨
- 6. 결과 출력
response = chat_chain.run("부산 해운대에서 유명한 맛집 3가지를 추천해줘.")
['밀면의달인', '해운대장어구이골목', '할매낙지']

'AI' 카테고리의 다른 글
| [AI] LangChain 사용해보기3 (LLM과 네이버 검색 API를 활용한 맛집 데이터 수집 테스트) (0) | 2025.01.23 |
|---|---|
| [AI] LangChain 사용해보기2 (0) | 2025.01.15 |
| [AI] LangChain이란 무엇인가? (0) | 2025.01.12 |
| [AI] 텍스트 요약 모델(Summarization) 사용해보기 (0) | 2025.01.10 |
| [AI] Recognize Anything 사용해보기2 (0) | 2025.01.09 |