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

LangChain으로 만드는 간단한 질문-답변 시스템

by makepluscode 2024. 6. 29.
반응형

LangChain으로 만드는 간단한 질문-답변 시스템

LangChain을 사용하여 간단한 질문-답변 시스템을 만드는 방법을 알아보겠습니다. LangChain은 대규모 언어 모델(LLM)을 활용한 애플리케이션 개발을 위한 강력한 프레임워크입니다. 이 튜토리얼을 통해 LangChain의 기본 개념을 이해하고, 실제로 동작하는 Q&A 시스템을 구축해 볼 수 있습니다.

준비 사항

시작하기 전에 다음 사항들을 준비해주세요:

  1. Python 3.7 이상 설치
  2. OpenAI API 키
  3. 필요한 라이브러리 설치:
  4. pip install langchain langchain-openai python-dotenv

코드를 작성해봅니다.

먼저, 전체 코드를 살펴본 후 중요한 부분들을 자세히 설명하겠습니다.

import os
from dotenv import load_dotenv
from langchain_openai import OpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

# .env 파일에서 환경 변수 로드
load_dotenv()

# OpenAI API 키 확인
if not os.getenv("OPENAI_API_KEY"):
    raise ValueError("OPENAI_API_KEY가 설정되지 않았습니다. .env 파일을 확인해주세요.")

# 언어 모델 초기화
llm = OpenAI(temperature=0.7)

# 프롬프트 템플릿 정의
prompt = PromptTemplate(
    input_variables=["question"],
    template="Human: {question}\nAI: Let me answer that question for you.",
)

# LLMChain 생성
chain = LLMChain(llm=llm, prompt=prompt)

# 질문-답변 함수
def ask_question(question):
    response = chain.run(question)
    return response

# 메인 루프
if __name__ == "__main__":
    print("간단한 질문-답변 시스템입니다. 질문을 입력하세요. (종료하려면 'quit' 입력)")
    while True:
        user_input = input("\n질문: ")
        if user_input.lower() == 'quit':
            print("프로그램을 종료합니다.")
            break
        answer = ask_question(user_input)
        print(f"답변: {answer}")

주요 코드 설명

1. 환경 설정 및 API 키 로드

from dotenv import load_dotenv
load_dotenv()

if not os.getenv("OPENAI_API_KEY"):
    raise ValueError("OPENAI_API_KEY가 설정되지 않았습니다. .env 파일을 확인해주세요.")

이 부분은 .env 파일에서 OpenAI API 키를 안전하게 로드합니다. API 키를 직접 코드에 입력하는 것은 보안상 위험하므로, 환경 변수를 사용하는 것이 좋습니다.

2. 언어 모델 초기화

llm = OpenAI(temperature=0.7)

OpenAI 클래스를 사용하여 GPT 모델을 초기화합니다. temperature 매개변수는 모델의 창의성을 조절합니다. 0에 가까울수록 일관된 답변을, 1에 가까울수록 다양한 답변을 생성합니다.

3. 프롬프트 템플릿 정의

prompt = PromptTemplate(
    input_variables=["question"],
    template="Human: {question}\nAI: Let me answer that question for you.",
)

PromptTemplate은 사용자 입력을 AI 모델에 전달할 때 사용할 템플릿을 정의합니다. 이 템플릿은 사용자의 질문을 포함하고, AI의 답변 형식을 지정합니다.

4. LLMChain 생성

chain = LLMChain(llm=llm, prompt=prompt)

LLMChain은 언어 모델과 프롬프트 템플릿을 연결합니다. 이를 통해 사용자 입력을 받아 AI 모델의 응답을 생성하는 과정을 단순화할 수 있습니다.

5. 질문-답변 함수

def ask_question(question):
    response = chain.run(question)
    return response

이 함수는 사용자의 질문을 받아 LLMChain을 실행하고, AI 모델의 응답을 반환합니다.

실행 방법

1.위의 코드를 ex2-ask_question.py 파일로 저장합니다.
2.같은 디렉토리에 .env 파일을 만들고 다음 내용을 추가합니다:
3.OPENAI_API_KEY=your_api_key_here
4.터미널에서 다음 명령어로 프로그램을 실행합니다:
5.python ex2-ask_question.py

실행 결과

LangChain으로 만드는 간단한 질문-답변 시스템

이 간단한 예제를 통해 LangChain을 사용하여 기본적인 질문-답변 시스템을 구축해 보았습니다. LangChain은 이외에도 다양한 기능을 제공하며, 이를 활용하여 더 복잡하고 강력한 AI 애플리케이션을 개발할 수 있습니다.

참고자료

https://makepluscode.tistory.com/289

[쳇지피티 ChatGPT OpenAI API 발급하기

쳇지피티 ChatGPT OpenAI API 발급하기OpenAI API 키 발급받기OpenAI의 API를 활용하려면 먼저 API 키를 발급받아야 합니다. 이 포스팅은 API 키를 발급받는 절차를 단계별로 안내합니다.1. OpenAI 계정 생성[Ope

makepluscode.tistory.com](https://makepluscode.tistory.com/289)

반응형