Claude-3, Message API를 통한 새로운 함수 호출 기능 업데이트

:pytorch:PyTorchKR:kr:

  • 최근 GPT-4의 대항마로 급격히 부상하고 있는 Anthropic의 Claude-3가 새로운 함수 호출 기능을 업데이트하였습니다. 기존의 XML을 사용한 함수 정의 및 호출 기능을 종료하고, 새롭게 Message API 내에서 구조화된 출력 및 외부 도구와 상호작용을 할 수 있도록 하였습니다. 자세한 내용은 함께 살펴보시죠 :smiley:

Claude-3, 새로운 함수 호출 기능 업데이트
Anthropic Discord 캡쳐, 식목일을 맞이하여 함수 호출 기능 업데이트 소식을 알렸습니다


소개

Anthropic의 Messages API를 통해 Claude의 도구 사용 기능이 베타 버전으로 모든 고객에게 제공되기 시작했습니다. 이 기능은 Claude가 구조화된 출력을 사용하여 외부 도구와 상호 작용할 수 있게 하며, 내부 지식 베이스 및 API에서 문서를 검색하고, 실시간 데이터가 필요한 작업을 완료하며, 세부적인 요청에 대해 Claude 하위 에이전트를 조율할 수 있도록 합니다. 개발자 문서, 데모 비디오, 계산기 도구 사용 예시 등의 자료를 통해 영감을 얻고, Claude의 새로운 가능성을 탐색할 수 있습니다.

이 기능은 Claude를 더욱 다양하고 유용하게 만들어 주며, 개발자들이 Claude를 사용하여 자신의 응용 프로그램에서 복잡한 작업을 수행할 수 있게 해줍니다. 도구 사용 기능은 Claude에게 특정 작업을 수행할 때 필요한 정보를 제공하고, Claude가 이를 바탕으로 사용자 질문이나 요청에 답변할 수 있도록 합니다.

주요 특징

  • 공개 베타 출시: 최신 anthropic-beta: tools-2024-04-04 헤더를 포함한 API 요청을 통해 접근 가능합니다.

  • 사용자 정의 도구 제공: 개발자는 Claude에게 자신의 도구를 제공할 수 있으며, 이는 특정 작업을 수행하는 데 사용됩니다.

  • 도구 사용 과정: 사용자 프롬프트 제공, Claude가 도구 사용 결정, 도구 입력 추출 및 코드 실행, 도구 결과를 Claude에 반환하는 과정을 포함합니다.

  • 베타 기간 동안의 제한사항: 스트리밍 지원이 아직 없으며, 베타 버전 전에 여러 베타 버전이 출시될 수 있습니다.

사용 방법

도구 정의

도구를 Claude에게 제공하기 위해서는 도구의 이름, 설명, 입력 스키마를 정의해야 합니다. 다음 예시는 Claude에게 기본적인 산술 연산을 수행할 수 있는 간단한 계산기 도구인 calculator를 제공하는 방법을 보여줍니다. 이 도구는 expression이라는 이름의 연산을 수행할 수학적 표현식(예. 1+2)을 받아 그 결과를 반환할 수 있다는 내용을 포함하여 다음과 같이 정의할 수 있습니다:

{
  "name": "calculator",
  "description": "A simple calculator that performs basic arithmetic operations.",
  "input_schema": {
    "type": "object",
    "properties": {
      "expression": {
        "type": "string",
        "description": "The mathematical expression to evaluate (e.g., '2 + 3 * 4')."
      }
    },
    "required": ["expression"]
  }
}

도구 사용 요청

사용자는 Claude에게 특정 작업을 요청할 때, Claude가 이러한 도구 중 하나 이상을 사용해야 할 수도 있습니다. Claude는 이를 판단하고 적절한 도구를 사용하여 요청을 처리합니다.

앞의 계산기 예제를 계속 예시로 들면, Claude가 사용자의 질문에 대응하여 calculator 도구를 호출할 필요가 있다고 결정하면, Claude는 API를 통해 해당 도구를 사용한 요청을 생성합니다. 이러한 도구 사용 호출의 예시로, 사용자가 "1984135 * 9343116의 결과는 무엇인가요?"라고 물었을 때 Claude는 다음과 같은 요청을 구성할 수 있습니다:

{
  "name": "calculator",
  "input": {
    "expression": "1984135 * 9343116"
  }
}

위 요청은 calculator라는 이름의 도구를 1984135 * 9343116이라는 값을 갖는 expression을 인자로 제공하여 호출합니다.

도구 결과 반환

도구를 실행한 후, 실행 결과를 Claude에게 반환해야 합니다. Claude는 이 정보를 사용하여 사용자에게 최종 답변을 제공합니다.

위의 예시에 대해서는 다음과 같은 답변이 반환될 것입니다:

{
  "role": "user",
  "content": [
    {
      "type": "tool_result",
      "tool_use_id": "toolu_01V2mzqp5qkB5QucRFjJUJLD",
      "content": "18538003464660"
    }
  ]
}

그리고 이러한 결과를 사용하여 Claude는 사용자에게 "1984135 * 9343116의 결과는 18538003464660입니다."라고 답변할 수 있게 합니다.


이러한 방식으로 Claude는 단순한 정보 검색을 넘어서 실시간 데이터 처리, 복잡한 계산 수행 등 다양한 작업을 수행할 수 있게 됩니다.

더 읽어보기

도구 사용과 관련한 기술 문서

데모 영상

예시 코드




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

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

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