add install script and compilation fixes
This commit is contained in:
		@@ -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?;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user