-
-
Notifications
You must be signed in to change notification settings - Fork 14
EmbeddingFactories
Rasmus Wulff Jensen edited this page Dec 26, 2025
·
2 revisions
Note
EmbeddingFactories are available for AzureOpenAI, OpenAI, Mistral, and OpenRouter only.
In the samples below, we create and use an OpenAIEmbeddingFactory, but all factories work the same (but with slight variations of what options are available)
EmbeddingFactories are provider-specific helpers that create an IEmbeddingGenerator<string, Embedding<float>> or generate embeddings directly.
You have 2 ways to create an EmbeddingFactory (using simplified connection info or a Connection instance).
Option 1. Create a new instance manually (simplified or using a Connection instance)
//Simplified
OpenAIEmbeddingFactory openAiFactory = new("<api-key>");
//Connection instance
OpenAIEmbeddingFactory openAiFactory = new(new OpenAIConnection
{
ApiKey = "<api-key>",
NetworkTimeout = TimeSpan.FromMinutes(5)
});Option 2. Dependency Injection
builder.Services.AddOpenAIEmbeddingFactory("<api-key>");
builder.Services.AddOpenAIEmbeddingFactory(new OpenAIConnection
{
ApiKey = "<api-key>",
NetworkTimeout = TimeSpan.FromMinutes(5)
});IEmbeddingGenerator<string, Embedding<float>> generator = openAiFactory.GetEmbeddingGenerator("text-embedding-3-small");
Embedding<float> embedding = await generator.GenerateAsync("Hello");
// Or use the convenience helpers on the factory
Embedding<float> embedding2 = await openAiFactory.GenerateAsync("Hello", "text-embedding-3-small");
GeneratedEmbeddings<Embedding<float>> batch = await openAiFactory.GenerateAsync(
["Hello", "World"],
"text-embedding-3-small");Note
Mistral's GetEmbeddingGenerator does not take a model; instead set EmbeddingGenerationOptions.ModelId when generating.