Add the text_embeddings API

This commit is contained in:
2024-02-28 14:03:30 +00:00
parent b8f2b7e85e
commit 627ce368b4
4 changed files with 108 additions and 0 deletions

View File

@@ -2,8 +2,10 @@ mod common;
mod count_tokens;
mod error;
mod generate_content;
mod text_embeddings;
pub use common::*;
pub use count_tokens::*;
pub use error::*;
pub use generate_content::*;
pub use text_embeddings::*;

View File

@@ -0,0 +1,43 @@
use serde::{Deserialize, Serialize};
use super::Error;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TextEmbeddingRequest {
pub instances: Vec<TextEmbeddingRequestInstance>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TextEmbeddingRequestInstance {
pub content: String,
pub task_type: String,
pub title: String,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum TextEmbeddingResponse {
Ok {
predictions: Vec<TextEmbeddingPrediction>,
},
Error {
error: Error,
},
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TextEmbeddingPrediction {
pub embeddings: TextEmbeddingResult,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TextEmbeddingResult {
statistics: TextEmbeddingStatistics,
values: Vec<f32>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TextEmbeddingStatistics {
truncated: bool,
token_count: u32,
}