Sitemap
TOKTOKHAN.DEV — TEAM

똑똑한개발자는 디지털 프로덕트 에이전시 입니다. 프로젝트를 진행하면서 얻게되는 기술 또는 디자인 관점에서의 인사이트를 공유하기 위해 콘텐츠를 발행하고 있습니다. We publish content to share insights gained from a technical or design perspective while working on projects.

Follow publication

LangChain을 활용한 AI Agent(에이전트) 만들기| Part.1 보일러플레이트 구성하기

--

LangChain 구성요소 이해하기와 똑순이 Ver.2.0

안녕하세요 사랑받는 IT 프로덕트의 첫 스텝, 똑똑한개발자입니다.

AI 기술을 활용한 다양한 응용 프로그램을 만들 때, LangChain을 이용한 AI Agent는 매우 유용합니다. 이 글에서는 LangChain을 활용해 AI Agent를 만들기 위한 첫 번째 단계로, 기본 보일러플레이트 구성을 다뤄보겠습니다.

AI Agent가 어떤 방식으로 작동하는지, 그리고 LangChain의 주요 구성 요소들에 대해 알아보겠습니다!

LangChain 구성요소 이해하기

1. 프롬프트

프롬프트는 AI 모델에게 특정 정보를 요청할 때 사용되는 템플릿입니다. 이를 통해 사용자가 입력한 데이터를 AI가 이해하고, 정확한 형식으로 응답할 수 있도록 유도합니다.

LangChain의 프롬프트 템플릿을 사용하면, 다양한 질문을 효율적으로 처리할 수 있습니다.

사용 예시

from langchain.prompts import PromptTemplate

prompt = PromptTemplate.from_template("'{topic}'에 대해 설명해줘.")
formatted_prompt = prompt.format(topic="LangChain")
print(formatted_prompt) # "LangChain에 대해 설명해줘."

2. 문서 검색

LangChain은 벡터 스토어(Vector Store)를 이용하여 문서를 검색하는 기능을 제공합니다. 이를 통해 AI는 외부 메모리처럼 데이터를 활용하여 필요한 정보를 빠르게 찾아 응답에 반영할 수 있습니다. 예를 들어, AI가 대량의 문서를 검색해 특정 정보를 찾아내는 작업을 할 수 있습니다.

사용 예시:

  • AI 기반 FAQ 시스템 구축
  • 대량의 문서를 AI가 검색할 수 있도록 구성

3. 분류

AI Agent는 입력된 데이터를 자동으로 특정 카테고리로 분류할 수 있습니다. 예를 들어, 고객의 문의 사항을 “환불 요청”, “기술 지원”, “일반 질문” 등으로 구분할 수 있습니다. 기존의 머신러닝 모델처럼 별도의 훈련 과정 없이 다양한 카테고리 분류가 가능합니다.

사용 예시:

  • 이메일을 “스팸”과 “정상”으로 분류
  • 뉴스 기사를 “정치”, “경제”, “스포츠” 등으로 자동 분류

4. 추출

입력된 텍스트에서 특정 키워드나 엔티티(인물, 날짜, 장소 등)를 추출하는 기능도 LangChain의 주요 기능 중 하나입니다. 분류와 달리 추출은 텍스트에서 필요한 정보만 뽑아내는 작업입니다.

사용 예시:

  • 뉴스 기사에서 기업명과 주가 변동 정보 추출
  • 채팅 로그에서 사용자 ID와 대화 내용을 정리

LangChain은 이 외에도 많은 기능을 제공하고 있습니다. 그 외에도 다양한 기능들이 있지만, 이 정도만으로도 충분히 원하는 AI Agent를 만들 수 있을 것 같습니다.

똑순이 Ver.2.0 Loading…

이제 기본적인 LangChain 구성 요소들을 이해했으니, 실제로 AI Agent를 만드는 과정으로 넘어가겠습니다. 기본 환경은 ‘똑똑한개발자’ 보일러플레이트를 사용하여, page router로 시작했습니다.

agent-init 의 폴더 구조

├── agent                    
│ ├── classifications # 분류(Classification) 작업을 위한 로직과 템플릿
│ │ ├── templates.ts # 분류 작업에 필요한 템플릿 정의
│ │ └── index.ts # 분류 로직의 핵심 실행 파일
│ ├── extractions # 구조화된 데이터 추출(Extraction) 로직을 실행하는 모듈
│ │ ├── templates.ts # 데이터 추출을 위한 템플릿 정의
│ │ └── index.ts # 추출 로직의 핵심 실행 파일
│ ├── knowleges # 파일 기반 검색(File Search) 기능을 위한 인터페이스
│ │ ├── example.txt # 샘플 파일 (파일 검색 테스트용)
│ │ └── index.ts # 파일 검색 로직 구현
│ ├── prompts # 대화 생성을 위한 프롬프트 관리
│ │ ├── templates.txt # 프롬프트 템플릿 저장소
│ │ └── index.ts # 프롬프트 관련 기능을 처리하는 파일
│ ├── helper.ts # LLM 모델을 활용한 보조 기능 구현
│ └── index.ts # 전체 Agent 구성을 관리하는 엔트리 파일
└── ...

Agent 로직

이제 AI Agent가 어떻게 작동하는지 구체적인 로직을 살펴보겠습니다. AI Agent는 다양한 유형의 대화를 처리합니다.

  • 일상 대화: 일반적인 대화를 처리
  • 기술 질문: 벡터 스토어에 저장된 기술적 지식을 바탕으로 답변
  • 똑똑한개발자 문의: 수집된 이메일을 기반으로 메일을 보내거나, 이메일 수집 프로세스를 진행

모든 대화는 유저 기반으로 저장되며, 이를 통해 AI는 점차 더 나은 응답을 제공할 수 있습니다. (Supabase 사용 예정입니다.)

LangChain을 활용한 AI Agent 구축은 생각보다 간단하면서도 강력한 기능을 제공합니다.

프롬프트, 문서 검색, 분류, 추출 등 다양한 기능을 적절히 활용하면 효율적인 AI Agent를 만들 수 있습니다. 이번 글에서는 보일러플레이트 구성을 살펴보았고, 차후에는 각 구성 요소를 어떻게 활용할지 더 깊이 다뤄보겠습니다!

감사합니다. 🙇‍♀️

--

--

TOKTOKHAN.DEV — TEAM
TOKTOKHAN.DEV — TEAM

Published in TOKTOKHAN.DEV — TEAM

똑똑한개발자는 디지털 프로덕트 에이전시 입니다. 프로젝트를 진행하면서 얻게되는 기술 또는 디자인 관점에서의 인사이트를 공유하기 위해 콘텐츠를 발행하고 있습니다. We publish content to share insights gained from a technical or design perspective while working on projects.

No responses yet

Write a response