Make async (#5126)

Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
Douwe Osinga
2025-10-10 19:31:50 -04:00
committed by GitHub
parent 69a7b7fe5a
commit 1015064367
43 changed files with 343 additions and 480 deletions
+9 -8
View File
@@ -2,12 +2,14 @@ use anyhow::Result;
use base64::{engine::general_purpose::STANDARD as BASE64, Engine as _};
use dotenvy::dotenv;
use goose::conversation::message::Message;
use goose::providers::{
bedrock::BedrockProvider, databricks::DatabricksProvider, openai::OpenAiProvider,
};
use goose::providers::anthropic::ANTHROPIC_DEFAULT_MODEL;
use goose::providers::create_with_named_model;
use goose::providers::databricks::DATABRICKS_DEFAULT_MODEL;
use goose::providers::openai::OPEN_AI_DEFAULT_MODEL;
use rmcp::model::{CallToolRequestParam, Content, Tool};
use rmcp::object;
use std::fs;
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<()> {
@@ -15,12 +17,11 @@ async fn main() -> Result<()> {
dotenv().ok();
// Create providers
let providers: Vec<Box<dyn goose::providers::base::Provider + Send + Sync>> = vec![
Box::new(DatabricksProvider::default()),
Box::new(OpenAiProvider::default()),
Box::new(BedrockProvider::default()),
let providers: Vec<Arc<dyn goose::providers::base::Provider>> = vec![
create_with_named_model("databricks", DATABRICKS_DEFAULT_MODEL).await?,
create_with_named_model("openai", OPEN_AI_DEFAULT_MODEL).await?,
create_with_named_model("anthropic", ANTHROPIC_DEFAULT_MODEL).await?,
];
for provider in providers {
// Read and encode test image
let image_data = fs::read("crates/goose/examples/test_assets/test_image.png")?;