MCPcopy
hub / github.com/confident-ai/deepteam / red_team

Method red_team

deepteam/red_teamer/red_teamer.py:71–270  ·  view source on GitHub ↗
(
        self,
        model_callback: CallbackType,
        vulnerabilities: Optional[List[BaseVulnerability]] = None,
        attacks: Optional[List[BaseAttack]] = None,
        simulator_model: DeepEvalBaseLLM = None,
        evaluation_model: DeepEvalBaseLLM = None,
        framework: Optional[AISafetyFramework] = None,
        attacks_per_vulnerability_type: int = 1,
        ignore_errors: bool = True,
        reuse_simulated_test_cases: bool = False,
        metadata: Optional[dict] = None,
        _print_assessment: Optional[bool] = True,
        _upload_to_confident: Optional[bool] = True,
    )

Source from the content-addressed store, hash-verified

69 )
70
71 def red_team(
72 self,
73 model_callback: CallbackType,
74 vulnerabilities: Optional[List[BaseVulnerability]] = None,
75 attacks: Optional[List[BaseAttack]] = None,
76 simulator_model: DeepEvalBaseLLM = None,
77 evaluation_model: DeepEvalBaseLLM = None,
78 framework: Optional[AISafetyFramework] = None,
79 attacks_per_vulnerability_type: int = 1,
80 ignore_errors: bool = True,
81 reuse_simulated_test_cases: bool = False,
82 metadata: Optional[dict] = None,
83 _print_assessment: Optional[bool] = True,
84 _upload_to_confident: Optional[bool] = True,
85 ):
86 if not framework and not vulnerabilities:
87 raise ValueError(
88 "You must either provide a 'framework' or 'vulnerabilities'"
89 )
90
91 if framework and (vulnerabilities or attacks):
92 raise ValueError(
93 "You can only pass either 'framework' or 'attacks' and 'vulnerabilities' at the same time"
94 )
95
96 if self.async_mode:
97 validate_model_callback_signature(
98 model_callback=model_callback,
99 async_mode=self.async_mode,
100 )
101 loop = get_or_create_event_loop()
102 return loop.run_until_complete(
103 self.a_red_team(
104 model_callback=model_callback,
105 attacks_per_vulnerability_type=attacks_per_vulnerability_type,
106 vulnerabilities=vulnerabilities,
107 framework=framework,
108 attacks=attacks,
109 simulator_model=simulator_model,
110 evaluation_model=evaluation_model,
111 ignore_errors=ignore_errors,
112 reuse_simulated_test_cases=reuse_simulated_test_cases,
113 metadata=metadata,
114 _print_assessment=_print_assessment,
115 )
116 )
117 else:
118 if framework and not framework._has_dataset:
119 risk_assessment = self._assess_framework(
120 model_callback=model_callback,
121 simulator_model=simulator_model,
122 evaluation_model=evaluation_model,
123 framework=framework,
124 attacks_per_vulnerability_type=attacks_per_vulnerability_type,
125 ignore_errors=ignore_errors,
126 reuse_simulated_test_cases=reuse_simulated_test_cases,
127 metadata=metadata,
128 )

Callers 3

red_teamFunction · 0.95
assess_risk_categoryMethod · 0.95
runFunction · 0.95

Calls 15

a_red_teamMethod · 0.95
_assess_frameworkMethod · 0.95
_post_risk_assessmentMethod · 0.95
create_progressFunction · 0.90
add_pbarFunction · 0.90
update_pbarFunction · 0.90
capture_red_teamer_runFunction · 0.90
getRiskCategoryFunction · 0.90
RiskAssessmentClass · 0.90

Tested by

no test coverage detected