Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

Commit 28ed352

Browse files
author
Luke Hinds
authored
Merge pull request #321 from jhrozek/secret_num_redacted
Notify about the number of secrets redacted since the last assistant message instead
2 parents 827faaf + a664171 commit 28ed352

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/codegate/pipeline/secrets/secrets.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,12 @@ async def process(
189189
new_request = request.copy()
190190
total_redacted = 0
191191

192+
# Process all messages
193+
last_assistant_idx = -1
194+
for i, message in enumerate(new_request["messages"]):
195+
if message.get("role", "") == "assistant":
196+
last_assistant_idx = i
197+
192198
# Process all messages
193199
for i, message in enumerate(new_request["messages"]):
194200
if "content" in message and message["content"]:
@@ -198,11 +204,11 @@ async def process(
198204
)
199205
new_request["messages"][i]["content"] = protected_string
200206

201-
# only sum to the count if it is the last message
202-
if i == len(new_request["messages"]) - 1:
207+
# Sum redacted count for messages after the last assistant message
208+
if i > last_assistant_idx:
203209
total_redacted += redacted_count
204210

205-
logger.info(f"Total secrets redacted: {total_redacted}")
211+
logger.info(f"Total secrets redacted since last assistant message: {total_redacted}")
206212

207213
# Store the count in context metadata
208214
context.metadata["redacted_secrets_count"] = total_redacted
@@ -350,7 +356,7 @@ async def process_chunk(
350356
return [chunk]
351357

352358
# Check if this is the first chunk (delta role will be present, others will not)
353-
if chunk.choices[0].delta.role:
359+
if len(chunk.choices) > 0 and chunk.choices[0].delta.role:
354360
redacted_count = input_context.metadata["redacted_secrets_count"]
355361
secret_text = "secret" if redacted_count == 1 else "secrets"
356362
# Create notification chunk

0 commit comments

Comments
 (0)