pub struct AiPromptLogRecord {
pub ts_ms: i64,
pub request_id: String,
pub consumer: String,
pub route: String,
pub provider: String,
pub model: String,
pub version: String,
pub prompt_json: String,
pub response_json: String,
pub stream: bool,
}Expand description
One AI prompt/response log record (DW-081): the per-request
capture written to the ai_prompt_logs table. A PLAIN DTO —
deliberately not importing ai::types (the analytics domain may
not import the ai domain; see scripts/check_deps.py). The
dataplane serializes and redacts the ChatRequest/ChatResponse
at the call site, passing the redacted JSON strings here. Capture
is opt-in (privacy-first); the redaction pass runs BEFORE the
record is offered.
Fields§
§ts_ms: i64Wall-clock ms since the Unix epoch.
request_id: StringThe request id (correlation handle).
consumer: StringThe authenticated consumer name (or “anonymous”).
route: StringThe route name that served the request.
provider: StringThe serving provider name.
model: StringThe provider’s own model identifier.
version: StringThe canary version label, or empty for non-canary.
prompt_json: StringThe REDACTED prompt as JSON (the serialized ChatRequest after redaction).
response_json: StringThe REDACTED response as JSON (the serialized ChatResponse
after redaction, or {"streamed": true} for streaming
captures where the full content is not reassembled).
stream: boolWhether the request was streaming.
Trait Implementations§
Source§impl Clone for AiPromptLogRecord
impl Clone for AiPromptLogRecord
Source§fn clone(&self) -> AiPromptLogRecord
fn clone(&self) -> AiPromptLogRecord
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for AiPromptLogRecord
impl RefUnwindSafe for AiPromptLogRecord
impl Send for AiPromptLogRecord
impl Sync for AiPromptLogRecord
impl Unpin for AiPromptLogRecord
impl UnwindSafe for AiPromptLogRecord
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<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