langchain 0.2.2

Rust port of the ideas produced in langchain-py and langchain-js
Documentation
use super::client::OpenAIRequest;
use reqwest::Method;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
pub struct Usage {
    pub prompt_tokens: i64,
    pub total_tokens: i64,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct Embedding {
    pub object: String,
    pub embedding: Vec<f64>,
    pub index: i64,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct Embeddings {
    pub object: String,
    pub data: Vec<Embedding>,
    pub model: String,
    pub usage: Usage,
}

#[derive(Serialize)]
pub struct EmbeddingRequest {
    model: String,
    input: Vec<String>,
}

impl OpenAIRequest for EmbeddingRequest {
    type Response = Embeddings;

    fn method() -> Method {
        Method::POST
    }

    fn url() -> &'static str {
        "https://api.openai.com/v1/embeddings"
    }
}