Skip to main content

vtcode_llm/providers/openrouter/provider/
client_impl.rs

1use super::super::OpenRouterProvider;
2use crate::client::LLMClient;
3use crate::provider::{LLMError, LLMProvider, LLMRequest};
4use crate::types as llm_types;
5use async_trait::async_trait;
6
7#[async_trait]
8impl LLMClient for OpenRouterProvider {
9    async fn generate(&mut self, prompt: &str) -> Result<llm_types::LLMResponse, LLMError> {
10        let request = LLMRequest {
11            messages: std::sync::Arc::new(vec![crate::provider::Message::user(prompt.to_string())]),
12            model: self.model.clone(),
13            ..Default::default()
14        };
15        Ok(LLMProvider::generate(self, request).await?)
16    }
17
18    fn model_id(&self) -> &str {
19        &self.model
20    }
21}