mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-09 03:18:44 +00:00
fix(guardrails): track pattern partition by index, not id()
Signed-off-by: Jacinta Ferrant <jacinta.ferrant@gmail.com>
This commit is contained in:
parent
93b8940082
commit
a0977a1860
1 changed files with 12 additions and 10 deletions
|
|
@ -813,22 +813,24 @@ class ContentFilterGuardrail(CustomGuardrail):
|
|||
p for p in self.compiled_patterns if is_contextual(p)
|
||||
)
|
||||
|
||||
simple_patterns = tuple(
|
||||
p for p in self.compiled_patterns if not is_contextual(p)
|
||||
)
|
||||
if not simple_patterns:
|
||||
indexed_simple_patterns = [
|
||||
(i, p) for i, p in enumerate(self.compiled_patterns) if not is_contextual(p)
|
||||
]
|
||||
if not indexed_simple_patterns:
|
||||
return AlwaysMatchPrefilter(), tuple(self.compiled_patterns)
|
||||
|
||||
prefilter, uncovered_indices = build_rust_pattern_prefilter(
|
||||
[p["regex"].pattern for p in simple_patterns]
|
||||
prefilter, uncovered_positions = build_rust_pattern_prefilter(
|
||||
[p["regex"].pattern for _, p in indexed_simple_patterns]
|
||||
)
|
||||
uncovered_simple_patterns = {
|
||||
id(p) for i, p in enumerate(simple_patterns) if i in uncovered_indices
|
||||
uncovered_original_indices = {
|
||||
original_index
|
||||
for position, (original_index, _) in enumerate(indexed_simple_patterns)
|
||||
if position in uncovered_positions
|
||||
}
|
||||
always_run_patterns = tuple(
|
||||
p
|
||||
for p in self.compiled_patterns
|
||||
if is_contextual(p) or id(p) in uncovered_simple_patterns
|
||||
for i, p in enumerate(self.compiled_patterns)
|
||||
if is_contextual(p) or i in uncovered_original_indices
|
||||
)
|
||||
return prefilter, always_run_patterns
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue