llm_kit_baseten/lib.rs
1//! Baseten provider implementation for the LLM Kit.
2//!
3//! This crate provides a provider implementation for Baseten, supporting both
4//! Model APIs (hosted models) and custom model deployments.
5//!
6//! # Examples
7//!
8//! ## Recommended: Builder Pattern
9//!
10//! ```no_run
11//! use llm_kit_baseten::BasetenClient;
12//!
13//! // Create a provider using Model APIs
14//! let provider = BasetenClient::new()
15//! .api_key("your-api-key")
16//! .build();
17//!
18//! let model = provider.chat_model(Some("deepseek-ai/DeepSeek-V3-0324"));
19//! ```
20//!
21//! ## Alternative: Direct Instantiation
22//!
23//! ```no_run
24//! use llm_kit_baseten::{BasetenProvider, BasetenProviderSettings};
25//!
26//! let provider = BasetenProvider::new(
27//! BasetenProviderSettings::new()
28//! .with_api_key("your-api-key")
29//! );
30//!
31//! let model = provider.chat_model(Some("deepseek-ai/DeepSeek-V3-0324"));
32//! ```
33//!
34//! ## Custom Model URL
35//!
36//! ```no_run
37//! use llm_kit_baseten::BasetenClient;
38//!
39//! // Create a provider with custom model URL
40//! let provider = BasetenClient::new()
41//! .api_key("your-api-key")
42//! .model_url("https://model-abc123.api.baseten.co/environments/production/sync/v1")
43//! .build();
44//!
45//! let model = provider.chat_model(None);
46//! ```
47//!
48//! ## Text Embeddings
49//!
50//! ```no_run
51//! use llm_kit_baseten::BasetenClient;
52//! use llm_kit_provider::embedding_model::call_options::EmbeddingModelCallOptions;
53//! use llm_kit_provider::EmbeddingModel;
54//!
55//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
56//! let provider = BasetenClient::new()
57//! .api_key("your-api-key")
58//! .model_url("https://model-xyz789.api.baseten.co/environments/production/sync")
59//! .build();
60//!
61//! let model = provider.text_embedding_model(None);
62//!
63//! let texts = vec![
64//! "The capital of France is Paris.".to_string(),
65//! "The capital of Germany is Berlin.".to_string(),
66//! ];
67//! let options = EmbeddingModelCallOptions::new(texts);
68//! let result = model.do_embed(options).await?;
69//! println!("Embeddings: {:?}", result.embeddings);
70//! # Ok(())
71//! # }
72//! ```
73
74/// Chat model types and configuration.
75pub mod chat;
76/// Client builder for creating Baseten providers.
77pub mod client;
78/// Embedding model types and configuration.
79pub mod embedding;
80/// Error types for Baseten provider operations.
81pub mod error;
82/// Provider implementation and creation functions.
83pub mod provider;
84/// Settings and configuration for Baseten providers.
85pub mod settings;
86
87pub use chat::BasetenChatModelId;
88pub use client::BasetenClient;
89pub use embedding::BasetenEmbeddingModelId;
90pub use error::BasetenError;
91pub use provider::BasetenProvider;
92pub use settings::BasetenProviderSettings;