pub struct AiPricing {
pub input_per_1k_micros: u64,
pub output_per_1k_micros: u64,
pub cached_input_per_1k_micros: Option<u64>,
pub batch_input_per_1k_micros: Option<u64>,
pub batch_output_per_1k_micros: Option<u64>,
}Expand description
Per-model token pricing (DW-079 ai.pricing.<provider_model>).
Costs are integer MICRO-USD per 1 000 tokens (1 000 000 micro-USD =
$1.00 — no floating-point money). The key in the parent map is the
PROVIDER MODEL identifier (the actual model the provider charges
for), not the client-facing alias. Spend is computed as
input_tokens * input_per_1k_micros / 1000 + output_tokens * output_per_1k_micros / 1000 (integer micro-USD, saturating).
The optional cached-token and batch-rate fields (DW-AI-03) extend
the table for prompt-caching and batch-API discounts. When absent,
the standard input/output rates apply (the fallback). Cached tokens
are priced at cached_input_per_1k_micros when present (the
discounted rate providers charge for prompt-cache hits); the
non-cached portion of the prompt is priced at the standard
input_per_1k_micros. Batch rates apply when the request is a
batch-API call (batch: true on the cost computation).
Fields§
§input_per_1k_micros: u64Micro-USD per 1 000 input (prompt) tokens.
output_per_1k_micros: u64Micro-USD per 1 000 output (completion) tokens.
cached_input_per_1k_micros: Option<u64>Micro-USD per 1 000 CACHED input (prompt-cached) tokens. When
present, the cached_tokens portion of the prompt is priced at
this discounted rate instead of input_per_1k_micros. Absent
(the default): cached tokens are priced at the standard input
rate (no separate cached tier).
batch_input_per_1k_micros: Option<u64>Micro-USD per 1 000 input tokens under the batch API. When
present and the request is a batch call, this rate replaces
input_per_1k_micros. Absent (the default): batch calls fall
back to the standard input rate.
batch_output_per_1k_micros: Option<u64>Micro-USD per 1 000 output tokens under the batch API. When
present and the request is a batch call, this rate replaces
output_per_1k_micros. Absent (the default): batch calls fall
back to the standard output rate.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AiPricing
impl<'de> Deserialize<'de> for AiPricing
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for AiPricing
impl JsonSchema for AiPricing
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreimpl Copy for AiPricing
impl Eq for AiPricing
impl StructuralPartialEq for AiPricing
Auto Trait Implementations§
impl Freeze for AiPricing
impl RefUnwindSafe for AiPricing
impl Send for AiPricing
impl Sync for AiPricing
impl Unpin for AiPricing
impl UnwindSafe for AiPricing
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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