pub struct Embedding { /* private fields */ }Expand description
Main struct for building and sending embedding requests to the OpenAI API.
This struct provides a builder pattern interface for constructing embedding
requests with various parameters. Use Embedding::new() to create a new
instance, then chain methods to configure the request before calling [embed()].
§Example
use openai_tools::embedding::request::Embedding;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut embedding = Embedding::new()?;
let response = embedding
.model("text-embedding-3-small")
.input_text("Sample text")
.embed()
.await?;
Ok(())
}Implementations§
Source§impl Embedding
impl Embedding
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Creates a new Embedding instance.
Initializes the embedding client by loading the OpenAI API key from
the environment variable OPENAI_API_KEY. Supports .env file loading
via dotenvy.
§Returns
Ok(Embedding)- A new embedding instance ready for configurationErr(OpenAIToolError)- If the API key is not found in the environment
§Example
use openai_tools::embedding::request::Embedding;
let embedding = Embedding::new().expect("API key should be set");Sourcepub fn input_text<T: AsRef<str>>(&mut self, input_text: T) -> &mut Self
pub fn input_text<T: AsRef<str>>(&mut self, input_text: T) -> &mut Self
Sets a single text input for embedding.
Use this method when you want to embed a single piece of text.
For multiple texts, use [input_text_array] instead.
§Arguments
input_text- The text to convert into an embedding vector
§Returns
A mutable reference to self for method chaining
§Example
embedding.input_text("Hello, world!");Sourcepub fn input_text_array<T: AsRef<str>>(
&mut self,
input_text_array: Vec<T>,
) -> &mut Self
pub fn input_text_array<T: AsRef<str>>( &mut self, input_text_array: Vec<T>, ) -> &mut Self
Sets multiple text inputs for batch embedding.
Use this method when you want to embed multiple texts in a single API call. This is more efficient than making separate requests for each text.
§Arguments
input_text_array- Vector of texts to convert into embedding vectors
§Returns
A mutable reference to self for method chaining
§Example
let texts = vec!["First text", "Second text", "Third text"];
embedding.input_text_array(texts);Sourcepub fn encoding_format<T: AsRef<str>>(
&mut self,
encoding_format: T,
) -> &mut Self
pub fn encoding_format<T: AsRef<str>>( &mut self, encoding_format: T, ) -> &mut Self
Sets the encoding format for the output embeddings.
§Arguments
encoding_format- Either “float” (default) or “base64”"float": Returns embeddings as arrays of floating point numbers"base64": Returns embeddings as base64-encoded strings (more compact)
§Returns
A mutable reference to self for method chaining
§Panics
Panics if encoding_format is not “float” or “base64”
§Example
embedding.encoding_format("float");Sourcepub async fn embed(&self) -> Result<Response>
pub async fn embed(&self) -> Result<Response>
Sends the embedding request to the OpenAI API.
This method validates the request parameters, constructs the HTTP request, sends it to the OpenAI Embeddings API endpoint, and parses the response.
§Returns
Ok(Response)- The embedding response containing vectors and metadataErr(OpenAIToolError)- If validation fails, the request fails, or parsing fails
§Errors
Returns an error if:
- API key is not set
- Model ID is not set
- Input text is not set
- Network request fails
- Response parsing fails
§Example
let mut embedding = Embedding::new()?;
let response = embedding
.model("text-embedding-3-small")
.input_text("Hello, world!")
.embed()
.await?;Auto Trait Implementations§
impl Freeze for Embedding
impl RefUnwindSafe for Embedding
impl Send for Embedding
impl Sync for Embedding
impl Unpin for Embedding
impl UnwindSafe for Embedding
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more