LangChain 통합 구현하기

LangChain 통합 구현하기 (Implement a LangChain integration)

통합 패키지는 사용자가 프로젝트에서 사용하도록 설치할 수 있는 패키지예요. LangChain 인터페이스 표준을 준수하는 하나 이상의 컴포넌트를 구현합니다.

출처: 문서

본문

LangChain 컴포넌트는 langchain-core의 기본 클래스 서브클래스입니다. 예로는 채팅 모델, 도구, 리트리버 등이 있습니다.

통합 패키지는 일반적으로 이들 컴포넌트 중 적어도 하나의 서브클래스를 구현합니다. 아래 탭을 펼쳐 각각에 대한 세부 사항을 확인하세요.

  • 채팅 모델 (Chat Models) — 채팅 모델은 BaseChatModel 클래스의 서브클래스입니다. 채팅 완성 생성, 메시지 포맷팅 처리, 모델 파라미터 관리를 위한 메서드를 구현합니다.

    채팅 모델 통합 가이드는 현재 WIP입니다. 그동안 LangChain 채팅 모델이 어떻게 동작하는지 자세한 내용은 [채팅 모델 개념 가이드](/oss/javascript/langchain/models)를 읽어보세요. [LangChain 저장소](https://github.com/langchain-ai/langchainjs/tree/main/libs/providers)의 기존 통합을 참고할 수도 있습니다.
  • 임베딩 (Embeddings) — 임베딩 모델은 Embeddings 클래스의 서브클래스입니다.

    임베딩 모델 통합 가이드는 현재 WIP입니다. 그동안 LangChain 임베딩 모델이 어떻게 동작하는지 자세한 내용은 [임베딩 모델 개념 가이드](/oss/javascript/integrations/embeddings)를 읽어보세요.
  • 도구 (Tools) — 도구는 주로 두 가지 방식으로 사용됩니다:

    1. 텍스트 요청과 함께 채팅 모델의 도구 호출 기능에 전달할 "입력 스키마" 또는 "인자 스키마"를 정의하여, 채팅 모델이 "도구 호출" 또는 도구를 호출할 파라미터를 생성하게 합니다.
    2. 위에서 생성된 "도구 호출"을 받아 어떤 조치를 취하고, ToolMessage로 채팅 모델에 다시 전달할 수 있는 응답을 반환합니다.

    Tools 클래스는 BaseTool 기본 클래스에서 상속받아야 합니다. 이 인터페이스에는 서브클래스에서 구현해야 하는 3개의 속성과 2개의 메서드가 있습니다.

    도구 통합 가이드는 현재 WIP입니다. 그동안 LangChain 도구가 어떻게 동작하는지 자세한 내용은 [도구 개념 가이드](/oss/javascript/langchain/tools)를 읽어보세요.
  • 미들웨어 (Middleware)미들웨어는 모델 호출, 도구 호출, 에이전트 수명주기 이벤트에 훅을 걸어 에이전트 동작을 커스터마이즈할 수 있게 해줍니다. 미들웨어 클래스는 AgentMiddleware 기본 클래스를 서브클래싱합니다.

    통합을 구축하기 전에 커스텀 미들웨어 가이드를 읽고 훅, 상태 업데이트, 미들웨어 패턴을 이해하세요.

    미들웨어 통합은 일반적으로 두 범주로 나뉩니다:

    유형 설명 예시
    프로바이더 특정(Provider-specific) 프로바이더의 고유 기능 활용 프롬프트 캐싱, 네이티브 도구 실행, 콘텐츠 조정
    프로바이더 간(Cross-provider) 어떤 모델이나 도구와도 작동 속도 제한, PII 탐지, 로깅, 가드레일

    프로바이더 특정 미들웨어는 프로바이더의 통합 패키지(예: langchain-anthropic)에 있습니다. 프로바이더 간 미들웨어는 독립 패키지로 게시할 수 있습니다.

    참고로 기존 미들웨어 통합을 사용할 수도 있습니다:

    • Anthropic 미들웨어 (/oss/javascript/integrations/middleware/anthropic): 프롬프트 캐싱, 도구, 메모리, 파일 검색을 위한 여러 미들웨어 클래스
    • 커스텀 미들웨어 가이드 (/oss/javascript/langchain/middleware/custom): 훅, 상태 업데이트, 패턴에 대한 전체 레퍼런스
  • 체크포인터 (Checkpointers) — 체크포인터는 LangGraph에서 영속성을 활성화하여 에이전트가 상호작용 간에 상태를 저장하고 재개할 수 있게 합니다. 구현 예시는 LangGraph 저장소의 기존 체크포인터 통합을 참고하세요.

  • 샌드박스 (Sandboxes) — 샌드박스 통합은 Deep Agents가 격리된 환경에서 코드를 실행할 수 있게 합니다.

더 알아보기