add more changes

This commit is contained in:
Adil Hafeez 2025-06-03 09:58:06 -07:00
parent 9befd6364c
commit 2d4d0b01ee
No known key found for this signature in database
GPG key ID: 9B18EF7691369645
4 changed files with 104 additions and 0 deletions

View file

@ -0,0 +1,44 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Message {
pub role: String,
pub content: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ChatRequestBase {
pub model: String,
pub messages: Option<Vec<Message>>,
pub temperature: Option<f32>,
pub top_p: Option<f32>,
pub n: Option<u32>,
pub max_tokens: Option<u32>,
pub stream: Option<bool>,
pub stop: Option<Vec<String>>,
pub presence_penalty: Option<f32>,
pub frequency_penalty: Option<f32>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ChatResponseBase {
pub id: String,
pub object: String,
pub created: u64,
pub choices: Vec<Choice>,
pub usage: Option<Usage>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Choice {
pub index: u32,
pub message: Message,
pub finish_reason: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Usage {
pub prompt_tokens: u32,
pub completion_tokens: u32,
pub total_tokens: u32,
}

View file

@ -0,0 +1,27 @@
pub mod types;
use thiserror::Error;
use crate::providers::deepseek::types::{DeepSeekRequest, DeepSeekResponse};
#[derive(Debug, Error)]
pub enum DeepSeekError {
#[error("json error: {0}")]
JsonParseError(#[from] serde_json::Error),
}
type Result<T> = std::result::Result<T, DeepSeekError>;
impl TryFrom<&[u8]> for DeepSeekRequest {
type Error = DeepSeekError;
fn try_from(bytes: &[u8]) -> Result<Self> {
serde_json::from_slice(bytes).map_err(DeepSeekError::from)
}
}
impl TryFrom<&[u8]> for DeepSeekResponse {
type Error = DeepSeekError;
fn try_from(bytes: &[u8]) -> Result<Self> {
serde_json::from_slice(bytes).map_err(DeepSeekError::from)
}
}

View file

@ -0,0 +1,17 @@
use serde::{Deserialize, Serialize};
use crate::providers::common_types::{ChatRequestBase, ChatResponseBase};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeepSeekRequest {
#[serde(flatten)]
pub base: ChatRequestBase,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeepSeekResponse {
#[serde(flatten)]
pub base: ChatResponseBase,
}
// Re-export for convenience
pub use crate::providers::common_types::{Message, Choice, Usage};

View file

@ -0,0 +1,16 @@
use serde::{Deserialize, Serialize};
use crate::providers::common_types::{ChatRequestBase, ChatResponseBase};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroqRequest {
#[serde(flatten)]
pub base: ChatRequestBase,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GroqResponse {
#[serde(flatten)]
pub base: ChatResponseBase,
}
pub use crate::providers::common_types::{Message, Choice, Usage};