[LangChain] 시작하기
LangChain 이란?LLM을 활용한 어플리케이션 개발을 위한 오픈소스 프레임워크DB, File System 지원LangChain 설치가상환경 설정conda create -n langchain python=3.11langchain 설치pip install -U langchainopenai 설치pip install
swwho.tistory.com
프로젝트 파일 구조
chatbot_project/
├── .env # 환경변수 저장
├── main.py # 챗봇 실행 스크립트
├── chatbot/
│ ├── config.py # 환경변수 로드 및 설정
│ ├── llm_chain.py # Langchain LLM 설정 및 체인 정의
│ └── prompt.py # 프롬프트 템플릿 정의
llm_chain.py
- langchain_openai를 통해 OpenAI 모델 활용
|
파이프를 통해 chain 생성- chain을 custom하기 위해 Runnable 객체 사용
from langchain_openai import OpenAI
from langchain_core.runnables import Runnable
from chatbot.prompt import prompt
from chatbot.config import OPENAI_API_KEY
def create_chatbot_chain():
llm = OpenAI(model="gpt-3.5-turbo-instruct", openai_api_key=OPENAI_API_KEY, streaming=True)
chain: Runnable = prompt | llm
return chain
config.py
- OpenAI API KEY 등 환경변수나 설정등을 담은 파일
import os
from dotenv import load_dotenv
load_dotenv()
OPENAI_API_KEY = os.getenv("OPEN_API_KEY")
prompt.py
- prompt를 관리하는 파일
from langchain.prompts import PromptTemplate
prompt = PromptTemplate.from_template(
"당신은 친절한 한국의 AI 비서입니다. 다음 질문에 정확하고 친절하게 답변합니다. 질문: \n{input}"
)
main.py
- input을 prompt와 담아 모델에 요청하고, 그 응답을 스트리밍 방식으로 처리
- print의
flush=True
를 통해 buffer를 바로바로 출력하도록 처리 - exit이 입력되면 채팅 종료
from chatbot.llm_chain import create_chatbot_chain
def main():
chain = create_chatbot_chain()
print("무엇이든 물어보세요! ('exit'으로 종료)")
while True:
user_input = input("질문: ")
if user_input.lower() == "exit":
break
print("답변:", end="", flush=True)
for chunk in chain.stream({"input": user_input}):
print(chunk, end="", flush=True)
print()
return
if __name__ == "__main__":
main()
'ML_DL > MUJAKJUNG (무작정 시리즈)' 카테고리의 다른 글
[LangChain] 모델 파라미터 설정 (0) | 2025.04.09 |
---|---|
[LangChain] 시작하기 (0) | 2025.03.19 |
Elasticsearch, Airflow 활용하기 - 3. Airflow 환경설정 (0) | 2025.03.04 |
Elasticsearch, Airflow 활용하기 - 2. Elasticsearch 설정 (0) | 2025.03.03 |
Elasticsearch, Airflow 활용하기 - 1. 환경설정 (0) | 2025.03.03 |