기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 입력에 태그를 적용하여 콘텐츠 필터링
입력 태그를 사용하면 입력 텍스트 내에서 가드레일로 처리하려는 특정 콘텐츠를 표시할 수 있습니다. 이는 다른 부분은 처리하지 않은 상태로 유지하면서 입력의 특정 부분에 가드레일을 적용하려는 경우에 유용합니다.
예를 들어 RAG 애플리케이션의 입력 프롬프트에는 시스템 프롬프트, 신뢰할 수 있는 설명서 소스의 검색 결과, 사용자 쿼리가 포함될 수 있습니다. 시스템 프롬프트는 개발자가 제공하고 검색 결과는 신뢰할 수 있는 소스에서 제공되므로 사용자 쿼리에서만 가드레일 평가가 필요할 수 있습니다.
또 다른 예로, 대화형 애플리케이션의 입력 프롬프트에는 시스템 프롬프트, 대화 기록, 현재 사용자 입력이 포함될 수 있습니다. 시스템 프롬프트는 개발자별 지침이며 대화 기록에는 가드레일로 이미 평가되었을 수 있는 과거 사용자 입력 및 모델 응답이 포함되어 있습니다. 이러한 시나리오에서는 현재 사용자 입력만 평가할 수 있습니다.
입력 태그를 사용하면 사용 사례에 맞는 보호가 가능하므로 가드레일로 처리 및 평가되어야 하는 입력 프롬프트 부분을 더 잘 제어할 수 있게 됩니다. 또한 전체 입력 프롬프트 대신 상대적으로 짧고 관련성 있는 입력 섹션을 평가할 수 있는 유연성이 있으므로 성능을 개선하고 비용을 절감하는 데 도움이 됩니다.
가드레일이 처리할 콘텐츠 태그
가드레일이 처리할 콘텐츠에 태그를 지정하려면 예약된 접두사와 사용자 지정 tagSuffix
의 조합인 XML 태그를 사용합니다. 예시:
{ "text": """ You are a helpful assistant. Here is some information about my account: - There are 10,543 objects in an S3 bucket. - There are no active EC2 instances. Based on the above, answer the following question: Question: <amazon-bedrock-guardrails-guardContent_xyz> How many objects do I have in my S3 bucket? </amazon-bedrock-guardrails-guardContent_xyz> ... Here are other user queries: <amazon-bedrock-guardrails-guardContent_xyz> How do I download files from my S3 bucket? </amazon-bedrock-guardrails-guardContent_xyz> """, "amazon-bedrock-guardrailConfig": { "tagSuffix": "xyz" } }
위의 예제에는 'How many objects do I have in my S3 bucket?'(내 S3 버킷에는 객체가 몇 개 있나요?)와 'How do I download files from my S3 bucket?’(S3 버킷에서 파일을 다운로드하려면 어떻게 해야 하나요?)라는 콘텐츠에 가드레일 처리를 위해 <amazon-bedrock-guardrails-guardContent_xyz>
태그가 지정되었습니다. 접두사 amazon-bedrock-guardrails-guardContent
가 가드레일에 의해 예약되어 있다는 점에 유의하세요.
태그 접미사
태그 접미사(이전 예제에서 xyz
)는 입력 태그 지정을 사용하기 위해 amazon-bedrock-guardrailConfig
의 tagSuffix
필드에 제공해야 하는 동적 값입니다. 모든 요청에 대해 tagSuffix
로 새로운 무작위 문자열을 사용하는 것이 좋습니다. 이렇게 하면 태그 구조를 예측할 수 없게 하여 잠재적인 프롬프트 인젝션 공격을 완화하는 데 도움이 됩니다. 정적 태그를 사용하면 악의적인 사용자가 XML 태그를 닫고, 닫힌 태그 뒤에 악성 콘텐츠를 추가할 수 있으며, 이로 인해 인젝션 공격이 발생할 수 있습니다. 길이는 영숫자 1~20자로 제한됩니다. 예제 접미사 xyz
를 사용하는 경우, 접미사가 있는 XML 태그로 보호할 모든 콘텐츠를 묶어야 합니다(예: <amazon-bedrock-guardrails-guardContent_xyz>
보호할 콘텐츠 </amazon-bedrock-guardrails-guardContent_xyz>
). 각 요청에 동적 고유 식별자를 태그 접미사로 사용하는 것이 좋습니다.
다중 태그
가드레일 처리를 위해 입력 텍스트에서 동일한 태그 구조를 여러 번 사용하여 콘텐츠의 서로 다른 부분을 표시할 수 있습니다. 태그 중첩은 허용되지 않습니다.
태그가 지정되지 않은 콘텐츠
입력 태그 외부의 모든 콘텐츠는 가드레일로 처리되지 않습니다. 이렇게 하면 안전하다고 간주하여 가드레일로 처리하지 않으려는 지침, 샘플 대화, 지식 기반 또는 기타 콘텐츠를 포함할 수 있습니다. 입력 프롬프트에 태그가 없는 경우 가드레일이 전체 프롬프트를 처리합니다. 유일한 예외는 입력 태그가 있어야 하는 프롬프트 공격 필터입니다.
다음 단계에 따라 가드레일의 테스트 창에서 입력 태그를 지정할 수 있습니다.
-
가드레일의 테스트 창으로 이동합니다(이 방법은 Amazon Bedrock 텍스트 또는 채팅 플레이그라운드에서는 지원되지 않으며 가드레일 테스트 창만 지원됨).
-
기본 플레이그라운드 입력 태그 접미사
playground
를 사용합니다.
VIOLENT STATEMENT: I think I could fight a grizzly bear. <amazon-bedrock-guardrails-guardContent_playground> BENIGN INPUT: How's the weather? </amazon-bedrock-guardrails-guardContent_playground>
가드레일은 입력 태그 사이의 콘텐츠에만 실행됩니다.