openai Function Calling 활용하기

NLP
Author

sim-so

Published

July 30, 2023

Function Calling

openai api로 최신 GPT 모델을 사용한다면 function calling로 모델에서 구조화된 데이터를 안정적으로 가져올 수 있습니다. 1

  • 외부 API를 호출하여 질문에 답하게 하거나
  • 자연어를 API 호출로 변환하게 할 수도 있고,
  • 텍스트에서 구조화된 데이터를 추출할 수 있습니다.

function calling의 기본 구성은 다음과 같습니다.2

  1. JSON 스타일로 함수 집합과 사용자 쿼리를 정의합니다.
  2. 모델 호출 시 functions 파라미터에 정의한 함수 집함과 사용자 쿼리 리스트를 전달합니다.
  3. 모델이 입력된 메시지와 함수 목록을 읽고, 응답 내용에 따라 호출할 함수를 선택합니다.
  4. 모델이 필요한 인수를 채워 함수를 호출합니다.
  5. 함수 호출을 새 메시지로 추가하여 모델을 다시 호출합니다.
  6. 그 결과를 받아 다시 메시지를 생성합니다.

function calling을 효과적으로 사용하려면 어떻게 하는 게 좋을까요?

모델이 적절한 기능을 사용할 수 있도록 함수를 명료하게 작성하고, 필요한 경우 한 응답에 여러 함수를 불러오도록 코드를 작성합니다. Transformers Agents의 커스터마이징 가이드3에서 함수를 작성하는 요령에 대해 힌트를 얻을 수 있습니다.

  • 여러 함수를 사용한다면 서로 구분하기 쉽도록 함수 이름을 정합니다.
  • 함수 설명에 함수에 필요한 파라미터와 함수가 만들 결과물을 꼼꼼히 작성합니다.

응답에 여러 데이터가 필요하거나 생각할 과정이 필요하다면 여러 함수를 호출할 필요가 있습니다.

  • LangChain의 Agent는 단계별로 할 일을 판단하며 필요한 툴을 사용합니다.4
  • Transformers Agent는 작업 수행을 위한 코드를 전체적으로 작성한 뒤 코드 실행에 필요한 툴을 불러오는 방식으로 작동합니다. 5

Footnotes

  1. openai guide: function-calling↩︎

  2. 이 노트북에서 function calling을 사용하는 더 자세한 예시를 볼 수 있습니다.↩︎

  3. Hugging Face - Custom Tools and Prompts↩︎

  4. LangChain Docs - Agent↩︎

  5. Hugging Face - Agents↩︎