Function Calling, Tool Calling, JSON Schema

양진모·2025년 4월 10일

1. Function Calling이란?

AI가 외부 기능(함수)을 직접 호출하여, 더 정밀하고 실용적인 작업을 수행하는 기능입니다.

예시

사용자:

What’s the weather in Seoul?

→ AI는 날씨 정보를 가져오기 위해 다음과 같은 함수를 호출하려고 시도함:

get_weather("Seoul")

2. Tool Calling이란?

Function Calling을 확장한 개념으로, AI가 다양한 도구(API, 계산기, 웹 브라우저 등)를 자동으로 활용할 수 있게 만든 시스템입니다.

정리

구분설명
Function Calling미리 정의된 함수를 호출
Tool Calling함수뿐 아니라 계산기, 검색기 등 다양한 도구 사용 가능

3. JSON Schema란?

함수나 툴을 쓸 때, AI가 어떤 입력값이 필요한지 이해할 수 있도록 도와주는 명세서입니다.
즉, "이 함수는 이런 식으로 써야 해!"라고 알려주는 구조입니다.

예시: JSON Schema

tools = [{
  "name": "get_weather",
  "description": "Get the current weather for a city",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "Name of the city"
      },
      "unit": {
        "type": "string",
        "enum": ["celsius", "fahrenheit"],
        "description": "Temperature unit"
      }
    },
    "required": ["city"]
  }
}]

4. 전체 흐름 요약

사용자가 자연어로 질문하면,
AI는 그걸 해석해서 함수(또는 툴)를 호출하고,
해당 함수의 결과를 받아서 자연어로 다시 대답하는 흐름입니다.

즉, 자연어 → 함수 호출 → 결과 → 자연어 응답 으로 이어지는 자동화된 작업 처리 구조라고 볼 수 있어요.

Step-by-Step 설명

1단계: Tool 정의 + 사용자 질문

  • 먼저 개발자가 GPT에게 사용할 수 있는 툴을 등록해둡니다.
    예: get_weather(location)
    이 함수는 "어느 위치의 날씨 정보를 알려주는 함수"라고 가정합니다.

  • 이제 사용자가 질문합니다.

What’s the weather in Paris?
(파리 날씨 어때?)

🔍 이때 모델(GPT)은 질문을 이해한 뒤,
"날씨 관련 정보가 필요하니 get_weather 함수를 호출해야겠다" 라고 스스로 판단합니다.

2단계: AI가 Tool 호출

모델이 위 질문을 바탕으로 적절한 파라미터를 만들어 툴을 호출할 준비를 합니다.

get_weather("paris")

이 과정에서 모델은 자연어 문장을
함수의 입력값 형태로 자동 변환한 것입니다.

즉, 사람의 말 → 코드 입력값으로 변환하는 역할을 수행합니다.

3단계: 툴(함수) 실행

이제 실제로 툴이 호출되어 백엔드에서 실행됩니다.
즉, 이 부분은 GPT가 아닌 시스템/서버 쪽에서 담당합니다.

get_weather("paris")  
# → 결과: { "temperature": 14 }

예를 들어, 날씨 API에 요청을 보내고, 파리의 온도 정보를 받아오는 식이죠.

결과적으로 다음과 같은 데이터가 도착합니다:

{ "temperature": 14 }

4단계: 결과 전달

이제 이 실행 결과를 다시 모델에게 전달합니다.
모델은 기존의 대화 기록과 함께 이 결과도 받습니다.

👀 모델은 이렇게 생각합니다:

“음, 방금 실행한 함수의 결과를 보니 온도가 14도네.
그럼 사용자의 질문에 맞게 자연스럽게 대답을 만들어야겠다!”

5단계: 자연어 응답 생성

모델은 위의 결과 데이터를 바탕으로, 사용자가 이해하기 쉬운 자연어 문장을 생성합니다.

It’s currently 14°C in Paris.

사용자는 단지 "파리 날씨 어때?" 라고 물었을 뿐인데,
그 사이에 GPT는:

  1. 적절한 함수 선택
  2. 파라미터 추출
  3. 함수 호출
  4. 결과 해석
  5. 응답 생성

까지 모두 자동으로 처리해준 것입니다!

핵심 요약

단계내용예시
1단계사용자 질문 → 툴 정의 기반 분석"What’s the weather in Paris?"
2단계적절한 함수 호출 준비get_weather("paris")
3단계툴 실행 (백엔드)결과: { "temperature": 14 }
4단계결과 전달 → 모델이 해석모델이 정보 인식
5단계자연어 응답 생성"It’s currently 14°C in Paris."

5. 언제 사용될까?

  • 날씨, 뉴스, 환율 등 실시간 정보 조회
  • 계산기, 그래프, DB 질의 등 정확한 처리
  • 외부 API 연동 기능이 필요한 모든 GPT 기반 서비스
profile
develop을 꿈꾸는

0개의 댓글