Module extract

Module extract 

Source
Expand description

The extraction kit — Extract records with deterministic recognizers.

An Extract record declares typed fields, each filled by a Recognizer that reads the conversation transcript on the CPU — no model, no network, no accelerator. It compiles to a TurnExtractor (so it plugs into the existing extraction pipeline) and promotes recognized fields into governed State, where Flow guards (done(captured([...]))) and repair read them.

This is the deterministic, transcript-sourced slice of the kit (see the extraction-kit RFC). LLM / fetch / MCP / agent resolvers and the #[derive(Extract)] macro layer on top of this same record model.

use gemini_adk_rs::extract::{Extract, Recognizer};

let order = Extract::record("order")
    .field("quantity", Recognizer::integer())
    .field("item", Recognizer::one_of(["pizza", "salad", "soda"]))
    .field("confirmed", Recognizer::yes_no())
    .window(3)
    .build();

Structs§

Extract
A declarative extraction record: typed fields filled by recognizers and/or async resolvers.
ExtractBuilder
Builder for an Extract record.
Field
A field in an Extract record.
RecordExtractor
A TurnExtractor that runs an Extract record’s recognizers and resolvers, and promotes the recognized fields into state.

Enums§

Recognizer
A deterministic transcript recognizer: text -> (value, confidence).