pub struct InjectionDetector { /* private fields */ }Expand description
Detects prompt-injection attempts in LLM responses.
Two layers of defense:
- Instruction-boundary enforcement — scans for patterns that indicate the LLM is trying to override its system instructions or produce unauthorized output.
- Output schema validation — ensures structured output (tool calls, JSON responses) conforms to expected format.
Implementations§
Source§impl InjectionDetector
impl InjectionDetector
Sourcepub fn permissive() -> Self
pub fn permissive() -> Self
Create a detector with all checks disabled (permissive)
Sourcepub fn with_instruction_boundary(self, enabled: bool) -> Self
pub fn with_instruction_boundary(self, enabled: bool) -> Self
Enable or disable instruction-boundary checking
Sourcepub fn with_output_schema(self, enabled: bool) -> Self
pub fn with_output_schema(self, enabled: bool) -> Self
Enable or disable output schema checking
Sourcepub fn with_custom_pattern(self, pattern: &str) -> Self
pub fn with_custom_pattern(self, pattern: &str) -> Self
Add a custom injection pattern
Sourcepub fn check(&self, content: &str) -> InjectionVerdict
pub fn check(&self, content: &str) -> InjectionVerdict
Check LLM response content for injection attempts.
Returns InjectionVerdict::Clean if the output appears safe,
or InjectionVerdict::Suspicious(reason) if injection is detected.
Trait Implementations§
Source§impl Clone for InjectionDetector
impl Clone for InjectionDetector
Source§fn clone(&self) -> InjectionDetector
fn clone(&self) -> InjectionDetector
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InjectionDetector
impl Debug for InjectionDetector
Auto Trait Implementations§
impl Freeze for InjectionDetector
impl RefUnwindSafe for InjectionDetector
impl Send for InjectionDetector
impl Sync for InjectionDetector
impl Unpin for InjectionDetector
impl UnsafeUnpin for InjectionDetector
impl UnwindSafe for InjectionDetector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request