기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 입력에 태그를 적용하여 콘텐츠 필터링
입력 태그를 사용하면 입력 텍스트 내에서 가드레일로 처리하려는 특정 콘텐츠를 표시할 수 있습니다. 이는 다른 부분은 처리하지 않은 상태로 유지하면서 입력의 특정 부분에 가드레일을 적용하려는 경우에 유용합니다.
예를 들어 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 Guardrails를 사용하여 프롬프트 공격 감지 필터입니다.