Skip to main content

aster/providers/
embedding.rs

1use anyhow::Result;
2use async_trait::async_trait;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct EmbeddingRequest {
7    pub input: Vec<String>,
8    pub model: String,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct EmbeddingResponse {
13    pub data: Vec<EmbeddingData>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct EmbeddingData {
18    pub embedding: Vec<f32>,
19}
20
21#[async_trait]
22pub trait EmbeddingCapable {
23    async fn create_embeddings(&self, texts: Vec<String>) -> Result<Vec<Vec<f32>>>;
24}