use openrouter_rs::{Message, api::chat::ChatCompletionRequest}; pub struct OpenRouterClient { client: openrouter_rs::OpenRouterClient, model: String, } impl OpenRouterClient { pub fn new(token: &str, model: &str) -> anyhow::Result { Ok(Self { client: openrouter_rs::OpenRouterClient::builder() .api_key(token) .build()?, model: String::from(model), }) } pub async fn chat(&self, msg: &str) -> anyhow::Result { let request = ChatCompletionRequest::builder() .model(&self.model) .messages(vec![Message::new( openrouter_rs::types::Role::Developer, msg, )]) .build()?; let response = self.client.chat().create(&request).await?; response.choices[0] .content() .map(|msg| String::from(msg)) .ok_or(anyhow::anyhow!("No content")) } }