pub enum AiEndpoint {
Chat,
Embeddings,
Images,
Audio,
Moderation,
Batch,
}Expand description
AI-02: which AI endpoint a route serves. The chat endpoint (the
default) uses the full adapter translation pipeline (DW-075). The
other endpoints are proxied as a passthrough: the request body is
forwarded to the provider’s upstream as-is, and the response is
returned as-is. Model governance (allowlist check) still applies
using the model field from the request body.
Variants§
Chat
OpenAI chat-completions (POST /v1/chat/completions). The
full adapter translation pipeline applies (DW-075). This is the
default.
Embeddings
OpenAI embeddings (POST /v1/embeddings). Proxied as a
passthrough; the request body {model, input} is forwarded
as-is. Token usage from the response is recorded for budget
accounting.
Images
OpenAI images (POST /v1/images/generations). Proxied as a
passthrough; no token usage (image generation is priced per
image, not per token).
Audio
OpenAI audio (TTS POST /v1/audio/speech, transcription
POST /v1/audio/transcriptions). Proxied as a passthrough.
Moderation
OpenAI moderation (POST /v1/moderations). Proxied as a
passthrough.
Batch
AI-04 (#194): OpenAI Batch API (POST /v1/batches). Proxied
as a passthrough for batch creation/status/cancel. When batch
results are retrieved (GET /v1/batches/{id}/output), the
JSONL result file is parsed and each line’s usage is metered
at the batch (50% discount) rate.
Trait Implementations§
Source§impl Clone for AiEndpoint
impl Clone for AiEndpoint
Source§fn clone(&self) -> AiEndpoint
fn clone(&self) -> AiEndpoint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AiEndpoint
impl Debug for AiEndpoint
Source§impl Default for AiEndpoint
impl Default for AiEndpoint
Source§fn default() -> AiEndpoint
fn default() -> AiEndpoint
Source§impl<'de> Deserialize<'de> for AiEndpoint
impl<'de> Deserialize<'de> for AiEndpoint
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 AiEndpoint
impl JsonSchema for AiEndpoint
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 moreSource§impl PartialEq for AiEndpoint
impl PartialEq for AiEndpoint
Source§impl Serialize for AiEndpoint
impl Serialize for AiEndpoint
impl Copy for AiEndpoint
impl Eq for AiEndpoint
impl StructuralPartialEq for AiEndpoint
Auto Trait Implementations§
impl Freeze for AiEndpoint
impl RefUnwindSafe for AiEndpoint
impl Send for AiEndpoint
impl Sync for AiEndpoint
impl Unpin for AiEndpoint
impl UnwindSafe for AiEndpoint
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