encoderfile/common/
embedding.rs1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4use utoipa::ToSchema;
5
6#[derive(Debug, Serialize, Deserialize, ToSchema, JsonSchema)]
7pub struct EmbeddingRequest {
8 pub inputs: Vec<String>,
9 #[serde(default)]
10 pub metadata: Option<HashMap<String, String>>,
11}
12
13impl super::FromCliInput for EmbeddingRequest {
14 fn from_cli_input(inputs: Vec<String>) -> Self {
15 Self {
16 inputs,
17 metadata: Some(HashMap::default()),
18 }
19 }
20}
21
22#[derive(Debug, Serialize, Deserialize, ToSchema, JsonSchema, utoipa::ToResponse)]
23pub struct EmbeddingResponse {
24 pub results: Vec<TokenEmbeddingSequence>,
25 pub model_id: String,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub metadata: Option<HashMap<String, String>>,
28}
29
30#[derive(Debug, Serialize, Deserialize, ToSchema, JsonSchema)]
31pub struct TokenEmbeddingSequence {
32 pub embeddings: Vec<TokenEmbedding>,
33}
34
35#[derive(Debug, Serialize, Deserialize, ToSchema, JsonSchema)]
36pub struct TokenEmbedding {
37 pub embedding: Vec<f32>,
38 pub token_info: Option<super::token::TokenInfo>,
39}