pub struct QualityConfig {
pub self_check: bool,
pub proposer_provider: ProviderName,
pub checker_provider: ProviderName,
pub trigger: TriggerPolicy,
pub min_evidence: f32,
pub async_run: bool,
pub latency_budget_ms: u64,
pub per_call_timeout_ms: u64,
pub max_assertions: usize,
pub max_response_chars: usize,
pub cache_disabled_for_checker: bool,
pub flag_marker: String,
}Expand description
Configuration for the MARCH self-check quality pipeline.
Add a [quality] section to your config.toml to enable:
[quality]
self_check = true
trigger = "has_retrieval"
async_run = falseFields§
§self_check: boolEnable post-response self-check pipeline.
proposer_provider: ProviderNameAdvisory: preferred provider for the Proposer role.
In MVP this field is parsed but not acted upon — the main provider is used. Tracked as a follow-up issue.
checker_provider: ProviderNameAdvisory: preferred provider for the Checker role.
In MVP this field is parsed but not acted upon — the main provider is used. Tracked as a follow-up issue.
trigger: TriggerPolicyWhen to trigger the self-check pipeline.
min_evidence: f32Minimum evidence strength to consider an assertion supported (0.0–1.0).
Assertions where status != Irrelevant && evidence < min_evidence are flagged.
async_run: boolIf false (default), self-check blocks the response until complete.
If true, it runs in the background and emits a visible closing marker.
latency_budget_ms: u64Hard ceiling on total pipeline latency in milliseconds (sync mode).
per_call_timeout_ms: u64Per-LLM-call timeout in milliseconds. Must be ≤ latency_budget_ms / 2.
max_assertions: usizeMaximum number of assertions to extract from one response.
max_response_chars: usizeSkip pipeline when assistant response exceeds this many characters.
cache_disabled_for_checker: boolIf true, Checker provider clones without prompt-cache emission (recommended).
flag_marker: StringString appended to the assistant response when the pipeline flags issues.
Implementations§
Source§impl QualityConfig
impl QualityConfig
Trait Implementations§
Source§impl Clone for QualityConfig
impl Clone for QualityConfig
Source§fn clone(&self) -> QualityConfig
fn clone(&self) -> QualityConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for QualityConfig
impl Debug for QualityConfig
Source§impl Default for QualityConfig
impl Default for QualityConfig
Source§impl<'de> Deserialize<'de> for QualityConfig
impl<'de> Deserialize<'de> for QualityConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<&QualityConfig> for QualityConfig
impl From<&QualityConfig> for QualityConfig
Source§fn from(c: &QualityConfig) -> Self
fn from(c: &QualityConfig) -> Self
Auto Trait Implementations§
impl Freeze for QualityConfig
impl RefUnwindSafe for QualityConfig
impl Send for QualityConfig
impl Sync for QualityConfig
impl Unpin for QualityConfig
impl UnsafeUnpin for QualityConfig
impl UnwindSafe for QualityConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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>
T in a tonic::Request