

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

# 선택적 최적화
<a name="advanced-prompt-optimization-selective"></a>

기본적으로 고급 프롬프트 최적화는 전체 프롬프트 템플릿의 모든 부분을 end-to-end 다시 작성합니다. 선택적 최적화를 사용하면 옵티마이저가 수정할 수 있는 프롬프트의 섹션을 정확하게 제어할 수 있습니다. 프롬프트가 크거나 복잡하고 일부 섹션이 이미 잘 조정된 경우 선택적 최적화를 사용합니다. 이렇게 하면 여전히 작업이 필요한 부분만 개선할 수 있습니다.

## 태그 구문
<a name="advanced-prompt-optimization-selective-tags"></a>

`advpo:` (고급 프롬프트 최적화) 네임스페이스를 사용하여 예약된 XML 스타일 태그로 프롬프트 템플릿에 주석을 달아 최적화 범위를 제어합니다.
+ `<advpo:optimize>...</advpo:optimize>` - 섹션을 최적화를 위한 중점 영역으로 표시합니다. 최적화 프로그램은 이러한 태그 내의 콘텐츠를 다시 작성합니다.
+ `<advpo:exclude>...</advpo:exclude>` - 섹션을 고정 상태로 표시합니다. 최적화 프로그램은 어떤 경우에도 이러한 태그 내의 콘텐츠를 수정하지 않습니다.

`advpo:` 네임스페이스 접두사는 이미 다른 목적으로 XML과 유사한 마크업을 사용하는 프롬프트와의 충돌을 방지합니다.

## 최적화 프로그램이 다시 쓸 내용을 결정하는 방법
<a name="advanced-prompt-optimization-selective-modes"></a>

최적화 프로그램의 동작은 프롬프트 템플릿에 있는 태그에 따라 달라집니다.


| 태그 있음 | 동작 | Mode | 
| --- | --- | --- | 
| 태그 없음 | 전체 프롬프트가 end-to-end 최적화됨(현재 동작과 동일) | 레거시 모드 | 
| 하나 이상 `<advpo:optimize>` | 최적화 프로그램은 `<advpo:optimize>` 블록 내에 콘텐츠만 다시 씁니다. 태그가 지정되지 않은 모든 콘텐츠는 보존됩니다. | 명시적 포함 모드 | 
| `<advpo:exclude>` 태그만( 없음`<advpo:optimize>`) | 최적화 프로그램은 `<advpo:exclude>` 블록 내에 없는 모든 것을 다시 씁니다. | 제외 전용 모드 | 
| 두 태그 유형 모두 있음 | 명시적 포함 모드가 적용됩니다. 최적화 프로그램은 `<advpo:optimize>` 콘텐츠만 다시 씁니다. 최적화 프로그램은 `<advpo:exclude>` 태그를 수락하지만 중복으로 취급합니다. | 명시적 포함 모드 | 

**작은 정보**  
두 태그 유형이 모두 필요하지는 않습니다. 에서 포커스 영역을 래핑하면 다른 `<advpo:optimize>`모든 것이 자동으로 보존됩니다. 유지하려는 콘텐츠 주위에 `<advpo:exclude>` 태그를 추가할 필요가 없습니다. `<advpo:optimize>` 태그가 없는 `<advpo:exclude>` 경우에만를 사용합니다. 다른 모든 것을 최적화하면서 특정 섹션을 고정시킵니다.

## 예제
<a name="advanced-prompt-optimization-selective-examples"></a>

다음 예제에서는 `<advpo:optimize>` 및 `<advpo:exclude>` 태그를 사용하여 옵티마이저가 다시 쓰는 프롬프트 템플릿의 섹션을 제어하는 방법을 보여줍니다.

**Example advpo:optimize를 사용하여 한 섹션에 집중**  <a name="advanced-prompt-optimization-selective-ex-optimize"></a>
이 예제에서는 수신 거부-응답 지침만 최적화되어 있습니다. 최적화 프로그램은 ID 문과 정책 제약 조건을 작성된 대로 정확히 보존합니다.  

