pub struct RetryExecutor { /* private fields */ }Expand description
Retry executor for LLM calls
Wraps an LLM provider with retry logic, supporting:
- Configurable retry strategies (NoRetry, DirectRetry, PromptRetry)
- Exponential backoff with jitter
- JSON validation for JSON mode requests
- Error-specific retry strategies
Implementations§
Source§impl RetryExecutor
impl RetryExecutor
Sourcepub fn new(
provider: Arc<dyn LLMProvider>,
policy: LLMRetryPolicy,
) -> RetryExecutor
pub fn new( provider: Arc<dyn LLMProvider>, policy: LLMRetryPolicy, ) -> RetryExecutor
Create a new retry executor
Sourcepub async fn chat(
&self,
request: ChatCompletionRequest,
) -> Result<ChatCompletionResponse, LLMError>
pub async fn chat( &self, request: ChatCompletionRequest, ) -> Result<ChatCompletionResponse, LLMError>
Execute a chat completion request with retry logic
Auto Trait Implementations§
impl Freeze for RetryExecutor
impl !RefUnwindSafe for RetryExecutor
impl Send for RetryExecutor
impl Sync for RetryExecutor
impl Unpin for RetryExecutor
impl UnsafeUnpin for RetryExecutor
impl !UnwindSafe for RetryExecutor
Blanket Implementations§
Source§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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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 moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage