add install script and compilation fixes

This commit is contained in:
Timur Gordon
2025-08-27 13:17:52 +02:00
parent f87a1d7f80
commit b39f24ca8f
4 changed files with 250 additions and 27 deletions

View File

@@ -1,20 +1,17 @@
use async_trait::async_trait;
use openrouter_rs::{OpenRouterClient, api::chat::*, types::Role, ChatCompletionResponse}; // Added ChatCompletionResponse here
use openrouter_rs::{OpenRouterClient, api::chat::{ChatCompletionRequest, Message}, types::completion::CompletionsResponse};
use std::env;
use std::error::Error;
// Re-export Message and MessageRole for easier use in client code
pub use openrouter_rs::api::chat::Message;
pub use openrouter_rs::types::Role as MessageRole;
// Removed the problematic import for ChatCompletionResponse
// pub use openrouter_rs::api::chat::chat_completion::ChatCompletionResponse;
// Re-export MessageRole for easier use in client code
pub use openrouter_rs::types::Role as MessageRole;
#[async_trait]
pub trait AIProvider {
async fn completion(
&mut self,
request: CompletionRequest,
) -> Result<ChatCompletionResponse, Box<dyn Error>>;
) -> Result<CompletionsResponse, Box<dyn Error>>;
}
pub struct CompletionRequest {
@@ -79,7 +76,7 @@ impl<'a> CompletionRequestBuilder<'a> {
self
}
pub async fn completion(self) -> Result<ChatCompletionResponse, Box<dyn Error>> {
pub async fn completion(self) -> Result<CompletionsResponse, Box<dyn Error>> {
let request = CompletionRequest {
model: self.model,
messages: self.messages,
@@ -102,15 +99,13 @@ impl AIProvider for GroqAIProvider {
async fn completion(
&mut self,
request: CompletionRequest,
) -> Result<ChatCompletionResponse, Box<dyn Error>> {
) -> Result<CompletionsResponse, Box<dyn Error>> {
let chat_request = ChatCompletionRequest::builder()
.model(request.model)
.messages(request.messages)
.temperature(request.temperature.unwrap_or(1.0))
.max_tokens(request.max_tokens.map(|x| x as u32).unwrap_or(2048))
.top_p(request.top_p.unwrap_or(1.0))
.stream(request.stream.unwrap_or(false)) // Corrected to field assignment
.stop(request.stop.unwrap_or_default())
.build()?;
let result = self.client.send_chat_completion(&chat_request).await?;
@@ -127,15 +122,13 @@ impl AIProvider for OpenAIProvider {
async fn completion(
&mut self,
request: CompletionRequest,
) -> Result<ChatCompletionResponse, Box<dyn Error>> {
) -> Result<CompletionsResponse, Box<dyn Error>> {
let chat_request = ChatCompletionRequest::builder()
.model(request.model)
.messages(request.messages)
.temperature(request.temperature.unwrap_or(1.0))
.max_tokens(request.max_tokens.map(|x| x as u32).unwrap_or(2048))
.top_p(request.top_p.unwrap_or(1.0))
.stream(request.stream.unwrap_or(false)) // Corrected to field assignment
.stop(request.stop.unwrap_or_default())
.build()?;
let result = self.client.send_chat_completion(&chat_request).await?;
@@ -152,15 +145,13 @@ impl AIProvider for OpenRouterAIProvider {
async fn completion(
&mut self,
request: CompletionRequest,
) -> Result<ChatCompletionResponse, Box<dyn Error>> {
) -> Result<CompletionsResponse, Box<dyn Error>> {
let chat_request = ChatCompletionRequest::builder()
.model(request.model)
.messages(request.messages)
.temperature(request.temperature.unwrap_or(1.0))
.max_tokens(request.max_tokens.map(|x| x as u32).unwrap_or(2048))
.top_p(request.top_p.unwrap_or(1.0))
.stream(request.stream.unwrap_or(false)) // Corrected to field assignment
.stop(request.stop.unwrap_or_default())
.build()?;
let result = self.client.send_chat_completion(&chat_request).await?;
@@ -177,15 +168,13 @@ impl AIProvider for CerebrasAIProvider {
async fn completion(
&mut self,
request: CompletionRequest,
) -> Result<ChatCompletionResponse, Box<dyn Error>> {
) -> Result<CompletionsResponse, Box<dyn Error>> {
let chat_request = ChatCompletionRequest::builder()
.model(request.model)
.messages(request.messages)
.temperature(request.temperature.unwrap_or(1.0))
.max_tokens(request.max_tokens.map(|x| x as u32).unwrap_or(2048))
.top_p(request.top_p.unwrap_or(1.0))
.stream(request.stream.unwrap_or(false)) // Corrected to field assignment
.stop(request.stop.unwrap_or_default())
.build()?;
let result = self.client.send_chat_completion(&chat_request).await?;