OpenAI 펑션 콜링(Function Calling)

KangHo Lee's avatar
Jul 03, 2025
OpenAI 펑션 콜링(Function Calling)

🧩 1. 펑션 콜링이란?

  • OpenAI API의 Chat Completions 기능을 통해, functions 또는 tools 파라미터에 함수(혹은 API 호출)를 정의하면, 모델이 필요에 따라 해당 함수를 직접 호출하기 위한 JSON 인자를 생성할 수 있는 기능입니다.
  • 즉, GPT 모델이 JSON 구조로 “이 함수에 이런 값을 넣어 호출하세요”라고 명시해 주며, 개발자는 이를 파싱해 실제 함수를 실행하면 됩니다. 

✅ 2. 주요 장점

  1. 일관된 구조화된 출력
      • 자연어 응답 대신 JSON 형식으로 응답 받아, 정확한 필드와 타입 구조를 보장받을 수 있습니다. 
  1. API · 데이터와의 안정적 연동
      • 함수 호출을 통해 외부 API 또는 내부 로직에 신뢰성 있는 연결을 구현할 수 있습니다. 
  1. 프롬프트 엔지니어링 부담 완화
      • 복잡한 프롬프트 설계 없이도, JSON 스키마 기반으로 명확한 입력 구조 지정 → 모델이 알아서 생성하게 할 수 있습니다.
  1. 도구 기반 에이전트 응용 가능
      • 모델이 상황에 맞춰 자동으로 내부 함수 호출 의사 결정을 하며 에이전트처럼 행동할 수 있습니다. 

💡 3. 실제 사용 흐름

  1. 함수 스키마 정의
    1. { "name": "get_current_weather", "description": "Fetch current weather", "parameters": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location", "unit"] } }
  1. ChatCompletion 호출
      • messages + functions 전달
      • 모델이 함수 호출 필요시 "function_call"으로 JSON 출력
  1. 함수 실행
      • JSON 인자를 파싱해 실제 함수 호출
  1. 결과 반영
      • 실행 결과를 다시 ChatCompletion에 포함하면, GPT가 결과를 자연스레 통합해 최종 응답 생성
  1. 사용자에게 응답

🔍 4. 적용 예시

  • 📅 스케줄러: “오늘 오후 3시에 회의 추가해줘” → 캘린더 함수 호출 → 확정된 응답 전달
  • 🌦️ 날씨 조회:
    • get_current_weather({"location":"Busan, KR","unit":"celsius"})
    • → 실제 날씨 API 호출 후 사용자에게 보고
  • 💵 주가 조회: 함수 호출 → 금융 API 연동, JSON으로 가격 제공

📌 6. 요약 테이블

항목
설명
정의
모델이 JSON 형식으로 함수 호출 인자 생성
장점
구조화된 응답, 안정적 API 연동, 개발 생산성 향상
절차
스키마 정의 → 메세지 + 함수 포함 → 호출 판단 → 함수 실행 → 결과 반환
고급 기능
strict 모드, o‑series 모델 CoT 개선, 모니터링 & 안전성 강화
활용 사례
스케줄 관리, 날씨/금융/검색 에이전트 등 다양한 도메인 확장 가능

🚀 7. 맺음말

  • OpenAI의 펑션 콜링은 기존의 프롬프트 기반 추출-파싱 방식의 약점을 메우고, LLM을 API 연동 도구로 활용할 수 있는 핵심 기능으로 자리잡고 있습니다.
  • 정형화된 JSON 처리, 안전한 스키마 기반 통제, 확장 가능한 에이전트 구축이 가능하며, 향후 AI 기반 도구 집합과 자동화 워크플로우 구현에 필수 요소가 될 전망입니다.
 
Share article

devleekangho