Langchain-AutoTools: Python SDK을 Langchain에서 사용 가능한 도구로 변환하는 프로젝트

Langchain-AutoTools 소개

Langchain-AutoTools는 Python SDK를 기반으로 자동화된 툴킷을 생성하는 도구입니다. 기존의 Python SDK가 제공하는 CRUD(Create, Read, Update, Delete) 기능을 추가적인 코드 작성 없이도 자동으로 툴킷화할 수 있습니다. 예를 들어, AWS SDK인 boto3를 통해 AWS S3 버킷 목록을 조회하거나 버킷을 생성하는 기능을 에이전트가 자동으로 실행할 수 있도록 설정할 수 있습니다. 이를 통해 Langchain과 LLM을 결합하여 다양한 작업을 자동화할 수 있으며, 개발자는 손쉽게 복잡한 로직을 처리하는 도구를 구축할 수 있습니다.

주요 기능

  1. AutoToolWrapper: SDK의 클라이언트를 감싸서 도구로 변환합니다. 예를 들어, AWS의 S3 클라이언트를 자동으로 도구화할 수 있습니다.

  2. CrudControls: SDK에서 제공하는 CRUD 기능을 제어합니다. 이를 통해 에이전트가 어떤 함수에 접근할 수 있는지 관리할 수 있습니다.

사용 방법

Langchain AutoTools를 사용해 SDK 기반 툴킷을 만들기 위해서는 아래와 같은 단계가 필요합니다:

  1. SDK 클라이언트 준비: AWS SDK인 boto3를 사용해 S3 클라이언트를 준비합니다. 이를 위해 AWS 자격증명을 설정하고, list_buckets 명령으로 계정에 있는 S3 버킷 목록을 확인할 수 있습니다.

import boto3

s3 = boto3.client("s3")
buckets = s3.list_buckets()
print(len(buckets["Buckets"]))
  1. AutoToolWrapper 적용: AutoToolWrapper를 사용해 클라이언트를 도구화하고, 에이전트가 이를 사용하도록 설정할 수 있습니다. CrudControls를 통해 에이전트가 접근할 수 있는 기능을 제한할 수 있습니다.
from langchain_autotools import AutoToolWrapper, CrudControls

client = {"client": s3}
crud_controls = CrudControls(read_list="list_buckets")

autotool = AutoToolWrapper(client=client, crud_controls=crud_controls)
  1. 에이전트 설정: Anthropic의 Claude 모델과 Langchain을 사용해 에이전트를 생성하고, 이 에이전트가 자동화된 도구를 사용할 수 있도록 설정할 수 있습니다.
from langchain.agents import AgentExecutor, create_structured_chat_agent
from langchain_anthropic import ChatAnthropic

llm = ChatAnthropic(model="claude-3-sonnet-20240229", temperature=0)

agent = create_structured_chat_agent(llm, autotool.operations, prompt)
agent_executor = AgentExecutor(
    agent=agent,
    tools=autotool.operations,
    verbose=True,
    max_iterations=3,
)

라이선스

Langchain-AutoTools 프로젝트는 MIT License로 공개 및 배포되고 있습니다.

:github: Langchain-AutoTools GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: