Langchain-AutoTools 소개
Langchain-AutoTools는 Python SDK를 기반으로 자동화된 툴킷을 생성하는 도구입니다. 기존의 Python SDK가 제공하는 CRUD(Create, Read, Update, Delete) 기능을 추가적인 코드 작성 없이도 자동으로 툴킷화할 수 있습니다. 예를 들어, AWS SDK인 boto3
를 통해 AWS S3 버킷 목록을 조회하거나 버킷을 생성하는 기능을 에이전트가 자동으로 실행할 수 있도록 설정할 수 있습니다. 이를 통해 Langchain과 LLM을 결합하여 다양한 작업을 자동화할 수 있으며, 개발자는 손쉽게 복잡한 로직을 처리하는 도구를 구축할 수 있습니다.
주요 기능
-
AutoToolWrapper: SDK의 클라이언트를 감싸서 도구로 변환합니다. 예를 들어, AWS의 S3 클라이언트를 자동으로 도구화할 수 있습니다.
-
CrudControls: SDK에서 제공하는 CRUD 기능을 제어합니다. 이를 통해 에이전트가 어떤 함수에 접근할 수 있는지 관리할 수 있습니다.
사용 방법
Langchain AutoTools를 사용해 SDK 기반 툴킷을 만들기 위해서는 아래와 같은 단계가 필요합니다:
- SDK 클라이언트 준비: AWS SDK인
boto3
를 사용해 S3 클라이언트를 준비합니다. 이를 위해 AWS 자격증명을 설정하고,list_buckets
명령으로 계정에 있는 S3 버킷 목록을 확인할 수 있습니다.
import boto3
s3 = boto3.client("s3")
buckets = s3.list_buckets()
print(len(buckets["Buckets"]))
- 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)
- 에이전트 설정: 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로 공개 및 배포되고 있습니다.
Langchain-AutoTools GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~