

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 응답 API를 사용한 추론
<a name="bedrock-mantle"></a>

Amazon Bedrock은 대규모 기계 학습 모델 서비스를 위한 분산 추론 엔진인 Mantle로 구동되는 `bedrock-mantle` 엔드포인트를 통해 OpenAI 응답 API를 제공합니다. 이 엔드포인트를 사용하면 Amazon Bedrock 모델과 함께 익숙한 OpenAI SDKs 및 도구를 사용할 수 있으므로 코드 변경을 최소화하면서 기존 애플리케이션을 마이그레이션할 수 있습니다. 기본 URL 및 API 키를 간단히 업데이트하면 됩니다.

**중요**  
OpenAI SDK를 Amazon Bedrock과 함께 사용하는 경우 엔드포인트가 아닌 Amazon Bedrock 엔드포인트를 가리켜야 합니다OpenAI. 다음 환경 변수를 설정합니다.  

```
OPENAI_BASE_URL="https://bedrock-mantle.<your-region>.api.aws/v1"
OPENAI_API_KEY="<your Bedrock API key>"
```
OpenAI API 키 또는 OpenAI 기본 URL()을 사용하지 마십시오`https://api.openai.com/v1`. Amazon Bedrock이 아닌에 OpenAI 직접 연결됩니다. Amazon Bedrock API 키를 생성하려면 섹션을 참조하세요[API 키](api-keys.md).

주요 이점은 다음과 같습니다.
+ **비동기 추론** - 응답 API를 통해 장기 실행 추론 워크로드 지원
+ **상태 저장 대화 관리** - 각 요청과 함께 대화 기록을 수동으로 전달하지 않고 컨텍스트를 자동으로 재구축합니다.
+ **간소화된 도구 사용** - 에이전트 워크플로를 위한 간소화된 통합
+ **유연한 응답 모드** - 스트리밍 응답과 비스트리밍 응답 모두 지원
+ **간편한 마이그레이션** - 기존 OpenAI SDK 코드베이스와 호환

`bedrock-mantle` 엔드포인트에 대한 추론 트래픽은 `bedrock-runtime` 엔드포인트와 별도의 할당량 집합에 의해 관리됩니다. 입력 및 출력 토큰 할당량과 증가를 요청하는 방법에 대한 자세한 내용은 섹션을 참조하세요[bedrock-mantle 엔드포인트 할당량](quotas-mantle.md).

## 지원되는 리전 및 엔드포인트
<a name="bedrock-mantle-supported"></a>

`bedrock-mantle` 엔드포인트는 다음 AWS 리전에서 사용할 수 있습니다.


| 리전 이름 | 리전 | 엔드포인트 | 
| --- | --- | --- | 
| 미국 동부(오하이오) | us-east-2 | bedrock-mantle.us-east-2.api.aws | 
| 미국 동부(버지니아 북부) | us-east-1 | bedrock-mantle.us-east-1.api.aws | 
| 미국 서부(오리건) | us-west-2 | bedrock-mantle.us-west-2.api.aws | 
| 아시아 태평양(자카르타) | ap-southeast-3 | bedrock-mantle.ap-southeast-3.api.aws | 
| 아시아 태평양(뭄바이) | ap-south-1 | bedrock-mantle.ap-south-1.api.aws | 
| 아시아 태평양(시드니) | ap-southeast-2 | bedrock-mantle.ap-southeast-2.api.aws | 
| 아시아 태평양(도쿄) | ap-northeast-1 | bedrock-mantle.ap-northeast-1.api.aws | 
| 유럽(프랑크푸르트) | eu-central-1 | bedrock-mantle.eu-central-1.api.aws | 
| 유럽(아일랜드) | eu-west-1 | bedrock-mantle.eu-west-1.api.aws | 
| Europe (London) | eu-west-2 | bedrock-mantle.eu-west-2.api.aws | 
| Europe (Milan) | eu-south-1 | bedrock-mantle.eu-south-1.api.aws | 
| 유럽(스톡홀름) | eu-north-1 | bedrock-mantle.eu-north-1.api.aws | 
| 남아메리카(상파울루) | sa-east-1 | bedrock-mantle.sa-east-1.api.aws | 

## 사전 조건
<a name="bedrock-mantle-prereq"></a>

OpenAI APIs 사용하기 전에 다음이 있는지 확인합니다.
+ **인증** - 다음을 사용하여 인증할 수 있습니다.
  + Amazon Bedrock API 키(OpenAISDK에 필요)
  + AWS 자격 증명(HTTP 요청에 지원됨)
+ **OpenAI SDK**(선택 사항) - SDK 기반 요청을 사용하는 경우 OpenAI Python SDK를 설치합니다.
+ **환경 변수** - 다음 환경 변수를 설정합니다.
  + `OPENAI_API_KEY` - Amazon Bedrock API 키로 설정
  + `OPENAI_BASE_URL` - 리전의 Amazon Bedrock 엔드포인트로 설정(예: ` https://bedrock-mantle.us-east-1.api.aws/v1`)

## 모델 API
<a name="bedrock-mantle-models"></a>

