Support custom clients for bedrock

The current ClientBuilder is limited. Instead of adding more options, we
now provide a way to externally configure and inject a client.
This commit is contained in:
Marc Bowes 2025-04-16 10:28:21 -07:00
parent 522d3f6ba1
commit 5eae739cf3
3 changed files with 18 additions and 33 deletions

43
Cargo.lock generated
View File

@ -8631,7 +8631,7 @@ dependencies = [
"aws-smithy-types", "aws-smithy-types",
"base64 0.22.1", "base64 0.22.1",
"reqwest 0.12.15", "reqwest 0.12.15",
"rig-core 0.11.0", "rig-core",
"rig-derive", "rig-derive",
"schemars", "schemars",
"serde", "serde",
@ -8641,27 +8641,6 @@ dependencies = [
"tracing-subscriber", "tracing-subscriber",
] ]
[[package]]
name = "rig-core"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff893305131b471009ab11df388612beb603ed94bb12412c256fe197b7591aa6"
dependencies = [
"async-stream",
"base64 0.22.1",
"bytes",
"futures",
"glob",
"mime_guess",
"ordered-float",
"reqwest 0.12.15",
"schemars",
"serde",
"serde_json",
"thiserror 1.0.69",
"tracing",
]
[[package]] [[package]]
name = "rig-core" name = "rig-core"
version = "0.11.1" version = "0.11.1"
@ -8703,7 +8682,7 @@ dependencies = [
"indoc", "indoc",
"proc-macro2", "proc-macro2",
"quote", "quote",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"syn 2.0.100", "syn 2.0.100",
@ -8718,7 +8697,7 @@ dependencies = [
"anyhow", "anyhow",
"ethers", "ethers",
"reqwest 0.12.15", "reqwest 0.12.15",
"rig-core 0.11.1", "rig-core",
"schemars", "schemars",
"serde", "serde",
"serde_json", "serde_json",
@ -8733,7 +8712,7 @@ version = "0.1.5"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"fastembed", "fastembed",
"rig-core 0.11.1", "rig-core",
"schemars", "schemars",
"serde", "serde",
"serde_json", "serde_json",
@ -8751,7 +8730,7 @@ dependencies = [
"futures", "futures",
"httpmock", "httpmock",
"lancedb", "lancedb",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"tokio", "tokio",
@ -8765,7 +8744,7 @@ dependencies = [
"futures", "futures",
"httpmock", "httpmock",
"mongodb", "mongodb",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"testcontainers", "testcontainers",
@ -8782,7 +8761,7 @@ dependencies = [
"futures", "futures",
"httpmock", "httpmock",
"neo4rs", "neo4rs",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"term_size", "term_size",
@ -8802,7 +8781,7 @@ dependencies = [
"httpmock", "httpmock",
"log", "log",
"pgvector", "pgvector",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"sqlx", "sqlx",
@ -8821,7 +8800,7 @@ dependencies = [
"anyhow", "anyhow",
"httpmock", "httpmock",
"qdrant-client", "qdrant-client",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"testcontainers", "testcontainers",
@ -8836,7 +8815,7 @@ dependencies = [
"anyhow", "anyhow",
"chrono", "chrono",
"httpmock", "httpmock",
"rig-core 0.11.1", "rig-core",
"rusqlite", "rusqlite",
"serde", "serde",
"serde_json", "serde_json",
@ -8853,7 +8832,7 @@ name = "rig-surrealdb"
version = "0.1.4" version = "0.1.4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"rig-core 0.11.1", "rig-core",
"serde", "serde",
"serde_json", "serde_json",
"surrealdb", "surrealdb",

View File

@ -7,7 +7,7 @@ readme = "README.md"
description = "AWS Bedrock model provider for Rig integration." description = "AWS Bedrock model provider for Rig integration."
[dependencies] [dependencies]
rig-core = { version = "0.11.0", features = ["image"] } rig-core = { version = "0.11.1", path = "../rig-core", features = ["image"] }
rig-derive = { path = "../rig-core/rig-core-derive", version = "0.1.1" } rig-derive = { path = "../rig-core/rig-core-derive", version = "0.1.1" }
serde = { version = "1.0.193", features = ["derive"] } serde = { version = "1.0.193", features = ["derive"] }
serde_json = "1.0.108" serde_json = "1.0.108"

View File

@ -52,6 +52,12 @@ pub struct Client {
pub(crate) aws_client: aws_sdk_bedrockruntime::Client, pub(crate) aws_client: aws_sdk_bedrockruntime::Client,
} }
impl From<aws_sdk_bedrockruntime::Client> for Client {
fn from(aws_client: aws_sdk_bedrockruntime::Client) -> Self {
Client { aws_client }
}
}
impl Client { impl Client {
pub fn completion_model(&self, model: &str) -> CompletionModel { pub fn completion_model(&self, model: &str) -> CompletionModel {
CompletionModel::new(self.clone(), model) CompletionModel::new(self.clone(), model)