Skip to main content

Config

Struct Config 

Source
pub struct Config {
    pub bind: SocketAddr,
    pub host: HostKind,
    pub host_url: String,
    pub host_api_key: Option<String>,
    pub default_model: String,
    pub models: BTreeMap<String, ModelEntry>,
    pub strict_models: bool,
    pub max_concurrent_questions: usize,
    pub keep_alive: Option<String>,
    pub host_timeout: Duration,
    pub request_timeout: Duration,
}

Fields§

§bind: SocketAddr§host: HostKind

Which runtime answers. One per process; a second runtime is a second instance.

§host_url: String

Defaults to where host listens out of the box.

§host_api_key: Option<String>

Sent as a bearer token to the OpenAI-compatible hosts. Never logged.

§default_model: String

The alias or model name used when a request names none.

§models: BTreeMap<String, ModelEntry>

Alias to model, with the calibration that alias implies.

§strict_models: bool

When set, a request may only name a configured alias or one of their target models. Off by default, so a fresh install can point at any model Ollama has pulled.

§max_concurrent_questions: usize§keep_alive: Option<String>§host_timeout: Duration§request_timeout: Duration

How long one request may take in total, waiting for a free slot included. Without it, 32 questions at a concurrency of 4 could take eight host timeouts back to back.

Implementations§

Source§

impl Config

Source

pub fn from_env() -> Result<Self, ConfigError>

Read configuration from the environment and, if CERNO_CONFIG names one, a TOML file.

Source

pub fn resolve(&self, name: &str) -> Option<(String, Calibration)>

Resolve a caller-supplied name to a host model and the calibration it implies.

An alias resolves to its entry. A raw model name that some alias points at resolves to that alias’s calibration, so naming the model directly behaves the same as naming the alias. Anything else passes through untouched unless strict_models forbids it.

Source

pub fn conflicting_aliases(&self) -> Vec<(String, Vec<String>)>

Models that several aliases point at with different temperatures, with those aliases.

Config::resolve gives a request naming such a model the calibration of the first alias in order, which is a guess the operator should know about.

Source

pub fn known_models(&self) -> Vec<String>

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

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 Config

Source§

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

Formats the value using the given formatter. Read more

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> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

§

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.

§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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