기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
정의 OpenAPI Amazon Bedrock에서 에이전트의 작업 그룹에 대한 스키마
Amazon Bedrock에서 작업 그룹을 생성할 때 에이전트가 사용자로부터 호출해야 하는 파라미터를 정의해야 합니다. 에이전트가 이러한 파라미터를 사용하여 호출할 수 있는 API 작업을 정의할 수도 있습니다. API 작업을 정의하려면 OpenAPI JSON 또는 YAML 형식의 스키마입니다. 를 생성할 수 있습니다.OpenAPI 스키마 파일을 Amazon Simple Storage Service(Amazon S3)에 업로드합니다. 또는 OpenAPI 스키마를 검증하는 콘솔의 텍스트 편집기입니다. 에이전트를 생성한 후 에이전트에 작업 그룹을 추가하거나 기존 작업 그룹을 편집할 때 텍스트 편집기를 사용할 수 있습니다. 자세한 내용은 에이전트 수정 단원을 참조하십시오.
에이전트는 스키마를 사용하여 호출해야 하는 API 작업과 API 요청에 필요한 파라미터를 결정합니다. 그런 다음 이러한 세부 정보는 작업을 수행하도록 정의한 Lambda 함수를 통해 전송되거나 에이전트 호출의 응답으로 반환됩니다.
API 스키마에 대한 자세한 내용은 다음 리소스를 참조하세요.
-
에 대한 자세한 내용은 OpenAPI 스키마, 참조 OpenAPI 의 사양
Swagger 웹 사이트. -
스키마 작성의 모범 사례는 API 의 API 설계 모범 사례를
참조하세요.Swagger 웹 사이트.
다음은 의 일반적인 형식입니다.OpenAPI 작업 그룹의 스키마입니다.
{ "openapi": "3.0.0", "paths": { "/
path
": { "method
": { "description": "string
", "operationId": "string
", "parameters": [ ... ], "requestBody": { ... }, "responses": { ... } "x-requireConfirmation": ENABLED | DISABLED } } } }
다음 목록은 의 필드를 설명합니다.OpenAPI 스키마
-
openapi
– (필수) 의 버전 OpenAPI 사용 중입니다."3.0.0"
작업 그룹이 작동하려면 이 값이 여야 합니다. -
paths
- (필수) 개별 엔드포인트에 대한 상대 경로를 포함합니다. 각 경로는 정방향 슬래시()로 시작해야 합니다/
. -
method
- (필수) 사용할 메서드를 정의합니다. -
x-requireConfirmation
– (선택 사항) 작업을 호출하기 전에 사용자 확인이 필요한지 여부를 지정합니다. 작업을 호출하기 전에 사용자에게 확인을 요청하려면 이 필드를 활성화합니다. 작업을 호출하기 전에 사용자 확인을 요청하면 애플리케이션이 악의적인 프롬프트 주입으로 인해 작업을 수행하지 못하도록 보호할 수 있습니다. 기본적으로 사용자 확인은 이 필드가 지정되지 않은DISABLED
경우 입니다.
최소한 각 메서드에는 다음 필드가 필요합니다.
-
description
– API 작업에 대한 설명입니다. 이 필드를 사용하여 에이전트에게 이 API 작업을 호출할 시기와 작업이 수행하는 작업을 알립니다. -
operationId
- 함수 이름과 API같이 에서 작업을 식별하는 고유한 문자열입니다. 다음과 같이 새로 toolUse 활성화된 모든 모델의 필수 필드입니다.Anthropic Claude 3.5 Sonnet, Meta Llama, 등. 제공하는 식별자(Id)가 모든 작업에서 고유하고 하이픈 또는 밑줄만 구분자로 사용하여 간단한 영숫자 패턴을 따르는지 확인합니다. -
responses
- 에이전트가 API 응답에서 반환하는 속성을 포함합니다. 에이전트는 응답 속성을 사용하여 프롬프트를 구성하고, API 통화 결과를 정확하게 처리하고, 작업을 수행하기 위한 올바른 단계 세트를 결정합니다. 에이전트는 한 작업의 응답 값을 오케스트레이션의 후속 단계에 대한 입력으로 사용할 수 있습니다.
다음 두 객체의 필드는 에이전트가 작업 그룹을 효과적으로 활용할 수 있도록 자세한 정보를 제공합니다. 각 필드에 대해 required
필드 값을 필요한 true
경우 로 설정하고 선택 사항false
인 경우 로 설정합니다.
-
parameters
- 요청에 포함할 수 있는 파라미터에 대한 정보가 들어 있습니다. -
requestBody
- 요청 본문의 작업에 대한 필드를 포함합니다.GET
및DELETE
메서드에 이 필드를 포함하지 않습니다.
구조에 대해 자세히 알아보려면 다음 탭에서 를 선택합니다.
를 추가하는 방법을 알아보려면 OpenAPI 작업 그룹을 생성하는 동안 생성한 스키마는 섹션을 참조하세요Amazon Bedrock에서 에이전트에 작업 그룹 추가.
스키마 API 예제
다음 예제에서는 간단한 OpenAPI 지정된 위치의 날씨를 섭씨로 가져오는 YAML 형식의 스키마입니다.
openapi: 3.0.0 info: title: GetWeather API version: 1.0.0 description: gets weather paths: /getWeather/{location}/: get: summary: gets weather in Celsius description: gets weather in Celsius operationId: getWeather parameters: - name: location in: path description: location name required: true schema: type: string responses: "200": description: weather in Celsius content: application/json: schema: type: string
다음 예제 스키마는 보험 청구를 처리하는 데 도움이 API 되는 API 작업 그룹을 정의합니다. 세 가지 정의APIs는 다음과 같습니다.
-
getAllOpenClaims
- 에이전트는description
필드를 사용하여 미결 클레임 목록이 필요한 경우 이 API 작업을 호출해야 하는지 확인할 수 있습니다.responses
의properties
는 ID와 보험 계약자 및 청구 상태를 반환하도록 지정합니다. 에이전트는 이 정보를 에이전트 사용자에게 반환하거나 응답의 일부 또는 전부를 후속 API 호출에 대한 입력으로 사용합니다. -
identifyMissingDocuments
- 에이전트는description
필드를 사용하여 보험 청구에 대해 누락된 문서를 식별해야 하는 경우 이 API 작업을 호출해야 하는지 결정할 수 있습니다.name
,description
,required
필드는 에이전트가 고객으로부터 미해결 청구의 고유 식별자를 얻어야 한다고 알려줍니다. 미결 보험 청구IDs의properties
를 반환하기 위한responses
지정의 . 에이전트는 이 정보를 최종 사용자에게 반환하거나 응답의 일부 또는 전부를 후속 API 호출에 대한 입력으로 사용합니다. -
sendReminders
- 에이전트는description
필드를 사용하여 고객에게 알림을 보내야 하는 경우 이 API 작업을 호출해야 하는지 확인할 수 있습니다. 예를 들어 미결 클레임에 대해 보류 중인 문서에 대한 알림입니다.properties
의 는 에이전트에게 클레임IDs과 보류 중인 문서를 찾아야 한다고requestBody
말합니다. 알림의 ID와 상태를 반환하기 위한properties
responses
지정의 . 에이전트는 이 정보를 최종 사용자에게 반환하거나 응답의 일부 또는 전부를 후속 API 호출에 대한 입력으로 사용합니다.
{ "openapi": "3.0.0", "info": { "title": "Insurance Claims Automation API", "version": "1.0.0", "description": "APIs for managing insurance claims by pulling a list of open claims, identifying outstanding paperwork for each claim, and sending reminders to policy holders." }, "paths": { "/claims": { "get": { "summary": "Get a list of all open claims", "description": "Get the list of all open insurance claims. Return all the open claimIds.", "operationId": "getAllOpenClaims", "responses": { "200": { "description": "Gets the list of all open insurance claims for policy holders", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "claimId": { "type": "string", "description": "Unique ID of the claim." }, "policyHolderId": { "type": "string", "description": "Unique ID of the policy holder who has filed the claim." }, "claimStatus": { "type": "string", "description": "The status of the claim. Claim can be in Open or Closed state" } } } } } } } } } }, "/claims/{claimId}/identify-missing-documents": { "get": { "summary": "Identify missing documents for a specific claim", "description": "Get the list of pending documents that need to be uploaded by policy holder before the claim can be processed. The API takes in only one claim id and returns the list of documents that are pending to be uploaded by policy holder for that claim. This API should be called for each claim id", "operationId": "identifyMissingDocuments", "parameters": [{ "name": "claimId", "in": "path", "description": "Unique ID of the open insurance claim", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "List of documents that are pending to be uploaded by policy holder for insurance claim", "content": { "application/json": { "schema": { "type": "object", "properties": { "pendingDocuments": { "type": "string", "description": "The list of pending documents for the claim." } } } } } } } } }, "/send-reminders": { "post": { "summary": "API to send reminder to the customer about pending documents for open claim", "description": "Send reminder to the customer about pending documents for open claim. The API takes in only one claim id and its pending documents at a time, sends the reminder and returns the tracking details for the reminder. This API should be called for each claim id you want to send reminders for.", "operationId": "sendReminders", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "claimId": { "type": "string", "description": "Unique ID of open claims to send reminders for." }, "pendingDocuments": { "type": "string", "description": "The list of pending documents for the claim." } }, "required": [ "claimId", "pendingDocuments" ] } } } }, "responses": { "200": { "description": "Reminders sent successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "sendReminderTrackingId": { "type": "string", "description": "Unique Id to track the status of the send reminder Call" }, "sendReminderStatus": { "type": "string", "description": "Status of send reminder notifications" } } } } } }, "400": { "description": "Bad request. One or more required fields are missing or invalid." } } } } } }
의 추가 예제 OpenAPI 스키마, GitHub 웹 사이트의 https://github.com/OAI/Open API-Specification/tree/main/examples/v3.0