모델 API를 사용하면 Mantle로 구동되는 Amazon Bedrock에서 사용 가능한 모델을 검색할 수 있습니다. 이 API를 사용하여 응답 API와 함께 사용할 수 있는 모델 목록을 검색합니다. 전체 API 세부 정보는 [OpenAI 모델 설명서를 참조하세요](https://developers.openai.com/api/reference/resources/models).

### 사용 가능한 모델 나열
<a name="bedrock-mantle-models-list"></a>

사용 가능한 모델을 나열하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

------
#### [ OpenAI SDK (Python) ]

```
# List all available models using the OpenAI SDK
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

from openai import OpenAI

client = OpenAI()

models = client.models.list()

for model in models.data:
    print(model.id)
```

------
#### [ HTTP request ]

에 GET 요청`/v1/models`:

```
# List all available models
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

curl -X GET $OPENAI_BASE_URL/models \
   -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## 응답 API
<a name="bedrock-mantle-responses"></a>

응답 API는 스트리밍, 백그라운드 처리 및 멀티턴 상호 작용을 지원하여 상태 저장 대화 관리를 제공합니다. 전체 API 세부 정보는 [OpenAI 응답 설명서를 참조하세요](https://developers.openai.com/api/reference/resources/responses).

**참고**  
모든 모델이 응답 API를 지원하는 것은 아닙니다. 응답 API를 지원하는 모델을 확인하려면 섹션을 참조하세요[API 호환성](models-api-compatibility.md).

### 응답 API가 대화 상태를 저장하는 방법
<a name="bedrock-mantle-responses-state"></a>

응답 API는 저장된 상태를 사용하여 멀티턴 대화를 활성화하고 `previous_response_id` 파라미터를 통해 이전 턴을 참조할 수 있습니다. 스토리지는 기본적으로 활성화되어 있지만 `store` 파라미터를 통해 요청당 비활성화할 수 있습니다. 저장된 응답은 프로젝트별로 범위가 지정됩니다. 한 프로젝트의 응답은 이전 응답으로 사용하거나 두 번째 프로젝트에서 읽을 수 없습니다. 프로젝트에 대한 자세한 내용은 단원을 참조하십시오[프로젝트(OpenAI 호환)](projects.md).
+ `store`이 `true` (기본값)인 경우 Amazon Bedrock은 입력 및 출력을 포함한 응답을 요청의 소스 리전에서 30일 동안 유지합니다. 이 기간 동안에 응답을 전달`previous_response_id`하고 검색하여 후속 요청을 연결할 수 있습니다`GET /v1/responses/{id}`. 30일이 지나면 응답이 자동으로 삭제되고 더 이상 검색할 수 없습니다.
+ 이 `store`인 경우 `false`Amazon Bedrock은 요청 또는 응답의 데이터를 유지하지 않습니다. `previous_response_id` 파라미터를 사용하여 대화를 계속할 수 없습니다.

기본값은 OpenAI 응답 API 사양과 일치`true`합니다. Amazon Bedrock이 대화 데이터를 보관하지 않도록 하려는 고객은 모든 요청`false`에서를 `store`로 명시적으로 설정해야 합니다. 저장된 데이터는 요청의 소스 리전에 보관되고 저장 시 암호화되며 호출 AWS 계정의 프로젝트 리소스로 범위가 지정됩니다. 데이터는 요청을 처리하기 위해서만 저장되며 다른 목적으로 사용되거나 보관되지 않습니다.

### 기본 요청
<a name="bedrock-mantle-responses-create"></a>

응답을 생성하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

------
#### [ OpenAI SDK (Python) ]

```
# Create a basic response using the OpenAI SDK
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="openai.gpt-oss-120b",
    input=[
        {"role": "user", "content": "Hello! How can you help me today?"}
    ]
)

print(response)
```

------
#### [ HTTP request ]

에 POST 요청`/v1/responses`:

```
# Create a basic response
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

curl -X POST $OPENAI_BASE_URL/responses \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $OPENAI_API_KEY" \
   -d '{
    "model": "openai.gpt-oss-120b",
    "input": [
        {"role": "user", "content": "Hello! How can you help me today?"}
    ]
}'
```

------

### 스트림 응답
<a name="bedrock-mantle-responses-streaming"></a>

응답 이벤트를 점진적으로 수신하려면 원하는 방법의 탭을 선택한 다음 다음 단계를 따릅니다.

------
#### [ OpenAI SDK (Python) ]

```
# Stream response events incrementally using the OpenAI SDK
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

from openai import OpenAI

client = OpenAI()

stream = client.responses.create(
    model="openai.gpt-oss-120b",
    input=[{"role": "user", "content": "Tell me a story"}],
    stream=True
)

for event in stream:
    print(event)
```

------
#### [ HTTP request ]

를 로 `stream` 설정`/v1/responses`하여에 POST 요청을 수행합니다`true`.

```
# Stream response events incrementally
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables

curl -X POST $OPENAI_BASE_URL/responses \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $OPENAI_API_KEY" \
   -d '{
    "model": "openai.gpt-oss-120b",
    "input": [
        {"role": "user", "content": "Tell me a story"}
    ],
    "stream": true
}'
```

------