pub mod client;
pub mod completion;
pub mod embedding;
pub mod streaming;
pub use client::Client;
mod proto {
#![allow(clippy::all)]
#![allow(warnings)]
tonic::include_proto!("google.ai.generativelanguage.v1beta");
}
pub use proto::{
Content, EmbedContentRequest, EmbedContentResponse, GenerateContentRequest,
GenerateContentResponse, Part, generative_service_client::GenerativeServiceClient,
};
impl rig::completion::GetTokenUsage for proto::GenerateContentResponse {
fn token_usage(&self) -> Option<rig::completion::Usage> {
self.usage_metadata
.as_ref()
.map(|u| rig::completion::Usage {
input_tokens: u.prompt_token_count as u64,
output_tokens: u.candidates_token_count as u64,
total_tokens: u.total_token_count as u64,
cached_input_tokens: u.cached_content_token_count as u64,
})
}
}