Skip to main content

ModelContext

Struct ModelContext 

Source
pub struct ModelContext {
    pub capabilities: ModelCapabilities,
    pub tags: Vec<String>,
    pub inference_defaults: Option<InferenceConfig>,
    pub defaults_origin: Option<DefaultsOrigin>,
    pub context_length: Option<u64>,
}
Expand description

Everything a request pipeline needs to know about the target model, gathered in a single catalog round-trip.

The five fields feed the resolution and shaping stages, which is why they travel together rather than being looked up where each is needed:

Before this type was shared, the proxy resolved all of them while every other surface resolved the same row and kept only tags, so capability coalescing and per-model defaults were unreachable outside the proxy.

Fields§

§capabilities: ModelCapabilities

Stored capability bitfield — drives request-side transforms.

§tags: Vec<String>

format:* tags — drives response-stream parser selection.

§inference_defaults: Option<InferenceConfig>

Per-model inference defaults to merge into each request.

§defaults_origin: Option<DefaultsOrigin>

Whether inference_defaults was set by the user or auto-detected. See DefaultsOrigin.

§context_length: Option<u64>

Maximum context the model supports, in tokens — the history-truncation budget for every surface that cannot measure a live serving context.

Implementations§

Source§

impl ModelContext

Source

pub fn passthrough() -> Self

The zeroed context: empty capabilities so every transform is a no-op, empty tags so the identity passthrough parser is selected, no per-model defaults, and no truncation budget.

This is the conservative fallback used whenever the model cannot be resolved — an unresolvable model must never block a request, only lose its model-specific handling.

Source

pub fn context_budget_chars(&self) -> Option<usize>

The history-truncation budget in characters, from the model’s own capacity: context_length tokens converted at CHARS_PER_TOKEN_APPROX.

None when the context size is unknown, which apply reads as do not truncate. Guessing a budget for an unresolvable model would risk rejecting a request over a number nobody actually knows; losing model-specific handling is the whole fallback policy of this module.

Callers that know the live serving context — the proxy, which also learns a per-model chars-per-token ratio from observed usage frames — compute a better number and pass that instead. This is the answer for everyone else.

Trait Implementations§

Source§

impl Clone for ModelContext

Source§

fn clone(&self) -> ModelContext

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ModelContext

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ModelContext

Source§

fn default() -> ModelContext

Returns the “default value” for a type. Read more
Source§

impl From<&ModelSummary> for ModelContext

Source§

fn from(summary: &ModelSummary) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ModelContext

Source§

fn eq(&self, other: &ModelContext) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ModelContext

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more