```
You are a helpful customer service agent for Acme Corp. Always be polite and professional.

<advpo:optimize>When responding to a complaint, acknowledge the customer's frustration, summarize the issue, and propose exactly one concrete resolution. Use bullet points for clarity.</advpo:optimize>

Never disclose internal pricing or employee information.
```

**Example advpo:exclude를 사용하여 특정 섹션 고정**  <a name="advanced-prompt-optimization-selective-ex-exclude"></a>
이 예제에서는 자격 증명 문과 정책 제약 조건이 고정됩니다. 다른 모든 것(수신 거부-응답 지침)이 최적화되어 있습니다.  

```
<advpo:exclude>You are a helpful customer service agent for Acme Corp. Always be polite and professional.</advpo:exclude>

When responding to a complaint, acknowledge the customer's frustration, summarize the issue, and propose exactly one concrete resolution. Use bullet points for clarity.

<advpo:exclude>Never disclose internal pricing or employee information.</advpo:exclude>
```

**Example 다중 최적화 블록**  <a name="advanced-prompt-optimization-selective-ex-multiple"></a>
최적화를 위해 여러 개의 비연속 섹션을 표시할 수 있습니다. 최적화 프로그램은 일부 또는 전부를 다시 쓸 수 있습니다.  

```
You are a technical support assistant for CloudWidget.

<advpo:optimize>When diagnosing an issue, ask clarifying questions about the customer's environment before suggesting solutions.</advpo:optimize>

Always check the knowledge base before escalating.

<advpo:optimize>When providing a solution, include step-by-step instructions with numbered steps. End with a verification step the customer can perform.</advpo:optimize>

Never share internal ticket IDs with customers.
```

**Example 콘텐츠 생성을 위한 빈 최적화 블록**  <a name="advanced-prompt-optimization-selective-ex-empty"></a>
빈 `<advpo:optimize>` 블록은 최적화 프로그램이 해당 위치에 새 프롬프트 콘텐츠를 생성하고 삽입하도록 지시합니다.  

```
You are a helpful assistant that summarizes documents.

{{document}}

<advpo:optimize></advpo:optimize>

Respond in plain English. Keep your summary under 200 words.
```

## 자리 표시자 변수와의 상호 작용
<a name="advanced-prompt-optimization-selective-variables"></a>

다음 규칙은 자리 표시자 변수가 선택적 최적화 태그와 상호 작용하는 방법을 설명합니다.
+ **내의 변수`<advpo:exclude>`: 런타임**은 여전히 런타임 `{{variableName}}` 시와 같은 변수를 대체합니다. 제외 사항은 주변 템플릿 텍스트에 적용됩니다. "이 템플릿 텍스트를 다시 작성하지 마세요"는 "변수를 대체하지 마세요"를 의미하지 않습니다.
+ **내의 변수`<advpo:optimize>`:** 변수 자리 표시자는 자리 표시자로 보존됩니다. 최적화 프로그램은 주변 지침을 다시 작성하지만 `{{variableName}}` 참조는 그대로 유지합니다.
+ **런타임 시 변수 값 내의 태그:** 최적화 프로그램은 이러한 태그를 무시합니다. 태그 구문 분석은 변수 대체 전에 템플릿에서만 수행됩니다. 이렇게 하면 사용자가 제공한 입력 값을 통해 최적화 지시문이 삽입되는 것을 방지할 수 있습니다.

## 검증 규칙
<a name="advanced-prompt-optimization-selective-validation"></a>

다음 구성으로 인해 검증 오류가 발생합니다.


