pub struct ImageAnalysisTask { /* private fields */ }Expand description
The scene-analysis task. Construct via ImageAnalysisTask::new.
Implementations§
Source§impl ImageAnalysisTask
impl ImageAnalysisTask
Sourcepub fn new() -> Self
pub fn new() -> Self
Construct with accept_empty = false (a payload that lacks the
required indexable content — description AND tags both
populated, OR at least one of the substantive detection buckets
subjects / objects / actions non-empty — is treated as a
model regression and rejected; see Self::with_accept_empty
for the full predicate and the opt-in alternative).
Sourcepub const fn accept_empty(&self) -> bool
pub const fn accept_empty(&self) -> bool
Returns whether the parser accepts payloads that lack the
required indexable content (description AND tags both
non-empty). See Self::with_accept_empty for the trade-off.
Sourcepub const fn with_accept_empty(self, val: bool) -> Self
pub const fn with_accept_empty(self, val: bool) -> Self
Builder-style setter for accept_empty.
When false (default), the parser rejects payloads that lack
the required indexable content as JsonParseError::NoUsableFields.
The composite threshold accepts a
payload when either:
descriptionANDtagsare both populated (the prose + keyword path; matches the integration-test smoke criterion), OR- at least one of the substantive detection buckets —
subjects,objects, oractions— is non-empty (the substantive-detection path; preserves who/what/where search metadata even when the model fails to summarize).
Style/attribute buckets (mood, lighting) and single-label
fields (scene, shot_type) are intentionally NOT in the
substantive path. A payload like lighting: ["natural light"]
or mood: ["calm"] alone (description and tags empty, no
substantive detections) is more often a regression than a
legitimate weak-but-real scene; rejecting it surfaces the
failure instead of writing a single-attribute stub to the
search index.
Tags-only, scene-only, description-only, shot_type-only, mood/lighting-only, and fully-empty payloads all fail both paths and are rejected. This is the right setting for indexing pipelines: it surfaces decoder/model regressions that would otherwise silently overwrite real metadata with sparse search records.
When true, the parser bypasses the indexable-content check and
returns whatever round-trips through the schema. IMAGE_ANALYSIS_PROMPT
explicitly tells the model to “Use empty arrays or empty strings
when a field is unknown”, so on truly low-information frames
(blank, fade-to-black, plain color) compliant model output can
legitimately be sparse or fully-empty. Use this knob if your
pipeline distinguishes “low-information scene” from “no useful
content” via something other than the parser (e.g. scenesdetect’s
keyframe scoring).
Sourcepub const fn set_accept_empty(&mut self, val: bool) -> &mut Self
pub const fn set_accept_empty(&mut self, val: bool) -> &mut Self
In-place setter for accept_empty. See
Self::with_accept_empty for the trade-off.
Trait Implementations§
Source§impl Clone for ImageAnalysisTask
impl Clone for ImageAnalysisTask
Source§fn clone(&self) -> ImageAnalysisTask
fn clone(&self) -> ImageAnalysisTask
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for ImageAnalysisTask
impl Default for ImageAnalysisTask
Source§impl Task for ImageAnalysisTask
impl Task for ImageAnalysisTask
Source§type Output = ImageAnalysis
type Output = ImageAnalysis
Source§type ParseError = JsonParseError
type ParseError = JsonParseError
Task::parse. JSON-parsing
Tasks typically use crate::JsonParseError (behind the
json feature).Source§fn schema(&self) -> &Value
fn schema(&self) -> &Value
Task::Value to a concrete type. Engines
that need a unified Grammar enum should call
Task::grammar instead. Read moreAuto Trait Implementations§
impl Freeze for ImageAnalysisTask
impl RefUnwindSafe for ImageAnalysisTask
impl Send for ImageAnalysisTask
impl Sync for ImageAnalysisTask
impl Unpin for ImageAnalysisTask
impl UnsafeUnpin for ImageAnalysisTask
impl UnwindSafe for ImageAnalysisTask
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 more