pub trait GenerationHook: Send + Sync {
// Provided methods
fn on_generate_result(
&self,
_ctx: &GenerationContext<'_>,
_result: &LanguageModelGenerateResult,
) { ... }
fn on_generate_error(&self, _error: &BitrouterError) { ... }
fn on_stream_part(
&self,
_ctx: &GenerationContext<'_>,
_part: &LanguageModelStreamPart,
) { ... }
}Expand description
A hook that observes generation lifecycle events for side-effect purposes (logging, metrics, token tracking, auditing).
Hooks receive borrowed references to core types and must not block. All methods have default no-op implementations so consumers only override the events they care about.
Provided Methods§
Sourcefn on_generate_result(
&self,
_ctx: &GenerationContext<'_>,
_result: &LanguageModelGenerateResult,
)
fn on_generate_result( &self, _ctx: &GenerationContext<'_>, _result: &LanguageModelGenerateResult, )
Called after a non-streaming generate() call completes successfully.
Sourcefn on_generate_error(&self, _error: &BitrouterError)
fn on_generate_error(&self, _error: &BitrouterError)
Called when generate() or stream() returns an error.
Sourcefn on_stream_part(
&self,
_ctx: &GenerationContext<'_>,
_part: &LanguageModelStreamPart,
)
fn on_stream_part( &self, _ctx: &GenerationContext<'_>, _part: &LanguageModelStreamPart, )
Called for each streaming part as it is yielded from the model stream.
To capture token usage from streaming responses, match on
LanguageModelStreamPart::Finish which carries
LanguageModelUsage.