개발 창고/AI

LangChain이 뭐예요? ChatGPT를 내 서비스에 붙이는 프레임워크!

로이제로 2025. 7. 1. 22:00
반응형

LangChain이 뭐예요?

LangChain은 ChatGPT 같은 LLM을 사용한 앱을 쉽게 만들도록 도와주는 파이썬 프레임워크입니다.

예를 들어 이런 걸 만들고 싶다면?

"사용자가 질문하면, 관련 문서를 검색하고 요약해주는 AI 서비스"

LangChain을 쓰면, 이 복잡한 과정을 코드 몇 줄로 구현할 수 있어요.


기본 개념과 파이썬 예제

1. 프롬프트 템플릿 (PromptTemplate)

프롬프트를 코드로 쉽게 구성하고 재사용할 수 있어요.

from langchain.prompts import PromptTemplate

template = "너는 친절한 AI야. 사용자 질문: {question}"
prompt = PromptTemplate.from_template(template)

question = "파이썬이 뭔가요?"
print(prompt.format(question=question))

출력:

너는 친절한 AI야. 사용자 질문: 파이썬이 뭔가요?

2. LLM 연결하기

OpenAI GPT 모델을 연결해서 텍스트를 생성해볼 수 있어요.

from langchain.llms import OpenAI
from langchain.chains import LLMChain

llm = OpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
chain = LLMChain(llm=llm, prompt=prompt)

response = chain.run("LangChain은 뭐하는 거에요?")
print(response)

실제 실행을 위해선 OPENAI_API_KEY 환경변수가 필요해요.


3. 체인 (Chain) 구성하기

단순한 질문-답변 이상의 과정을 이어서 구성할 수 있어요.

예를 들어:

  • 질문을 정제하고
  • 관련 내용을 검색하고
  • 요약해서 답하는 체인을 만들 수 있어요.
# 여러 단계로 연결된 체인을 만들 수도 있어요.
# 예: 질문 -> 검색 -> 요약 -> 답변

# 여기선 LLMChain만 연결한 단순 예제를 보여줄게요.

4. 메모리 추가 (대화 유지)

이전 대화를 기억하도록 메모리를 추가해봅시다.

from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory

conversation = ConversationChain(
    llm=llm,
    memory=ConversationBufferMemory()
)

print(conversation.run("안녕?"))
print(conversation.run("방금 내가 뭐라고 했지?"))

5. 외부 도구 사용하기 (Agent)

계산기, 웹 검색 같은 도구를 AI가 스스로 판단해 사용할 수 있게 만들 수 있어요.

from langchain.agents import load_tools, initialize_agent
from langchain.agents.agent_types import AgentType

tools = load_tools(["llm-math"], llm=llm)
agent = initialize_agent(
    tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True
)

print(agent.run("45872 곱하기 23은 얼마야?"))

요약

기능 설명 예제
PromptTemplate 프롬프트 템플릿화 PromptTemplate.from_template()
LLMChain LLM 연결된 체인 LLMChain(prompt=..., llm=...)
ConversationChain 대화 기억 기능 ConversationBufferMemory()
Agent 도구 자동 활용 계산기, 검색 등

마무리

LangChain은 "GPT를 이용해 서비스 만들기"를 훨씬 쉽게 만들어주는 도구예요.
특히 프롬프트 체계화, 대화 메모리, 외부 도구 연동 등이 강력해요.

반응형