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월, 저희는 개발자가 함수를 설명하거나, 직접 붙여넣거나, 코드를 붙여넣어 유효한 함수 스키마를 생성할 수 있게 해주는 ‘무엇이든 생성’ 기능을 출시했습니다. ‘무엇이든 생성’에 대한 자세한 내용은 여기 도움말 센터 문서에서 확인하세요.
함수 호출은 어떻게 사용할 수 있나요?
함수 호출은 다음과 같은 다양한 사용 사례에 유용합니다.
어시스턴트가 데이터를 가져올 수 있도록 지원:
어시스턴트가 작업을 수행할 수 있도록 지원:
어시스턴트가 계산을 수행할 수 있도록 지원:
풍부한 워크플로 구축:
원시 텍스트를 가져온 다음 구조화된 데이터로 변환하고 데이터베이스에 저장하는 데이터 추출 파이프라인입니다.
함수 호출은 Responses API에서 지원됩니다. 이 API는 이전에 Chat Completions API와 Assistants API에 나뉘어 있던 기능을 통합합니다.
JSON 모드는 어떻게 사용할 수 있나요?
JSON 모드를 켜면 적절히 감지하고 처리해야 하는 일부 예외적인 경우를 제외하고, 모델의 출력값이 유효한 JSON임이 보장됩니다.
Chat Completions API에서 JSON 모드를 요청하려면 지원되는 모델에서 response_format을 { "type": "json_object" }로 설정하세요. Responses API에서는 해당되는 경우 text.format을 { "type": "json_object" }로 설정하세요. 예: text: { "format": { "type": "json_object" } }. 두 API 모두에서 JSON 모드는 모델/메시지/도구 전제 조건이 충족될 때만 작동합니다. 예를 들어 모델이 json_object를 지원하고, 대화에 JSON을 생성하라는 지침이 포함되어 있으며, 모든 도구 제약 조건이 호환되어야 합니다. 유효 입력 컨텍스트의 요청 메시지 또는 입력 메시지 중 하나 이상에는 JSON, json, Json처럼 대/소문자를 구분하지 않는 형태의 json이 포함되어야 합니다. 그렇지 않으면 API가 오류를 반환합니다. Responses에서는 최상위 instructions 필드만으로는 이 검증을 충족하지 않습니다. 호환되는 모델/경로에서 함수 호출을 사용하면 함수 호출 인수에 JSON 제약 조건이 자동으로 적용됩니다. 호환되지 않는 모델 또는 도구/응답 형식 조합은 거부되거나 JSON 제약 샘플링을 사용하지 않을 수 있습니다.
중요 참고 사항:
JSON 모드를 사용할 때는 항상 대화의 어떤 메시지(예: 시스템 메시지)를 통해 모델에 JSON을 생성하라고 지시해야 합니다. JSON을 생성하라는 명시적 지침을 포함하지 않으면 모델이 끝없이 공백 스트림을 생성할 수 있으며, 요청은 토큰 한도에 도달할 때까지 계속 실행될 수 있습니다. 이런 누락을 방지하기 위해 JSON 모드는 관련 입력 메시지 또는 지침에 대/소문자 구분 없이 어떤 형태로든
json이라는 단어가 포함되어 있지 않으면 요청을 거부합니다.JSON 모드는 출력값이 특정 스키마와 일치한다고 보장하지 않으며, 유효하고 오류 없이 파싱된다는 것만 보장합니다. 출력값이 스키마와 일치하도록 하려면 구조화된 출력값을 사용해야 합니다. 이것이 불가능하다면 검증 라이브러리와 필요한 경우 재시도를 사용하여 출력값이 원하는 스키마와 일치하도록 해야 합니다.
애플리케이션은 모델 출력값이 완전한 JSON 객체가 아닐 수 있는 예외적인 경우를 감지하고 처리해야 합니다(아래 참조).
