기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
선택적 최적화
기본적으로 고급 프롬프트 최적화는 전체 프롬프트 템플릿의 모든 부분을 end-to-end 다시 작성합니다. 선택적 최적화를 사용하면 옵티마이저가 수정할 수 있는 프롬프트의 섹션을 정확하게 제어할 수 있습니다. 프롬프트가 크거나 복잡하고 일부 섹션이 이미 잘 조정된 경우 선택적 최적화를 사용합니다. 이렇게 하면 여전히 작업이 필요한 부분만 개선할 수 있습니다.
태그 구문
advpo: (고급 프롬프트 최적화) 네임스페이스를 사용하여 예약된 XML 스타일 태그로 프롬프트 템플릿에 주석을 달아 최적화 범위를 제어합니다.
<advpo:optimize>...</advpo:optimize>- 섹션을 최적화를 위한 중점 영역으로 표시합니다. 최적화 프로그램은 이러한 태그 내의 콘텐츠를 다시 작성합니다.<advpo:exclude>...</advpo:exclude>- 섹션을 고정 상태로 표시합니다. 최적화 프로그램은 어떤 경우에도 이러한 태그 내의 콘텐츠를 수정하지 않습니다.
advpo: 네임스페이스 접두사는 이미 다른 목적으로 XML과 유사한 마크업을 사용하는 프롬프트와의 충돌을 방지합니다.
최적화 프로그램이 다시 쓸 내용을 결정하는 방법
최적화 프로그램의 동작은 프롬프트 템플릿에 있는 태그에 따라 달라집니다.
태그 있음 | 동작 | Mode |
|---|---|---|
태그 없음 |
전체 프롬프트가 end-to-end 최적화됨(현재 동작과 동일) |
레거시 모드 |
하나 이상 |
최적화 프로그램은 |
명시적 포함 모드 |
|
최적화 프로그램은 |
제외 전용 모드 |
두 태그 유형 모두 있음 |
명시적 포함 모드가 적용됩니다. 최적화 프로그램은 |
명시적 포함 모드 |
작은 정보
두 태그 유형이 모두 필요하지는 않습니다. 에서 포커스 영역을 래핑하면 다른 <advpo:optimize>모든 것이 자동으로 보존됩니다. 유지하려는 콘텐츠 주위에 <advpo:exclude> 태그를 추가할 필요가 없습니다. <advpo:optimize> 태그가 없는 <advpo:exclude> 경우에만를 사용합니다. 다른 모든 것을 최적화하면서 특정 섹션을 고정시킵니다.
예제
다음 예제에서는 <advpo:optimize> 및 <advpo:exclude> 태그를 사용하여 옵티마이저가 다시 쓰는 프롬프트 템플릿의 섹션을 제어하는 방법을 보여줍니다.
예 advpo:optimize를 사용하여 한 섹션에 집중
이 예제에서는 수신 거부-응답 지침만 최적화되어 있습니다. 최적화 프로그램은 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.
예 advpo:exclude를 사용하여 특정 섹션 고정
이 예제에서는 자격 증명 문과 정책 제약 조건이 고정됩니다. 다른 모든 것(수신 거부-응답 지침)이 최적화되어 있습니다.
<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>
예다중 최적화 블록
최적화를 위해 여러 개의 비연속 섹션을 표시할 수 있습니다. 최적화 프로그램은 일부 또는 전부를 다시 쓸 수 있습니다.
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.
예콘텐츠 생성을 위한 빈 최적화 블록
빈 <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.
자리 표시자 변수와의 상호 작용
다음 규칙은 자리 표시자 변수가 선택적 최적화 태그와 상호 작용하는 방법을 설명합니다.
내의 변수
<advpo:exclude>: 런타임은 여전히 런타임{{variableName}}시와 같은 변수를 대체합니다. 제외 사항은 주변 템플릿 텍스트에 적용됩니다. "이 템플릿 텍스트를 다시 작성하지 마세요"는 "변수를 대체하지 마세요"를 의미하지 않습니다.내의 변수
<advpo:optimize>: 변수 자리 표시자는 자리 표시자로 보존됩니다. 최적화 프로그램은 주변 지침을 다시 작성하지만{{variableName}}참조는 그대로 유지합니다.런타임 시 변수 값 내의 태그: 최적화 프로그램은 이러한 태그를 무시합니다. 태그 구문 분석은 변수 대체 전에 템플릿에서만 수행됩니다. 이렇게 하면 사용자가 제공한 입력 값을 통해 최적화 지시문이 삽입되는 것을 방지할 수 있습니다.
검증 규칙
다음 구성으로 인해 검증 오류가 발생합니다.
잘못된 구성 | 오류 | 해결 방법 |
|---|---|---|
중첩 태그(예: |
ValidationException |
중첩을 제거합니다. 템플릿의 지정된 위치에 하나의 태그 유형만 사용합니다. |
형식이 잘못되었거나 닫히지 않은 태그(예: 닫는 태그 |
ValidationException |
모든 열기 태그에 일치하는 닫기 태그가 있는지 확인합니다. |
|
ValidationException |
|
출력 동작
작업 종료 시 반환되는 최적화된 프롬프트에서 옵티마이저는 모든 <advpo:optimize> 및 <advpo:exclude> 태그를 제거합니다. 최적화 마크업 없이 깨끗한 프롬프트가 표시됩니다. <advpo:exclude> 블록 내의 콘텐츠(및 명시적 포함 모드에서 태그가 지정되지 않은 콘텐츠)는 변경되지 않은 상태로 표시됩니다. <advpo:optimize> 블록 내의 콘텐츠에는 옵티마이저의 재작성된 버전이 포함되어 있습니다.
추가 동작
다음 표에서는 최적화 프로그램이 추가 시나리오를 처리하는 방법을 설명합니다.
시나리오 | 동작 |
|---|---|
여러 |
모두 최적화 대상입니다. 최적화 프로그램은 일부 또는 전부를 다시 쓸 수 있습니다. |
여러 |
모든 |
빈 |
유효. 최적화 프로그램은 해당 위치에 새 콘텐츠를 생성하고 삽입합니다. |
공백 전용 |
동일한를 빈 블록으로 처리했습니다. |
빈 |
무시됨(no-op). 고정할 콘텐츠가 없습니다. |
태그는 문장 중간 단어 또는 중간 문구를 분할합니다. |
허용됩니다. 최적화 프로그램은 태그가 지정된 콘텐츠에서 하나의 단위로 작동합니다. 최적화 프로그램에서 경고가 발생할 수 있습니다. |
모범 사례
선택적 최적화를 사용할 때는 다음 모범 사례를 따르세요.
<advpo:optimize>태그로 시작합니다. 명시적 포함 모드는 가장 직관적입니다. 개선하려는 사항을 표시하면 다른 모든 것은 동일하게 유지됩니다.최적화 블록을 독립형으로 유지합니다. 각 블록 내에 전체 지침 또는 논리적 섹션을 배치합니다. 중간 문장 분할은 허용되지만 어색한 결과를 생성할 수 있습니다.
프롬프트가 이미 부분적으로 조정된 경우 선택적 최적화를 사용합니다. 안전 제약 조건 또는 출력 형식 지침을 이미 조정한 경우 옵티마이저가 여전히 작업이 필요한 섹션에 집중하도록 고정하십시오.
멀티턴 패턴과 결합합니다. 모놀리식 다단계 프롬프트( 참조멀티턴 및 스테이징 프롬프트 최적화)에서
<advpo:optimize>를 사용하여 대화 처리 표준 문안을 고정하면서 개선이 필요한 단계 지침만 대상으로 지정합니다.