AI VIDEO BRIEFING

랭체인 커스텀 툴 만들기: LLM이 API를 호출하는 도구 연동 실습

랭체인(LangChain)의 tool 데코레이터로 커스텀 도구를 만들고, 로컬 라마(Ollama) LLM이 사용자 질문에 따라 그 도구를 호출하게 하는 과정을 단계별로 정리했다.

랭체인으로 나만의 도구 만들기: LLM이 외부 API를 직접 호출하게 하는 법 영상 대표 이미지

핵심 메시지

  • 랭체인을 쓰면 LLM별로 다른 연결 코드를 매번 작성할 필요 없이 통일된 방식으로 모델을 호출할 수 있다.
  • 함수 위에 tool 데코레이터를 붙이면 그 함수가 LLM이 쓸 수 있는 "도구"로 등록된다.
  • LLM은 도구를 직접 실행하지 않고, 어떤 도구를 어떤 인자로 부를지 랭체인에 알려주기만 한다. 실제 호출은 랭체인이 한다.
  • 함수의 독스트링(docstring)은 LLM이 도구의 용도를 이해하는 핵심 단서이므로 반드시 명확히 적어야 한다.

쉽게 이해하기

이 영상은 랭체인(LangChain)으로 직접 만든 도구(tool)를 LLM과 연동하는 방법을 다룬다. 발표자는 먼저 랭체인 없이 라마(Ollama) 모델을 호출하던 방식과 비교하며, 랭체인이 모델 연결에 필요한 설정을 대신 처리해 코드를 크게 줄여준다고 설명한다.

실습은 가상환경을 만들고 langchain, langchain-core, langchain-community, 라마 연동 패키지, 그리고 API 호출용 requests 라이브러리를 설치하는 것으로 시작한다. 그다음 ChatOllama로 로컬에서 실행 중인 모델 이름을 지정해 llm.invoke로 질문을 던지는 간단한 예제를 보여준다.

핵심은 커스텀 도구 제작이다. 상품 ID를 받아 외부 스토어 API에서 상품 정보를 가져오는 함수를 만들고, 그 함수에 랭체인의 tool 데코레이터를 붙여 도구로 등록한다. 함수의 독스트링에 "상품 ID로 스토어의 상품 정보를 가져온다"고 적어두면, LLM이 이 설명을 읽고 언제 이 도구를 써야 할지 판단한다.

발표자는 사용자 질문 → LLM → 도구 호출 여부 판단 → 랭체인이 도구 실행 → 응답 반환으로 이어지는 흐름을 도식으로 설명한다. 시스템 프롬프트로 "상품 정보 요청이면 yes, 아니면 no"만 답하게 한 뒤, yes일 때만 bind_tools로 도구를 묶어 LLM을 호출하고, 응답의 tool_calls에서 도구 이름과 인자를 꺼내 실제 함수를 실행한다.

마지막으로 "상품 ID 1의 정보를 알려줘"라는 질문에는 도구가 호출돼 상품 제목이 출력되고, "인도의 수도는?" 같은 범위 밖 질문에는 도구를 건너뛰고 LLM이 곧바로 답(뉴델리)하는 두 시나리오를 실행해 보여준다.

주요 인사이트

  • LLM은 "어떤 도구를 호출하라"는 신호만 낼 뿐, 실행 주체는 프레임워크(랭체인)라는 역할 분리를 이해하면 도구 연동 구조가 명확해진다.
  • 도구를 언제 쓸지는 결국 자연어 설명(독스트링)에 달려 있어, 설명 품질이 도구 사용 정확도를 좌우한다.
  • "yes/no만 답하라"는 시스템 프롬프트로 도구 호출 여부를 먼저 걸러내는 방식은, 불필요한 도구 호출을 줄이는 실용적인 라우팅 기법이다.
  • 로컬 라마 모델만으로도 외부 API를 붙인 도구 호출 에이전트를 만들 수 있어, 클라우드 API 비용 없이 실습이 가능하다.

자주 묻는 질문

랭체인을 쓰면 무엇이 편해지나?

LLM마다 다른 연결·호출 방식을 직접 작성할 필요 없이 통일된 인터페이스로 모델을 호출할 수 있어 설정 코드가 크게 줄어든다.

LLM이 도구를 직접 실행하는가?

아니다. LLM은 어떤 도구를 어떤 인자로 호출해야 하는지 랭체인에 알려주기만 하고, 실제 도구 실행은 랭체인이 담당한다.

도구 함수에서 독스트링이 왜 중요한가?

LLM은 독스트링을 읽고 그 도구의 용도를 파악해 호출 여부를 결정하기 때문에, 독스트링이 없거나 모호하면 도구가 제대로 선택되지 않는다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식