pub struct ContentFilter { /* private fields */ }Available on crate feature
guardrail only.Expand description
Content filter guardrail for blocking harmful or off-topic content
Implementations§
Source§impl ContentFilter
impl ContentFilter
Sourcepub fn new(
name: impl Into<String>,
config: ContentFilterConfig,
) -> ContentFilter
pub fn new( name: impl Into<String>, config: ContentFilterConfig, ) -> ContentFilter
Create a new content filter with custom config
Sourcepub fn harmful_content() -> ContentFilter
pub fn harmful_content() -> ContentFilter
Create a filter that blocks common harmful content patterns.
This default filter excludes developer-common terms like “hack” and “exploit”
to avoid false positives in developer contexts. Use harmful_content_strict
for the full keyword list.
Sourcepub fn harmful_content_strict() -> ContentFilter
pub fn harmful_content_strict() -> ContentFilter
Create a strict filter that blocks all harmful content patterns, including terms like “hack” and “exploit” that may produce false positives in developer contexts.
Sourcepub fn on_topic(
topic: impl Into<String>,
keywords: Vec<String>,
) -> ContentFilter
pub fn on_topic( topic: impl Into<String>, keywords: Vec<String>, ) -> ContentFilter
Create a filter that ensures content is on-topic
Sourcepub fn max_length(max: usize) -> ContentFilter
pub fn max_length(max: usize) -> ContentFilter
Create a filter with maximum length
Sourcepub fn blocked_keywords(keywords: Vec<String>) -> ContentFilter
pub fn blocked_keywords(keywords: Vec<String>) -> ContentFilter
Create a filter with blocked keywords
Trait Implementations§
Source§impl Guardrail for ContentFilter
impl Guardrail for ContentFilter
Source§fn validate<'life0, 'life1, 'async_trait>(
&'life0 self,
content: &'life1 Content,
) -> Pin<Box<dyn Future<Output = GuardrailResult> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ContentFilter: 'async_trait,
fn validate<'life0, 'life1, 'async_trait>(
&'life0 self,
content: &'life1 Content,
) -> Pin<Box<dyn Future<Output = GuardrailResult> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
ContentFilter: 'async_trait,
Validate content and return result
Source§fn run_parallel(&self) -> bool
fn run_parallel(&self) -> bool
Whether to run in parallel with other guardrails (default: true)
Auto Trait Implementations§
impl Freeze for ContentFilter
impl RefUnwindSafe for ContentFilter
impl Send for ContentFilter
impl Sync for ContentFilter
impl Unpin for ContentFilter
impl UnsafeUnpin for ContentFilter
impl UnwindSafe for ContentFilter
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
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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::RequestCreates a shared type from an unshared type.