청관재(淸觀齋)

일지 #7 랭체인(LangChain) 본문

무한도전!!/Agent-ai 마스터하기!!

일지 #7 랭체인(LangChain)

청관(淸觀) 2026. 11. 14. 11:26

 

오랜만에 에이전트 공부하러 왔다...

엄청 바쁜 것들이 끝나긴 해서....

 

물론 다시 엄청엄청 바빠졌으나 에이전트 공부를 너무 쉰거같아서 와봤다.

그럼 한번 집중해보도록 하겠다!

 

이거 빨리 끝내고 주말 내로 해야할 것들이 산더미다 정말!!!!

 

 

 


# 랭체인(LangChain) 프레임워크

랭체인(LangChain)은 대규모 언어 모델(LLM)을 외부 데이터나 다양한 도구와 연결해 실제 AI 애플리케이션을 쉽게 개발하도록 돕는 오픈소스 프레임워크다. 

 

이렇게 말하면 되게 어렵지만, 실제로 애플리케이션을 구현할 때는 한 모델이 아니라 여러 LLM 모델들을 사용하게 되는데, 이 다양한 LLM을 표준화된 방식으로 쉽게 호출하고 교체할 수 있도록 하는 연결의 역할, 즉 오케스트레이션의 역할을 해준다.

 

 

랭체인은 파이썬과 자바스크립트, 이 두 가지 언어로 프레임워크를 제공한다.

이 책에서는 파이썬 프레임워크만 다루는데 IT 분야를 공부하다보니 자바스크립트가 꽤 많이 쓰이는 경우를 많이 봐서 자바스크립트도 언제 한번 공부해봐야겠다 생각이 든다.

 

 

 

랭체인은 1) 프롬프트, 2) 벡터 스토어, 3) 아웃풋 파서, 4) LLM, 5) 도구, 6) 메모리 등의 여러 구성 요소를 체인 형태로 연결하여 다양하고 복잡한 작업을 단순화 하는 것이 핵심이다.

 

- 핵심 개념
LLM 래퍼: OpenAI, Anthropic, Hugging Face 등 다양한 모델을 추상화해서 쉽게 교체 가능하게 함.
Prompt Template: 프롬프트를 변수화하고 재사용/테스트하기 쉬운 형태로 관리.
Chains(체인): 여러 처리 단계를 순서대로 묶는 구조(예: 질문 → 검색 → 요약 → 응답).
Agents(에이전트): LLM이 상황에 따라 여러 도구(검색, DB, 파일 시스템 등)를 선택해 호출하며 문제를 해결하도록 함.
Vectorstores/임베딩: 문서 임베딩과 벡터 DB(FAISS, Pinecone, Weaviate 등)를 이용한 유사도 검색 및 RAG 구현.
Memory(메모리): 대화 상태를 저장해 대화형 애플리케이션에서 문맥 유지.
Loaders/Indexers: 다양한 형식의 문서(PDF, 웹페이지 등)를 불러오고 색인하는 유틸리티.

 

 

 

## 랭체인으로 OpenAI의 GPT 모델 실행해보기

우선 필요한 패키지 설치를 아래 명령을 터미널에 입력하여 진행한다.

pip install "langchain[openai]==0.3.27"

 

 

그 다음에 아래 코드를 hello_langchain.py로 저장해준다.

from langchain.chat_models import init_chat_model

model = init_chat_model("gpt-5-mini", model_provider="openai")  # 1 LLM 초기화
result = model.invoke("랭체인이 뭔가요?")   # 2 모델 실행
print(type(result))     # 3 AIMessage 타입
print(result.content)   # 4 결괏값

 

  1. 모델 초기화 : init_chat_model() 함수를 호출하여 'gpt-5-mini' 모델을 초기화한다. 여기서 OpenAI API 키를 넘기는 부분이 생략되어 있는데, 환경 변수에 OPENAI_API_KEY가 있고 값이 올바르다면 초기화할 때, 키를 생략할 수 있다.
  2. 모델 실행 : invoke는 부른다는 뜻으로 모델이 invoke() 함수로 받은 데이터를 사용하여 LLM에 질문을 보낸다.
  3. invoke() 함수로 받은 결괏값은 AIMessage 타입이다. 
  4. 결괏값의 문자열만 출력된다.

 

실행하면 다음과 같이 출력된다.

<class 'langchain_core.messages.ai.AIMessage'> 간단히 말하면, LangChain(랭체인)은 대형언어모델(LLM)을 이용한 애플리케이션을 더 쉽게 만들도록 도와주는 오픈소스 프레임워크입니다. LLM 자체만 호출하는 수준을 넘어서서, 문서 검색(검색-응답, RAG), 대화형 메모리, 외부 도구 호출(웹 검색, DB, 계산기 등), 복합 작업 흐름(체인) 등을 조합해 실무용 애플리케이션을 구성하는 데 필요한 구성요소들을 제공합니다.
...

 

 

 

## 엔트로픽의 모델 실행해보기

똑같이 아래의 명령어를 실행해 의존성 패키지를 설치해야 한다.

pip install "langchain[anthropic]==0.3.27"

 

 

아래 코드를 hello_langchain2.py로 저장한다.

from langchain.chat_models import init_chat_model

model = init_chat_model("claude-sonnet-5-5", model_provider="anthropic") # 1 모델 초기화
result = model.invoke("랭체인이 뭔가요?")
print(result.content)

 

교재에서 사용한 모델은 서비스가 중지된 모델이라 claude-sonnet-5-5 로 바꿔서 코드를 수정해주었다.

 

 

결과는 다음과 같다.

**랭체인(LangChain)**은 GPT 같은 대규모 언어모델(LLM)을 활용해 애플리케이션을 쉽게 만들 수 있도록 도와주는 오픈소스 프레임워크입니다. 2022년 말 Harrison Chase가 처음 공개했고, 파이썬과 자바스크립트(TypeScript)로 사용할 수 있습니다.

## 왜 필요한가요?
LLM API를 직접 호출하는 것만으로는 실제 서비스를 만들기 어렵습니다. 예를 들면 다음과 같은 일이 필요합니다.
- 프롬프트를 체계적으로 관리하고 싶을 때
- 내 문서나 DB의 내용을 바탕으로 답변하게 하고 싶을 때
- 이전 대화를 기억하게 하고 싶을 때
- 외부 도구(검색, 계산기, API 등)를 LLM이 쓰게 하고 싶을 때

...

 

 

 

 

짧지만 오늘은 여기까지만 하고 내 개인 비서나 만들어볼까 한다...ㅎㅎ....;;;