Spaces:
Build error
Build error
File size: 2,243 Bytes
84d2a97 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
use std::fmt::Debug;
use schemars::JsonSchema;
use serde;
use serde::Serialize;
pub fn get_git_commit_id() -> Option<String> {
option_env!("GIT_COMMIT_ID")
.map(ToString::to_string)
.filter(|s| !s.trim().is_empty())
}
#[derive(Serialize, JsonSchema)]
pub struct VersionInfo {
pub title: String,
pub version: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub commit: Option<String>,
}
impl Default for VersionInfo {
fn default() -> Self {
VersionInfo {
title: "qdrant - vector search engine".to_string(),
version: env!("CARGO_PKG_VERSION").to_string(),
commit: get_git_commit_id(),
}
}
}
#[derive(Debug, Serialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ApiStatus {
Ok,
Error(String),
Accepted,
}
#[derive(Debug, Serialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct ApiResponse<D> {
#[serde(skip_serializing_if = "Option::is_none")]
pub result: Option<D>,
pub status: ApiStatus,
pub time: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub usage: Option<HardwareUsage>,
}
/// Usage of the hardware resources, spent to process the request
#[derive(Debug, Serialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct HardwareUsage {
pub cpu: usize,
}
#[derive(Debug, Serialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct CollectionDescription {
pub name: String,
}
fn example_collectios_response() -> CollectionsResponse {
CollectionsResponse {
collections: vec![
CollectionDescription {
name: "arivx-title".to_string(),
},
CollectionDescription {
name: "arivx-abstract".to_string(),
},
CollectionDescription {
name: "medium-title".to_string(),
},
CollectionDescription {
name: "medium-text".to_string(),
},
],
}
}
#[derive(Debug, Serialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
#[schemars(example = "example_collectios_response")]
pub struct CollectionsResponse {
pub collections: Vec<CollectionDescription>,
}
|