

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

# 프롬프트 최적화
<a name="prompt-management-optimize"></a>

Amazon Bedrock은 프롬프트를 최적화하는 도구를 제공합니다. 최적화는 프롬프트를 다시 작성하여 사용 사례에 더 적합한 추론 결과를 산출합니다. 프롬프트를 최적화하려는 모델을 선택한 다음 수정된 프롬프트를 생성할 수 있습니다.

최적화할 프롬프트를 제출한 후 Amazon Bedrock은 프롬프트의 구성 요소를 분석합니다. 분석에 성공하면 프롬프트가 다시 작성됩니다. 그런 다음 최적화된 프롬프트의 텍스트를 복사하고 사용할 수 있습니다.

**참고**  
최상의 결과를 얻으려면 영어로 프롬프트를 최적화하는 것이 좋습니다.

**Topics**
+ [

## 프롬프트 최적화에 지원되는 리전 및 모델
](#prompt-management-optimize-supported)
+ [

## 최적화를 위한 프롬프트 제출
](#prompt-management-optimize-submit)

## 프롬프트 최적화에 지원되는 리전 및 모델
<a name="prompt-management-optimize-supported"></a>

다음 표에는 프롬프트 최적화에 대한 모델 지원이 나와 있습니다.


| 제공업체 | 모델 | 모델 ID | 단일 리전 모델 지원 | 
| --- | --- | --- | --- | 
| Amazon | Nova Lite | amazon.nova-lite-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Amazon | Nova Micro | amazon.nova-micro-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Amazon | Nova Premier | amazon.nova-premier-v1:0 |  | 
| Amazon | Nova Pro | amazon.nova-pro-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Anthropic | Claude 3 Haiku | anthropic.claude-3-haiku-20240307-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3 Opus | anthropic.claude-3-opus-20240229-v1:0 |  | 
| Anthropic | Claude 3 Sonnet | anthropic.claude-3-sonnet-20240229-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3.5 Haiku | anthropic.claude-3-5-haiku-20241022-v1:0 |  us-west-2  | 
| Anthropic | claude-3.5-sonnet | anthropic.claude-3-5-sonnet-20240620-v1:0 |  eu-central-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3.5 Sonnet v2 | anthropic.claude-3-5-sonnet-20241022-v2:0 |  ap-southeast-2 us-west-2  | 
| Anthropic | Claude 3.7 Sonnet | anthropic.claude-3-7-sonnet-20250219-v1:0 |  eu-west-2  | 
| Anthropic | Claude Opus 4 | anthropic.claude-opus-4-20250514-v1:0 |  | 
| Anthropic | Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 |  | 
| DeepSeek | DeepSeek-R1 | deepseek.r1-v1:0 |  | 
| Meta | Llama 3 70B 지침 | meta.llama3-70b-instruct-v1:0 |  ap-south-1 ca-central-1 eu-west-2 us-east-1 us-west-2  | 
| Meta | Llama 3.1 70B Instruct | meta.llama3-1-70b-instruct-v1:0 |  us-west-2  | 
| Meta | Llama 3.2 11B 지침 | meta.llama3-2-11b-instruct-v1:0 |  | 
| Meta | Llama 3.3 70B 지침 | meta.llama3-3-70b-instruct-v1:0 |  | 
| Meta | Llama 4 Maverick 17B 지침 | meta.llama4-maverick-17b-instruct-v1:0 |  | 
| Meta | Llama 4 Scout 17B 지침 | meta.llama4-scout-17b-instruct-v1:0 |  | 
| Mistral AI | Mistral Large(24.02) | mistral.mistral-large-2402-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Mistral AI | Mistral Large(24.07) | mistral.mistral-large-2407-v1:0 |  us-west-2  | 

## 최적화를 위한 프롬프트 제출
<a name="prompt-management-optimize-submit"></a>

프롬프트를 최적화하는 방법을 알아보려면 원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

------
#### [ Console ]

 AWS Management Console에서 플레이그라운드 또는 프롬프트 관리를 사용하여 프롬프트를 최적화할 수 있습니다. 프롬프트를 최적화하려면 먼저 모델을 선택해야 합니다. 프롬프트는 선택한 모델에 최적화되어 있습니다.

**플레이그라운드에서 프롬프트를 최적화하려면**

1. Amazon Bedrock 플레이그라운드에서 프롬프트를 작성하는 방법을 알아보려면 [플레이그라운드를 사용하여 콘솔에서 응답 생성](playgrounds.md)의 단계를 따르세요.

1. 프롬프트를 작성하고 모델을 선택한 후 완드 아이콘(![\[Sparkle icon representing cleaning or refreshing functionality.\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/images/icons/wand.png))을 선택합니다. **프롬프트 최적화** 대화 상자가 열리고 Amazon Bedrock이 프롬프트 최적화를 시작합니다.

1. Amazon Bedrock이 프롬프트 분석 및 최적화를 완료하면 원래 프롬프트를 대화 상자의 최적화된 프롬프트와 나란히 비교할 수 있습니다.

1. 프롬프트를 플레이그라운드의 최적화된 프롬프트로 바꾸려면 **최적화된 프롬프트 사용**을 선택합니다. 원래 프롬프트를 유지하려면 **취소**를 선택합니다.

1. 프롬프트를 제출하고 응답을 생성하려면 **실행**을 선택합니다.

**프롬프트 관리에서 프롬프트를 최적화하려면**

1. 프롬프트 관리를 사용하여 프롬프트를 작성하는 방법을 알아보려면 [프롬프트 관리를 사용하여 프롬프트 생성](prompt-management-create.md)의 단계를 따르세요.

1. 프롬프트를 작성하고 모델을 선택한 후 **프롬프트** 상자 상단에서 **(![\[Sparkle icon representing cleaning or refreshing functionality.\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/images/icons/wand.png)) 최적화**를 선택합니다.

1. Amazon Bedrock이 프롬프트 분석 및 최적화를 완료하면 최적화된 프롬프트가 원래 프롬프트와 함께 나란히 변형으로 표시됩니다.

1. 원래 프롬프트 대신 최적화된 프롬프트를 사용하려면 **원래 프롬프트 교체**를 선택합니다. 원래 프롬프트를 유지하려면 **비교 종료**를 선택하고 원래 프롬프트를 저장하도록 선택합니다.
**참고**  
비교 보기에 프롬프트가 3개 있고 다른 프롬프트를 최적화하려고 하면 원래 프롬프트 또는 변형 중 하나를 재정의하고 바꾸라는 메시지가 표시됩니다.

1. 프롬프트를 제출하고 응답을 생성하려면 **실행**을 선택합니다.

------
#### [ API ]

프롬프트를 최적화하려면 [Amazon Bedrock Agents 런타임 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)를 사용하여 [OptimizePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_OptimizePrompt.html) 요청을 전송합니다. `input` 객체에서 최적화할 프롬프트를 제공하고 `targetModelId` 필드에서 최적화할 모델을 지정합니다.

응답 스트림은 다음 이벤트를 반환합니다.

1. [analyzePromptEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_AnalyzePromptEvent.html) - 프롬프트 분석 완료 시 나타납니다. 프롬프트 분석을 설명하는 메시지가 포함되어 있습니다.

1. [optimizedPromptEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_OptimizedPromptEvent.html) - 프롬프트의 재작성이 완료되면 나타납니다. 최적화된 프롬프트를 포함합니다.

다음 코드 샘플을 실행하여 프롬프트를 최적화합니다.

```
import boto3

# Set values here
TARGET_MODEL_ID = "anthropic.claude-3-sonnet-20240229-v1:0" # Model to optimize for. For model IDs, see https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html
PROMPT = "Please summarize this text: " # Prompt to optimize

def get_input(prompt):
    return {
        "textPrompt": {
            "text": prompt
        }
    }
 
def handle_response_stream(response):
    try:
        event_stream = response['optimizedPrompt']
        for event in event_stream:
            if 'optimizedPromptEvent' in event:
                print("========================== OPTIMIZED PROMPT ======================\n")
                optimized_prompt = event['optimizedPromptEvent']
                print(optimized_prompt)
            else:
                print("========================= ANALYZE PROMPT =======================\n")
                analyze_prompt = event['analyzePromptEvent']
                print(analyze_prompt)
    except Exception as e:
        raise e
 
 
if __name__ == '__main__':
    client = boto3.client('bedrock-agent-runtime')
    try:
        response = client.optimize_prompt(
            input=get_input(PROMPT),
            targetModelId=TARGET_MODEL_ID
        )
        print("Request ID:", response.get("ResponseMetadata").get("RequestId"))
        print("========================== INPUT PROMPT ======================\n")
        print(PROMPT)
        handle_response_stream(response)
    except Exception as e:
        raise e
```

------