pub struct GeminiDriver { /* private fields */ }Expand description
Driver for the Google Gemini (Generative Language) API.
Implementations§
Source§impl GeminiDriver
impl GeminiDriver
Sourcepub fn with_client(
client: Client,
api_key: String,
base_url: Option<String>,
) -> Self
pub fn with_client( client: Client, api_key: String, base_url: Option<String>, ) -> Self
Create a new Gemini driver with a shared HTTP client.
Sourcepub fn build_request_body(&self, request: &CompletionRequest) -> Value
pub fn build_request_body(&self, request: &CompletionRequest) -> Value
Build the Gemini API request body.
Sourcepub fn build_stream_url(&self, model: &str) -> String
pub fn build_stream_url(&self, model: &str) -> String
Build the URL for Gemini streaming.
Sourcepub fn parse_response(&self, body: &Value) -> PunchResult<CompletionResponse>
pub fn parse_response(&self, body: &Value) -> PunchResult<CompletionResponse>
Parse the Gemini API response.
Trait Implementations§
Source§impl LlmDriver for GeminiDriver
impl LlmDriver for GeminiDriver
Source§fn complete<'life0, 'async_trait>(
&'life0 self,
request: CompletionRequest,
) -> Pin<Box<dyn Future<Output = PunchResult<CompletionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn complete<'life0, 'async_trait>(
&'life0 self,
request: CompletionRequest,
) -> Pin<Box<dyn Future<Output = PunchResult<CompletionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send a completion request and return the response.
Source§fn stream_complete_with_callback<'life0, 'async_trait>(
&'life0 self,
request: CompletionRequest,
callback: StreamCallback,
) -> Pin<Box<dyn Future<Output = PunchResult<CompletionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream_complete_with_callback<'life0, 'async_trait>(
&'life0 self,
request: CompletionRequest,
callback: StreamCallback,
) -> Pin<Box<dyn Future<Output = PunchResult<CompletionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Streaming completion with per-chunk callback.
Returns the final assembled
CompletionResponse.Source§fn stream_complete<'life0, 'async_trait>(
&'life0 self,
request: CompletionRequest,
) -> Pin<Box<dyn Future<Output = PunchResult<CompletionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream_complete<'life0, 'async_trait>(
&'life0 self,
request: CompletionRequest,
) -> Pin<Box<dyn Future<Output = PunchResult<CompletionResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Streaming variant. Default implementation falls back to
complete.Auto Trait Implementations§
impl Freeze for GeminiDriver
impl !RefUnwindSafe for GeminiDriver
impl Send for GeminiDriver
impl Sync for GeminiDriver
impl Unpin for GeminiDriver
impl UnsafeUnpin for GeminiDriver
impl !UnwindSafe for GeminiDriver
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 more