aster/providers/
embedding.rs1use 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}