openai/request/
create_embedding.rs

1use serde_json::json;
2use crate::model::*;
3use crate::OpenAiClient;
4/**Create this with the associated client method.
5
6That method takes required values as arguments. Set optional values using builder methods on this struct.*/
7#[derive(Clone)]
8pub struct CreateEmbeddingRequest<'a> {
9    pub(crate) http_client: &'a OpenAiClient,
10    pub input: serde_json::Value,
11    pub model: String,
12    pub user: Option<String>,
13}
14impl<'a> CreateEmbeddingRequest<'a> {
15    pub async fn send(self) -> ::httpclient::InMemoryResult<CreateEmbeddingResponse> {
16        let mut r = self.http_client.client.post("/embeddings");
17        r = r.json(json!({ "input" : self.input }));
18        r = r.json(json!({ "model" : self.model }));
19        if let Some(ref unwrapped) = self.user {
20            r = r.json(json!({ "user" : unwrapped }));
21        }
22        r = self.http_client.authenticate(r);
23        let res = r.send_awaiting_body().await?;
24        res.json()
25    }
26    pub fn user(mut self, user: &str) -> Self {
27        self.user = Some(user.to_owned());
28        self
29    }
30}
31impl<'a> ::std::future::IntoFuture for CreateEmbeddingRequest<'a> {
32    type Output = httpclient::InMemoryResult<CreateEmbeddingResponse>;
33    type IntoFuture = ::futures::future::BoxFuture<'a, Self::Output>;
34    fn into_future(self) -> Self::IntoFuture {
35        Box::pin(self.send())
36    }
37}