Skip to content

Commit 84f8351

Browse files
authored
Merge pull request #111 from YiZoey/main
Fixed known issues
2 parents 4ec0f35 + 4b3caa5 commit 84f8351

9 files changed

Lines changed: 289 additions & 130 deletions

File tree

1014 Bytes
Binary file not shown.

AIG-PromptSecurity/cli/locales/zh_CN/LC_MESSAGES/messages.po

Lines changed: 91 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: PACKAGE VERSION\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2025-10-27 11:28+0800\n"
12-
"PO-Revision-Date: 2025-10-27 11:29+0800\n"
11+
"POT-Creation-Date: 2025-11-04 16:28+0800\n"
12+
"PO-Revision-Date: 2025-11-04 16:29+0800\n"
1313
"Last-Translator: /bin/eash <EMAIL@address.com>\n"
1414
"Language-Team: Chinese (simplified)\n"
1515
"Language: zh_CN\n"
1616
"MIME-Version: 1.0\n"
1717
"Content-Type: text/plain; charset=UTF-8\n"
1818
"Content-Transfer-Encoding: 8bit\n"
1919

20-
#: cli_run.py:133
20+
#: cli_run.py:141
2121
msgid "Something went wrong. Please try again in a few moments."
2222
msgstr "系统出现了点小问题,请稍后再试。"
2323

@@ -26,6 +26,7 @@ msgstr "系统出现了点小问题,请稍后再试。"
2626
#: cli/red_team_runner.py:55 cli/red_team_runner.py:105
2727
#: cli/red_team_runner.py:107 cli/red_team_runner.py:111
2828
#: cli/red_team_runner.py:124 cli/red_team_runner.py:126
29+
#: cli/red_team_runner.py:134 cli/red_team_runner.py:138
2930
msgid "Pre-Jailbreak Parameter Parsing"
3031
msgstr "初始化越狱环境"
3132

@@ -67,145 +68,184 @@ msgstr "加载打分模型:{model_name}"
6768
msgid "Load evaluate model: {model_name} failed: {message}"
6869
msgstr "加载打分模型:{model_name} 失败: {message}"
6970

70-
#: cli/red_team_runner.py:124 cli/red_team_runner.py:126
71+
#: cli/red_team_runner.py:124
7172
msgid "Load attacks"
7273
msgstr "加载泛化方法"
7374

74-
#: cli/red_team_runner.py:149
75+
#: cli/red_team_runner.py:127
76+
#, python-brace-format
77+
msgid "Load attacks: {attacks}"
78+
msgstr "加载泛化方法: {attacks}"
79+
80+
#: cli/red_team_runner.py:134 cli/red_team_runner.py:138
81+
#, python-brace-format
82+
msgid "Load simulator model: {model_name}"
83+
msgstr "加载泛化模型:{model_name}"
84+
85+
#: cli/red_team_runner.py:141
86+
#, python-brace-format
87+
msgid "Load simulator model: {model_name} failed: {message}"
88+
msgstr "加载泛化模型:{model_name} 失败: {message}"
89+
90+
#: cli/red_team_runner.py:161
7591
#, python-brace-format
7692
msgid ""
7793
"An error occurred during {model_name} assessment. Please try again later."
7894
msgstr "评估 {model_name} 过程中出现异常,请稍后再试。"
7995

80-
#: cli/red_team_runner.py:153 cli/red_team_runner.py:154
81-
#: cli/red_team_runner.py:181
96+
#: cli/red_team_runner.py:165 cli/red_team_runner.py:166
97+
#: cli/red_team_runner.py:199
8298
msgid "Generating report"
8399
msgstr "生成模型安全报告"
84100

85-
#: cli/red_team_runner.py:154 cli/red_team_runner.py:181
101+
#: cli/red_team_runner.py:166 cli/red_team_runner.py:199
86102
msgid "A.I.G is working"
87103
msgstr "A.I.G正在工作"
88104

89-
#: cli/red_team_runner.py:155
105+
#: cli/red_team_runner.py:167
90106
msgid "Report in progress"
91107
msgstr "生成报告"
92108

93-
#: cli/red_team_runner.py:177
109+
#: cli/red_team_runner.py:195
94110
msgid "An error occurred during report generated. Please try again later."
95111
msgstr "报告生成过程中出现异常,请稍后再试。"
96112

97-
#: cli/red_team_runner.py:180
113+
#: cli/red_team_runner.py:198
98114
msgid "Report generated"
99115
msgstr "生成报告"
100116

