2025년 3월 11일부로 새로운 에이전트 플랫폼의 구성 요소를 출시했습니다. 자세한 내용은 Responses API, Web Search, File Search, Computer Use를 포함한 Tools, 그리고 Agents SDK와 Tracing에 대한 API 문서를 참조하세요.
함수 호출을 사용하면 OpenAI 모델을 외부 도구 및 시스템에 연결할 수 있습니다. 이는 AI 어시스턴트에 기능을 부여하거나 애플리케이션과 LLM 간의 긴밀한 통합을 구축하는 등 다양한 작업에 유용합니다.
자세한 내용은 함수 호출 개발자 가이드에서 확인하세요.
2024년 6월, 저희는 구조화된 출력값을 출시했습니다. 함수 정의에서 `strict: true`를 설정해 이를 활성화하면, 구조화된 출력값은 함수 호출을 위해 모델이 생성한 인수가 함수 정의에 제공한 JSON 스키마와 정확히 일치하도록 보장합니다.
2024년 10월에는 개발자가 함수를 설명하거나, 함수를 직접 붙여넣거나, 코드를 붙여넣어 유효한 함수 스키마를 생성할 수 있는 'Generate Anything' 기능을 출시했습니다. 'Generate Anything'에 대한 자세한 내용은 여기 도움말 센터 문서에서 확인하세요.
함수 호출은 어떻게 사용할 수 있나요?
함수 호출은 다음과 같은 다양한 사용 사례에 유용합니다.
어시스턴트가 데이터를 가져오도록 지원:
사용자가 “내 최근 주문이 뭐야?”라고 물으면 AI 어시스턴트는 사용자에게 응답을 생성하기 전에 내부 시스템에서 최신 고객 데이터를 가져와야 합니다.
어시스턴트가 작업을 수행하도록 지원:
AI 어시스턴트는 사용자 선호도와 캘린더 사용 가능 여부를 바탕으로 회의를 예약해야 합니다.
어시스턴트가 계산을 수행하도록 지원:
수학 튜터 어시스턴트는 수학 계산을 수행해야 합니다.
풍부한 워크플로 구축:
원시 텍스트를 가져온 다음 구조화된 데이터로 변환하고 데이터베이스에 저장하는 데이터 추출 파이프라인.
함수 호출은 이전에 Chat Completions API와 Assistants API에 나뉘어 있던 기능을 통합한 Responses API에서 지원됩니다.
JSON 모드는 어떻게 사용할 수 있나요?
JSON 모드를 켜면, 적절히 감지하고 처리해야 하는 일부 예외적인 경우를 제외하고 모델의 출력이 유효한 JSON이 되도록 보장됩니다.
Responses API 또는 Chat Completions API에서 JSON 모드를 요청하려면 지원되는 모델에서 response_format을 { "type": "json_object" }로 설정할 수 있습니다. 단, 이는 모델/메시지/도구의 사전 조건이 충족될 때만 작동합니다(예: 모델이 json_object를 지원하고, 대화에 JSON 생성을 지시하는 내용이 포함되어 있으며, 모든 도구 제약이 호환되는 경우). response_format: {"type": "json_object"}를 사용하는 JSON 모드에서는 최소 하나의 요청 메시지에 JSON, json 또는 Json처럼 어떤 형태로든 json이 포함되어야 합니다. 그렇지 않으면 API가 오류를 반환합니다. 호환되는 모델/경로에서 함수 호출을 사용하면 함수 호출 인수에 JSON 제약이 자동으로 적용됩니다. 호환되지 않는 모델이나 도구/응답 형식 조합은 거부되거나 JSON 제약 샘플링을 사용하지 않을 수 있습니다.
중요 참고 사항:
JSON 모드를 사용할 때는 예를 들어 시스템 메시지 등을 통해 대화의 어떤 메시지에서든 항상 모델에 JSON을 생성하라고 지시해야 합니다. JSON 생성에 대한 명시적인 지시를 포함하지 않으면 모델이 끝없이 공백만 생성할 수 있으며, 요청은 토큰 한도에 도달할 때까지 계속 실행될 수 있습니다. 이를 잊지 않도록 돕기 위해 JSON 모드는 관련 입력 메시지나 지시에 대소문자를 구분하지 않고 어떤 형태로든
json이라는 단어가 포함되지 않으면 요청을 거부합니다.JSON 모드는 출력이 특정 스키마와 일치함을 보장하지 않으며, 단지 유효하고 오류 없이 파싱된다는 점만 보장합니다. 출력이 스키마와 일치하도록 하려면 구조화된 출력값을 사용해야 하며, 그것이 불가능하다면 검증 라이브러리와 필요에 따라 재시도를 사용해 출력이 원하는 스키마와 일치하도록 해야 합니다.
애플리케이션은 모델 출력이 완전한 JSON 객체가 되지 않을 수 있는 예외 사례를 감지하고 처리해야 합니다(아래 참조).
