use openmodex::{ChatCompletionRequest, ChatMessage, Error, OpenModex};
#[tokio::main]
async fn main() -> Result<(), Error> {
let client = OpenModex::from_env()?;
let response = client
.chat()
.completions()
.create(
ChatCompletionRequest::new("gpt-4o")
.message(ChatMessage::system("You are a helpful assistant."))
.message(ChatMessage::user("What is OpenModex?"))
.temperature(0.7)
.max_tokens(256),
)
.await?;
let content = response.choices[0]
.message
.as_ref()
.and_then(|m| m.content.as_deref())
.unwrap_or("");
println!("Assistant: {content}");
if let Some(usage) = &response.usage {
println!(
"\nTokens: {} prompt + {} completion = {} total",
usage.prompt_tokens, usage.completion_tokens, usage.total_tokens
);
}
if let Some(meta) = &response.openmodex {
println!("Provider: {}", meta.provider);
println!("Latency: {}ms", meta.latency_ms);
println!("Cache hit: {}", meta.cache_hit);
}
Ok(())
}