pub mod client;
pub mod completion;
pub mod embeddings;
pub mod streaming;
pub use client::{ApiErrorResponse, ApiResponse, Client};
pub use completion::CompletionModel;
pub use embeddings::EmbeddingModel;
pub const COMMAND_R_PLUS: &str = "command-r-plus";
pub const COMMAND_R: &str = "command-r";
pub const COMMAND: &str = "command";
pub const COMMAND_NIGHTLY: &str = "command-nightly";
pub const COMMAND_LIGHT: &str = "command-light";
pub const COMMAND_LIGHT_NIGHTLY: &str = "command-light-nightly";
pub const EMBED_ENGLISH_V3: &str = "embed-english-v3.0";
pub const EMBED_ENGLISH_LIGHT_V3: &str = "embed-english-light-v3.0";
pub const EMBED_MULTILINGUAL_V3: &str = "embed-multilingual-v3.0";
pub const EMBED_MULTILINGUAL_LIGHT_V3: &str = "embed-multilingual-light-v3.0";
pub(crate) fn model_dimensions_from_identifier(identifier: &str) -> Option<usize> {
match identifier {
EMBED_ENGLISH_V3 | EMBED_MULTILINGUAL_V3 => Some(1_024),
EMBED_ENGLISH_LIGHT_V3 | EMBED_MULTILINGUAL_LIGHT_V3 => Some(384),
_ => None,
}
}