Integrate OpenRouter for AI-powered code review

Add openrouter-rs dependency, review prompt, and markdown formatting.
Update comment API to accept dynamic body. Adjust devcontainer for
podman compatibility.
This commit is contained in:
2026-06-03 19:38:00 +00:00
parent 4966d08d18
commit de81232201
9 changed files with 541 additions and 50 deletions
+34
View File
@@ -0,0 +1,34 @@
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<Self> {
Ok(Self {
client: openrouter_rs::OpenRouterClient::builder()
.api_key(token)
.build()?,
model: String::from(model),
})
}
pub async fn chat(&self, msg: &str) -> anyhow::Result<String> {
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"))
}
}