101-
#: deepteam/red_teamer/red_teamer.py:158
102-
#: deepteam/attacks/attack_simulator/attack_simulator.py:73
103-
#: deepteam/attacks/attack_simulator/attack_simulator.py:96
104-
#: deepteam/attacks/attack_simulator/attack_simulator.py:113
105-
#: deepteam/attacks/attack_simulator/attack_simulator.py:150
106-
#: deepteam/attacks/attack_simulator/attack_simulator.py:179
107-
#: deepteam/attacks/attack_simulator/attack_simulator.py:207
108-
#: deepteam/attacks/attack_simulator/attack_simulator.py:246
109-
#: deepteam/attacks/attack_simulator/attack_simulator.py:270
117+
#: deepteam/red_teamer/red_teamer.py:171
118+
#: deepteam/attacks/attack_simulator/attack_simulator.py:75
119+
#: deepteam/attacks/attack_simulator/attack_simulator.py:98
120+
#: deepteam/attacks/attack_simulator/attack_simulator.py:115
121+
#: deepteam/attacks/attack_simulator/attack_simulator.py:156
122+
#: deepteam/attacks/attack_simulator/attack_simulator.py:185
123+
#: deepteam/attacks/attack_simulator/attack_simulator.py:213
124+
#: deepteam/attacks/attack_simulator/attack_simulator.py:255
125+
#: deepteam/attacks/attack_simulator/attack_simulator.py:279
110126
msgid "Jailbreaking"
111127
msgstr "执行模型安全评估"
112128

113-
#: deepteam/red_teamer/red_teamer.py:218 deepteam/red_teamer/red_teamer.py:308
114-
#: deepteam/red_teamer/red_teamer.py:393 deepteam/red_teamer/red_teamer.py:416
129+
#: deepteam/red_teamer/red_teamer.py:231 deepteam/red_teamer/red_teamer.py:332
130+
#: deepteam/red_teamer/red_teamer.py:418 deepteam/red_teamer/red_teamer.py:441
115131
msgid "Risk Assessment"
116132
msgstr "越狱攻击"
117133

118-
#: deepteam/red_teamer/red_teamer.py:219 deepteam/red_teamer/red_teamer.py:309
119-
#: deepteam/red_teamer/red_teamer.py:394 deepteam/red_teamer/red_teamer.py:417
134+
#: deepteam/red_teamer/red_teamer.py:232 deepteam/red_teamer/red_teamer.py:333
135+
#: deepteam/red_teamer/red_teamer.py:419 deepteam/red_teamer/red_teamer.py:442
120136
#, python-brace-format
121137
msgid "Measure model: {model_name}"
122138
msgstr "评估目标模型:{model_name}"
123139

124-
#: deepteam/red_teamer/red_teamer.py:230
140+
#: deepteam/red_teamer/red_teamer.py:243
125141
#, python-brace-format
126142
msgid "Measure {num_simulated_attacks} simulated attacks"
127143
msgstr "评估 {num_simulated_attacks} 个越狱攻击"
128144

129-
#: deepteam/red_teamer/red_teamer.py:235 deepteam/red_teamer/red_teamer.py:517
145+
#: deepteam/red_teamer/red_teamer.py:248 deepteam/red_teamer/red_teamer.py:554
130146
#, python-brace-format
131147
msgid "Measure {idx} / {num_simulated_attacks} simulated attacks"
132148
msgstr "评估第 {idx} / {num_simulated_attacks} 个越狱攻击"
133149

134-
#: deepteam/red_teamer/red_teamer.py:253
150+
#: deepteam/red_teamer/red_teamer.py:262 deepteam/red_teamer/red_teamer.py:480
151+
msgid ""
152+
"The attack simulation phase failed, possibly due to rate limiting or "
153+
"security blocking by the generalization model."
154+
msgstr "攻击泛化阶段失败,可能是泛化模型限流或安全拦截"
155+
156+
#: deepteam/red_teamer/red_teamer.py:267 deepteam/red_teamer/red_teamer.py:484
157+
msgid ""
158+
"The simulation attack remained unchanged, which may be because it was not "
159+
"applicable to the current input."
160+
msgstr "攻击泛化前后无变化,可能是不适用于当前输入"
161+
162+
#: deepteam/red_teamer/red_teamer.py:272
135163
#, python-brace-format
136164
msgid ""
137165
"Generating {idx} / {num_simulated_attacks} output from simulated attacks"
138166
msgstr "生成第 {idx} / {num_simulated_attacks} 个越狱模型响应"
139167

