Skip to main content

TracedChat

Struct TracedChat 

Source
pub struct TracedChat<'c, C: Config> { /* private fields */ }
Expand description

A wrapper around async-openai’s Chat that automatically creates Langfuse generation spans for every chat completion API call.

Implementations§

Source§

impl<'c, C: Config> TracedChat<'c, C>

Source

pub fn new(chat: Chat<'c, C>) -> Self

Wrap an existing Chat instance with Langfuse tracing.

Source

pub async fn create( &self, request: CreateChatCompletionRequest, ) -> Result<CreateChatCompletionResponse, OpenAIError>

Create a chat completion with automatic Langfuse tracing.

A generation span is created before the request and ended after the response is received. Model, usage, input, and output are recorded automatically.

§Errors

Returns the underlying OpenAIError if the API call fails.

Source

pub async fn create_stream( &self, request: CreateChatCompletionRequest, ) -> Result<TracedStream, OpenAIError>

Create a streaming chat completion with automatic Langfuse tracing.

A generation span is created before the request. The returned TracedStream accumulates content from delta chunks and records completion_start_time on the first chunk. The span is finalized when the stream ends or is dropped.

§Errors

Returns the underlying OpenAIError if the API call fails.

Trait Implementations§

Source§

impl<C: Config> Debug for TracedChat<'_, C>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'c, C> Freeze for TracedChat<'c, C>

§

impl<'c, C> !RefUnwindSafe for TracedChat<'c, C>

§

impl<'c, C> Send for TracedChat<'c, C>

§

impl<'c, C> Sync for TracedChat<'c, C>

§

impl<'c, C> Unpin for TracedChat<'c, C>

§

impl<'c, C> UnsafeUnpin for TracedChat<'c, C>

§

impl<'c, C> !UnwindSafe for TracedChat<'c, C>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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, 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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