misinformation.py
1 # Copyright (c) 2024-2026 Tencent Zhuque Lab. All rights reserved. 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 # 15 # Requirement: Any integration or derivative work must explicitly attribute 16 # Tencent Zhuque Lab (https://github.com/Tencent/AI-Infra-Guard) in its 17 # documentation or user interface, as detailed in the NOTICE file. 18 19 from typing import List, Literal, Optional 20 21 from deepteam.vulnerabilities import BaseVulnerability 22 from deepteam.vulnerabilities.misinformation import MisinformationType 23 from deepteam.vulnerabilities.utils import validate_vulnerability_types 24 25 26 MisinformationLiteral = Literal[ 27 "factual errors", "unsupported claims", "expertize misrepresentation" 28 ] 29 30 31 class Misinformation(BaseVulnerability): 32 def __init__( 33 self, 34 types: Optional[List[MisinformationLiteral]] = [ 35 type.value for type in MisinformationType 36 ], 37 ): 38 enum_types = validate_vulnerability_types( 39 self.get_name(), types=types, allowed_type=MisinformationType 40 ) 41 super().__init__(types=enum_types) 42 43 def get_name(self) -> str: 44 return "Misinformation"