1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct InsertRequest {
5 pub id: String,
6 pub vector: Vec<f32>,
7 pub metadata: Option<serde_json::Value>,
8}
9
10#[derive(Debug, Serialize, Deserialize)]
11pub struct SearchRequest {
12 pub query: Vec<f32>,
13 pub k: usize,
14 pub filter_key: Option<String>,
15 pub filter_value: Option<serde_json::Value>,
16}
17
18#[derive(Debug, Serialize, Deserialize)]
19pub struct SearchResponse {
20 pub results: Vec<SearchResultDto>,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24pub struct SearchResultDto {
25 pub id: String,
26 pub score: f32,
27 pub metadata: Option<serde_json::Value>,
28}
29
30#[derive(Debug, Serialize, Deserialize)]
31pub struct DeleteRequest {
32 pub id: String,
33}
34
35#[derive(Debug, Serialize, Deserialize)]
36pub struct UpdateRequest {
37 pub id: String,
38 pub vector: Vec<f32>,
39 pub metadata: Option<serde_json::Value>,
40}