langchain/openai_api/
embeddings.rs1use super::client::OpenAIRequest;
2use reqwest::Method;
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug)]
6pub struct Usage {
7 pub prompt_tokens: i64,
8 pub total_tokens: i64,
9}
10
11#[derive(Serialize, Deserialize, Debug)]
12pub struct Embedding {
13 pub object: String,
14 pub embedding: Vec<f64>,
15 pub index: i64,
16}
17
18#[derive(Serialize, Deserialize, Debug)]
19pub struct Embeddings {
20 pub object: String,
21 pub data: Vec<Embedding>,
22 pub model: String,
23 pub usage: Usage,
24}
25
26#[derive(Serialize)]
27pub struct EmbeddingRequest {
28 model: String,
29 input: Vec<String>,
30}
31
32impl OpenAIRequest for EmbeddingRequest {
33 type Response = Embeddings;
34
35 fn method() -> Method {
36 Method::POST
37 }
38
39 fn url() -> &'static str {
40 "https://api.openai.com/v1/embeddings"
41 }
42}