| 잘못된 구성 | 오류 | 해결 방법 | 
| --- | --- | --- | 
| 중첩 태그(예: `<advpo:optimize>` 내부 `<advpo:exclude>`또는 반대 방향) | ValidationException | 중첩을 제거합니다. 템플릿의 지정된 위치에 하나의 태그 유형만 사용합니다. | 
| 형식이 잘못되었거나 닫히지 않은 태그(예: 닫는 태그 `<advpo:optimize>` 없음) | ValidationException | 모든 열기 태그에 일치하는 닫기 태그가 있는지 확인합니다. | 
| `advpo:` 네임스페이스의 철자가 잘못된 태그(예: `<advpo:optmize>`) | ValidationException | `optimize` 및의 철자를 확인합니다`exclude`. 고급 프롬프트 최적화는 열기 및 닫기 태그를 모두 검증합니다. | 

## 출력 동작
<a name="advanced-prompt-optimization-selective-output"></a>

작업 종료 시 반환되는 최적화된 프롬프트에서 옵티마이저는 모든 `<advpo:optimize>` 및 `<advpo:exclude>` 태그를 제거합니다. 최적화 마크업 없이 깨끗한 프롬프트가 표시됩니다. `<advpo:exclude>` 블록 내의 콘텐츠(및 명시적 포함 모드에서 태그가 지정되지 않은 콘텐츠)는 변경되지 않은 상태로 표시됩니다. `<advpo:optimize>` 블록 내의 콘텐츠에는 옵티마이저의 재작성된 버전이 포함되어 있습니다.

## 추가 동작
<a name="advanced-prompt-optimization-selective-edge-cases"></a>

다음 표에서는 최적화 프로그램이 추가 시나리오를 처리하는 방법을 설명합니다.


| 시나리오 | 동작 | 
| --- | --- | 
| 여러 `<advpo:optimize>` 블록 | 모두 최적화 대상입니다. 최적화 프로그램은 일부 또는 전부를 다시 쓸 수 있습니다. | 
| 여러 `<advpo:exclude>` 블록 | 모든 `<advpo:exclude>` 태그 내의 모든 콘텐츠가 고정됩니다. | 
| 빈 `<advpo:optimize>` 블록 | 유효. 최적화 프로그램은 해당 위치에 새 콘텐츠를 생성하고 삽입합니다. | 
| 공백 전용 `<advpo:optimize>` 블록 | 동일한를 빈 블록으로 처리했습니다. | 
| 빈 `<advpo:exclude>` 블록 | 무시됨(no-op). 고정할 콘텐츠가 없습니다. | 
| 태그는 문장 중간 단어 또는 중간 문구를 분할합니다. | 허용됩니다. 최적화 프로그램은 태그가 지정된 콘텐츠에서 하나의 단위로 작동합니다. 최적화 프로그램에서 경고가 발생할 수 있습니다. | 

## 모범 사례
<a name="advanced-prompt-optimization-selective-best-practices"></a>

선택적 최적화를 사용할 때는 다음 모범 사례를 따르세요.
+ **`<advpo:optimize>` 태그로 시작합니다.** 명시적 포함 모드는 가장 직관적입니다. 개선하려는 사항을 표시하면 다른 모든 것은 동일하게 유지됩니다.
+ **최적화 블록을 독립형으로 유지합니다.** 각 블록 내에 전체 지침 또는 논리적 섹션을 배치합니다. 중간 문장 분할은 허용되지만 어색한 결과를 생성할 수 있습니다.
+ **프롬프트가 이미 부분적으로 조정된 경우 선택적 최적화를 사용합니다.** 안전 제약 조건 또는 출력 형식 지침을 이미 조정한 경우 옵티마이저가 여전히 작업이 필요한 섹션에 집중하도록 고정하십시오.
+ **멀티턴 패턴과 결합합니다.** 모놀리식 다단계 프롬프트( 참조[멀티턴 및 스테이징 프롬프트 최적화](advanced-prompt-optimization-advanced-topics.md#advanced-prompt-optimization-multi-turn))에서 `<advpo:optimize>`를 사용하여 대화 처리 표준 문안을 고정하면서 개선이 필요한 단계 지침만 대상으로 지정합니다.