ExLLM.Gemini.Embeddings (ex_llm v0.5.0)
View SourceGoogle Gemini Embeddings API implementation.
Provides functionality to generate text embeddings using Gemini embedding models. Supports both single and batch embedding generation with various task types and configuration options.
Summary
Functions
Generates multiple embedding vectors from a batch of content.
Generates a text embedding vector from the input Content.
Convenience function to embed a single text string.
Convenience function to embed multiple text strings.
Types
Functions
@spec batch_embed_contents( String.t(), [ExLLM.Gemini.Embeddings.EmbedContentRequest.t()], options() ) :: {:ok, [ExLLM.Gemini.Embeddings.ContentEmbedding.t()]} | {:error, term()}
Generates multiple embedding vectors from a batch of content.
Parameters
model
- The model to userequests
- List of EmbedContentRequestopts
- Options including:config_provider
Examples
requests = [
%EmbedContentRequest{
model: "models/text-embedding-004",
content: %Content{role: "user", parts: [%Part{text: "First text"}]}
},
%EmbedContentRequest{
model: "models/text-embedding-004",
content: %Content{role: "user", parts: [%Part{text: "Second text"}]}
}
]
{:ok, embeddings} = ExLLM.Gemini.Embeddings.batch_embed_contents("models/text-embedding-004", requests)
@spec embed_content( String.t(), ExLLM.Gemini.Embeddings.EmbedContentRequest.t(), options() ) :: {:ok, ExLLM.Gemini.Embeddings.ContentEmbedding.t()} | {:error, term()}
Generates a text embedding vector from the input Content.
Parameters
model
- The model to use (e.g., "models/text-embedding-004")request
- EmbedContentRequest with content and optionsopts
- Options including:config_provider
Examples
request = %EmbedContentRequest{
content: %Content{
role: "user",
parts: [%Part{text: "Hello world"}]
},
task_type: :retrieval_query
}
{:ok, embedding} = ExLLM.Gemini.Embeddings.embed_content("models/text-embedding-004", request)
@spec embed_text(String.t(), String.t(), Keyword.t()) :: {:ok, ExLLM.Gemini.Embeddings.ContentEmbedding.t()} | {:error, term()}
Convenience function to embed a single text string.
Examples
{:ok, embedding} = ExLLM.Gemini.Embeddings.embed_text("models/text-embedding-004", "Hello world")
@spec embed_texts(String.t(), [String.t()], Keyword.t()) :: {:ok, [ExLLM.Gemini.Embeddings.ContentEmbedding.t()]} | {:error, term()}
Convenience function to embed multiple text strings.
Examples
texts = ["First text", "Second text", "Third text"]
{:ok, embeddings} = ExLLM.Gemini.Embeddings.embed_texts("models/text-embedding-004", texts)