Function Calling
openai api로 최신 GPT 모델을 사용한다면 function calling로 모델에서 구조화된 데이터를 안정적으로 가져올 수 있습니다. 1
- 외부 API를 호출하여 질문에 답하게 하거나
- 자연어를 API 호출로 변환하게 할 수도 있고,
- 텍스트에서 구조화된 데이터를 추출할 수 있습니다.
function calling의 기본 구성은 다음과 같습니다.2
- JSON 스타일로 함수 집합과 사용자 쿼리를 정의합니다.
- 모델 호출 시
functions파라미터에 정의한 함수 집함과 사용자 쿼리 리스트를 전달합니다. - 모델이 입력된 메시지와 함수 목록을 읽고, 응답 내용에 따라 호출할 함수를 선택합니다.
- 모델이 필요한 인수를 채워 함수를 호출합니다.
- 함수 호출을 새 메시지로 추가하여 모델을 다시 호출합니다.
- 그 결과를 받아 다시 메시지를 생성합니다.
function calling을 효과적으로 사용하려면 어떻게 하는 게 좋을까요?
모델이 적절한 기능을 사용할 수 있도록 함수를 명료하게 작성하고, 필요한 경우 한 응답에 여러 함수를 불러오도록 코드를 작성합니다. Transformers Agents의 커스터마이징 가이드3에서 함수를 작성하는 요령에 대해 힌트를 얻을 수 있습니다.
- 여러 함수를 사용한다면 서로 구분하기 쉽도록 함수 이름을 정합니다.
- 함수 설명에 함수에 필요한 파라미터와 함수가 만들 결과물을 꼼꼼히 작성합니다.
응답에 여러 데이터가 필요하거나 생각할 과정이 필요하다면 여러 함수를 호출할 필요가 있습니다.
Footnotes
openai guide: function-calling↩︎