pub struct ApiEmbedding { /* private fields */ }Expand description
API-based embedding provider (OpenAI, Anthropic, Cohere, etc.)
Supports any API that accepts JSON and returns embeddings in a standard format.
§Example (OpenAI)
use ruvector_core::embeddings::{EmbeddingProvider, ApiEmbedding};
let provider = ApiEmbedding::openai("sk-...", "text-embedding-3-small", identity)?;
let embedding = provider.embed("hello world")?;Implementations§
Source§impl ApiEmbedding
impl ApiEmbedding
Sourcepub fn new(
api_key: String,
endpoint: String,
model: String,
dimensions: usize,
identity: EmbeddingSpaceIdentity,
) -> Result<Self>
pub fn new( api_key: String, endpoint: String, model: String, dimensions: usize, identity: EmbeddingSpaceIdentity, ) -> Result<Self>
Create a new API embedding provider
§Arguments
api_key- API key for authenticationendpoint- API endpoint URLmodel- Model identifierdimensions- Expected embedding dimensions
Sourcepub fn openai(
api_key: &str,
model: &str,
identity: EmbeddingSpaceIdentity,
) -> Result<Self>
pub fn openai( api_key: &str, model: &str, identity: EmbeddingSpaceIdentity, ) -> Result<Self>
Create OpenAI embedding provider
§Models
text-embedding-3-small- 1536 dimensions, $0.02/1M tokenstext-embedding-3-large- 3072 dimensions, $0.13/1M tokenstext-embedding-ada-002- 1536 dimensions (legacy)
Trait Implementations§
Source§impl Clone for ApiEmbedding
impl Clone for ApiEmbedding
Source§impl EmbeddingProvider for ApiEmbedding
Available on crate feature api-embeddings only.
impl EmbeddingProvider for ApiEmbedding
Available on crate feature
api-embeddings only.fn embed_for(&self, role: EmbeddingRole, text: &str) -> Result<Vec<f32>>
fn embedding_space(&self) -> &EmbeddingSpaceIdentity
Source§fn dimensions(&self) -> usize
fn dimensions(&self) -> usize
Get the dimensionality of embeddings produced by this provider
fn embed_query(&self, text: &str) -> Result<Vec<f32>>
fn embed_passage(&self, text: &str) -> Result<Vec<f32>>
fn embed_batch_for( &self, role: EmbeddingRole, texts: &[&str], ) -> Result<Vec<Vec<f32>>>
fn embed_query_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>>
fn embed_passage_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>>
Auto Trait Implementations§
impl !RefUnwindSafe for ApiEmbedding
impl !UnwindSafe for ApiEmbedding
impl Freeze for ApiEmbedding
impl Send for ApiEmbedding
impl Sync for ApiEmbedding
impl Unpin for ApiEmbedding
impl UnsafeUnpin for ApiEmbedding
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
Converts
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> ⓘ
Converts
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