140-
#: deepteam/red_teamer/red_teamer.py:280
168+
#: deepteam/red_teamer/red_teamer.py:288 deepteam/red_teamer/red_teamer.py:499
169+
msgid ""
170+
"The model has no output, which could be due to rate limiting or API security "
171+
"blocking."
172+
msgstr "模型无输出,可能是限流或API安全拦截"
173+
174+
#: deepteam/red_teamer/red_teamer.py:301
141175
#, python-brace-format
142176
msgid "Evaluating {idx} / {num_simulated_attacks} target LLM output"
143177
msgstr "评估第 {idx} / {num_simulated_attacks} 个目标模型输出"
144178

145-
#: deepteam/red_teamer/red_teamer.py:305
179+
#: deepteam/red_teamer/red_teamer.py:314 deepteam/red_teamer/red_teamer.py:518
180+
msgid ""
181+
"An anomaly occurred during the evaluation, which could be due to rate "
182+
"limiting or API security blocking."
183+
msgstr "评估异常,可能是限流或API安全拦截"
184+
185+
#: deepteam/red_teamer/red_teamer.py:329
146186
#, python-brace-format
147187
msgid "Measure {num_simulated_attacks} simulated attacks done"
148188
msgstr "评估 {num_simulated_attacks} 个越狱攻击完成"
149189

150-
#: deepteam/red_teamer/red_teamer.py:411
190+
#: deepteam/red_teamer/red_teamer.py:436
151191
msgid "Measure simulated attacks"
152192
msgstr "评估越狱攻击"
153193

154-
#: deepteam/red_teamer/red_teamer.py:414
194+
#: deepteam/red_teamer/red_teamer.py:439
155195
msgid "Measure simulated attacks done"
156196
msgstr "评估越狱攻击完成"
157197

158-
#: deepteam/attacks/attack_simulator/attack_simulator.py:73
159-
#: deepteam/attacks/attack_simulator/attack_simulator.py:96
160-
#: deepteam/attacks/attack_simulator/attack_simulator.py:179
161-
#: deepteam/attacks/attack_simulator/attack_simulator.py:207
198+
#: deepteam/attacks/attack_simulator/attack_simulator.py:75
199+
#: deepteam/attacks/attack_simulator/attack_simulator.py:98
200+
#: deepteam/attacks/attack_simulator/attack_simulator.py:185
201+
#: deepteam/attacks/attack_simulator/attack_simulator.py:213
162202
msgid "Generating attacks"
163203
msgstr "生成恶意内容"
164204

165-
#: deepteam/attacks/attack_simulator/attack_simulator.py:77
166-
#: deepteam/attacks/attack_simulator/attack_simulator.py:181
205+
#: deepteam/attacks/attack_simulator/attack_simulator.py:79
206+
#: deepteam/attacks/attack_simulator/attack_simulator.py:187
167207
#, python-brace-format
168208
msgid "Simulating {num_vulnerabilities} attacks"
169209
msgstr "生成 {num_vulnerabilities} 个攻击"
170210

171-
#: deepteam/attacks/attack_simulator/attack_simulator.py:82
172-
#: deepteam/attacks/attack_simulator/attack_simulator.py:200
211+
#: deepteam/attacks/attack_simulator/attack_simulator.py:84
212+
#: deepteam/attacks/attack_simulator/attack_simulator.py:206
173213
#, python-brace-format
174214
msgid "Simulating {idx} / {num_vulnerabilities} attacks"
175215
msgstr "生成第 {idx} / {num_vulnerabilities} 个攻击"
176216

177-
#: deepteam/attacks/attack_simulator/attack_simulator.py:93
217+
#: deepteam/attacks/attack_simulator/attack_simulator.py:95
178218
#, python-brace-format
179219
msgid "Simulating {length} attacks done"
180220
msgstr "生成 {length} 个攻击完成"
181221

182-
#: deepteam/attacks/attack_simulator/attack_simulator.py:114
183-
#: deepteam/attacks/attack_simulator/attack_simulator.py:119
184-
#: deepteam/attacks/attack_simulator/attack_simulator.py:151
185-
#: deepteam/attacks/attack_simulator/attack_simulator.py:247
186-
#: deepteam/attacks/attack_simulator/attack_simulator.py:255
187-
#: deepteam/attacks/attack_simulator/attack_simulator.py:271
222+
#: deepteam/attacks/attack_simulator/attack_simulator.py:116
223+
#: deepteam/attacks/attack_simulator/attack_simulator.py:121
224+
#: deepteam/attacks/attack_simulator/attack_simulator.py:157
225+
#: deepteam/attacks/attack_simulator/attack_simulator.py:256
226+
#: deepteam/attacks/attack_simulator/attack_simulator.py:264
227+
#: deepteam/attacks/attack_simulator/attack_simulator.py:280
188228
#, python-brace-format
189229
msgid "Enhance {num_baseline_attacks} attacks"
190230
msgstr "泛化 {num_baseline_attacks} 个攻击"
191231

