강좌
67개 강의 중 22번째 · Building with the Claude API도구 함수
Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Not nowSign in

Claude로 AI 애플리케이션을 구축할 때, 실시간 정보에 접근하거나 작업을 수행할 수 있는 기능을 Claude에게 제공해야 하는 경우가 많습니다. 이때 도구 함수가 필요합니다 - 도구 함수는 Claude가 사용자를 돕기 위해 추가 데이터가 필요할 때 호출할 수 있는 Python 함수입니다.

위 이미지는 우리가 구현할 세 가지 필수 도구를 보여줍니다: 현재 날짜/시간 가져오기, 날짜에 기간 추가하기, 알림 설정하기입니다. 첫 번째 도구부터 시작해 보겠습니다.

도구 함수란 무엇인가요?

도구 함수는 Claude가 사용자를 돕기 위해 추가 정보가 필요하다고 판단할 때 자동으로 실행되는 일반적인 Python 함수입니다. 예를 들어, 누군가 "지금 몇 시예요?"라고 물으면, Claude는 현재 시간을 얻기 위해 날짜/시간 도구를 호출합니다.

다음은 날씨 도구 함수의 예시입니다. 입력값을 검증하고 명확한 오류 메시지를 제공하는 방식에 주목하세요 - 이는 중요한 모범 사례입니다.

도구 함수를 위한 모범 사례

도구 함수를 작성할 때는 다음 가이드라인을 따르세요:

  • 설명적인 이름 사용하기: 함수 이름과 매개변수 이름 모두 그 목적을 명확하게 나타내야 합니다
  • 입력값 검증하기: 필수 매개변수가 비어 있거나 유효하지 않은지 확인하고, 그런 경우 오류를 발생시키세요
  • 의미 있는 오류 메시지 제공하기: Claude는 오류 메시지를 볼 수 있으며 수정된 매개변수로 함수 호출을 다시 시도할 수 있습니다

검증이 특히 중요한 이유는 Claude가 오류로부터 학습하기 때문입니다. "위치는 비워둘 수 없습니다"와 같은 명확한 오류를 발생시키면, Claude는 적절한 위치 값으로 함수를 다시 호출하려고 시도할 수 있습니다.

첫 번째 도구 함수 만들기

현재 날짜와 시간을 가져오는 함수를 만들어 보겠습니다. 이 함수는 날짜 형식 매개변수를 받아 Claude가 다양한 형식으로 시간을 요청할 수 있도록 합니다:

python
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
    if not date_format:
        raise ValueError("date_format cannot be empty")
    return datetime.now().strftime(date_format)

이 함수는 Python의 datetime 모듈을 사용하여 현재 시간을 가져오고 제공된 형식 문자열에 따라 포맷합니다. 기본 형식은 연-월-일 시:분:초를 제공합니다.

다양한 형식으로 테스트해 볼 수 있습니다:

python
# 기본 형식: "2024-01-15 14:30:25"
get_current_datetime()

# 시간과 분만: "14:30"
get_current_datetime("%H:%M")

이 검증 확인은 Claude가 날짜 형식에 빈 문자열을 전달할 수 없도록 보장합니다. 이 특정 오류는 발생할 가능성이 낮지만, 입력값을 검증하고 Claude가 학습할 수 있는 유용한 오류 메시지를 제공하는 패턴을 보여줍니다.

다음 단계

함수를 만드는 것은 첫 번째 단계일 뿐입니다. 다음으로, Claude에게 함수를 설명하는 JSON 스키마를 작성하고 이를 채팅 시스템에 통합해야 합니다. 이러한 도구 함수 접근 방식은 Claude에게 강력한 기능을 제공하면서도 코드를 체계적이고 유지보수 가능하게 유지해 줍니다.