pub struct BedrockDriver { /* private fields */ }Expand description
Driver for AWS Bedrock using the Converse API with SigV4 authentication.
Implementations§
Source§impl BedrockDriver
impl BedrockDriver
Sourcepub fn new(access_key: String, secret_key: String, region: String) -> Self
pub fn new(access_key: String, secret_key: String, region: String) -> Self
Create a new Bedrock driver.
Sourcepub fn with_client(
client: Client,
access_key: String,
secret_key: String,
region: String,
) -> Self
pub fn with_client( client: Client, access_key: String, secret_key: String, region: String, ) -> Self
Create a new Bedrock 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 Bedrock Converse API request body.
Sourcepub fn parse_response(&self, body: &Value) -> PunchResult<CompletionResponse>
pub fn parse_response(&self, body: &Value) -> PunchResult<CompletionResponse>
Parse the Bedrock Converse API response.
Sourcepub fn sign_request(
&self,
method: &str,
url: &str,
headers: &[(String, String)],
payload: &[u8],
timestamp: &str,
) -> PunchResult<String>
pub fn sign_request( &self, method: &str, url: &str, headers: &[(String, String)], payload: &[u8], timestamp: &str, ) -> PunchResult<String>
Compute an AWS SigV4 signature and return the Authorization header value.
This is a basic implementation sufficient for Bedrock API calls.
Trait Implementations§
Source§impl LlmDriver for BedrockDriver
impl LlmDriver for BedrockDriver
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 BedrockDriver
impl !RefUnwindSafe for BedrockDriver
impl Send for BedrockDriver
impl Sync for BedrockDriver
impl Unpin for BedrockDriver
impl UnsafeUnpin for BedrockDriver
impl !UnwindSafe for BedrockDriver
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