use serde::{Deserialize, Serialize};
pub const PATH: &str = "/rerank";
#[derive(Debug, Deserialize, Serialize)]
pub struct Request {
pub(crate) model: String,
pub(crate) query: String,
pub(crate) documents: Vec<String>,
pub(crate) return_documents: bool,
}
impl Request {
pub fn new(model: String, query: String, documents: Vec<String>, return_documents: bool) -> Request {
Self { model, query, documents, return_documents }
}
}
#[derive(Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Results {
pub index: i64,
pub relevance_score: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Response {
pub id: String,
pub object: String,
pub created: i64,
pub model: String,
pub results: Vec<Results>,
}