192-
#: deepteam/attacks/attack_simulator/attack_simulator.py:128
232+
#: deepteam/attacks/attack_simulator/attack_simulator.py:130
193233
#, python-brace-format
194234
msgid "Simulating {idx} / {num_baseline_attacks} attacks"
195235
msgstr "泛化第 {idx} / {num_baseline_attacks} 个攻击"
196236

197-
#: deepteam/attacks/attack_simulator/attack_simulator.py:147
198-
#: deepteam/attacks/attack_simulator/attack_simulator.py:267
237+
#: deepteam/attacks/attack_simulator/attack_simulator.py:153
238+
#: deepteam/attacks/attack_simulator/attack_simulator.py:276
199239
#, python-brace-format
200240
msgid "Enhance {num_baseline_attacks} attacks done"
201241
msgstr "泛化 {num_baseline_attacks} 个攻击完成"
202242

203-
#: deepteam/attacks/attack_simulator/attack_simulator.py:205
243+
#: deepteam/attacks/attack_simulator/attack_simulator.py:211
204244
#, python-brace-format
205245
msgid "Simulating {num_vulnerabilities} attacks done"
206246
msgstr "生成 {num_vulnerabilities} 个攻击完成"
207247

208-
#: deepteam/attacks/attack_simulator/attack_simulator.py:260
248+
#: deepteam/attacks/attack_simulator/attack_simulator.py:269
209249
#, python-brace-format
210250
msgid "Enhance {idx} / {num_baseline_attacks} attacks"
211251
msgstr "泛化第 {idx} / {num_baseline_attacks} 个攻击"

AIG-PromptSecurity/cli/model_utils/openailike.py

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ def __init__(self, model_name: str, base_url: str, api_key: str, max_concurrent:
1515
def load_model(self):
1616
self.client = OpenAI(base_url=self.base_url, api_key=self.api_key)
1717
self.async_client = AsyncOpenAI(base_url=self.base_url, api_key=self.api_key)
18+
self.default_params = {
19+
"reasoning_effort": "low",
20+
"frequency_penalty": 1.0,
21+
"max_completion_tokens": 2048
22+
}
1823
return self.client
1924

2025
def test_model_connection(self):
@@ -25,17 +30,28 @@ def test_model_connection(self):
2530
bool: True 表示连通,False 表示连接失败
2631
str: 返回的响应内容或错误信息
2732
"""
28-
try:
29-
response = self.client.chat.completions.create(
30-
model=self.model_name,
31-
messages=[{"role": "user", "content": "only return 1"}],
32-
reasoning_effort="low",
33-
max_completion_tokens=2048,
34-
frequency_penalty=1.0
35-
)
36-
return True, response.choices[0].message.content
37-
except Exception as e:
38-
return False, str(e)
33+
current_params = self.default_params.copy()
34+
param_keys = list(current_params.keys())
35+
for i in range(len(param_keys) + 1):
36+
try:
37+
response = self.client.chat.completions.create(
38+
model=self.model_name,
39+
messages=[{"role": "user", "content": "only return 1"}],
40+
**current_params
41+
)
42+
# 如果成功,返回成功的信息和使用的参数
43+
self.default_params = current_params.copy()
44+
return True, response.choices[0].message.content
45+
except Exception as e:
46+
last_error = str(e)
47+
# 如果还有参数可以移除,移除下一个参数
48+
if i < len(param_keys):
49+
param_to_remove = param_keys[i]
50+
current_params.pop(param_to_remove, None)
51+
# 否则继续循环(最后一次尝试无参数)
52+
53+
# 所有尝试都失败
54+
return False, last_error
3955

4056
def generate(self, prompt: str = None, messages: list = None) -> str:
4157
for i in range(self.max_trial):
@@ -50,9 +66,7 @@ def generate(self, prompt: str = None, messages: list = None) -> str:
5066
response = self.client.chat.completions.create(
5167
model=self.model_name,
5268
messages=_messages,
53-
reasoning_effort="low",
54-
max_completion_tokens=2048,
55-
frequency_penalty=1.0
69+
**self.default_params
5670
)
5771
content = response.choices[0].message.content
5872
if not isinstance(content, str):
@@ -79,9 +93,7 @@ async def a_generate(self, prompt: str = None, messages: list = None) -> str:
7993
response = await self.async_client.chat.completions.create(
8094
model=self.model_name,
8195
messages=_messages,
82-
reasoning_effort="low",
83-
max_completion_tokens=2048,
84-
frequency_penalty=1.0
96+
**self.default_params
8597
)
8698
content = response.choices[0].message.content
8799
if not isinstance(content, str):

0 commit comments

Comments
 (0)