Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/chat/CustomerSupport/CustomerSupport.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<ItemGroup>
<PackageReference Include="Azure.AI.OpenAI" Version="2.1.0-beta.1" />
<PackageReference Include="Azure.Identity" Version="1.12.0" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25114.11" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.3.0-preview.1.25114.11" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.SemanticKernel.Connectors.InMemory" Version="1.26.0-preview" />
<PackageReference Include="Microsoft.SemanticKernel.Core" Version="1.26.0" />
<PackageReference Include="OllamaSharp" Version="4.0.3" />
Expand Down
2 changes: 1 addition & 1 deletion src/chat/CustomerSupport/ProductManualService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public async Task InsertManualChunksAsync(IEnumerable<ManualChunk> manualChunks)
public async Task<VectorSearchResults<ManualChunk>> GetManualChunksAsync(string query, int? productId, int? limit = 5)
{

var queryEmbedding = await _embeddingGenerator.GenerateEmbeddingVectorAsync(query);
var queryEmbedding = await _embeddingGenerator.GenerateVectorAsync(query);

var filter =
new VectorSearchFilter()
Expand Down
6 changes: 4 additions & 2 deletions src/chat/CustomerSupport/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
IChatClient chatClient =
useOpenAIChat ?
Utils.CreateAzureOpenAIClient(openAIEndpoint, useManagedIdentity)
.AsChatClient("chat")
.GetChatClient("chat")
.AsIChatClient()
: new OllamaApiClient(new Uri(ollamaEndpoint), "llama3.2");

IEmbeddingGenerator<string, Embedding<float>> embeddingGenerator =
useOpenAIEmbeddings ?
Utils.CreateAzureOpenAIClient(openAIEndpoint, useManagedIdentity)
.AsEmbeddingGenerator("embeddingsmall") :
.GetEmbeddingClient("embeddingsmall")
.AsIEmbeddingGenerator() :
new OllamaApiClient(new Uri(ollamaEndpoint), "all-minilm");

// Configure product manual service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.2" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.AzureAIInference" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.AzureAIInference" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.2" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static async Task Caching()
var endpoint = new Uri("https://models.inference.ai.azure.com");
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GH_TOKEN"));

IChatClient client = new ChatCompletionsClient(endpoint, credential).AsChatClient("gpt-4o-mini")
IChatClient client = new ChatCompletionsClient(endpoint, credential).AsIChatClient("gpt-4o-mini")
.AsBuilder()
.UseDistributedCache(cache)
.Build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public static async Task Chat()

IChatClient client =
new ChatCompletionsClient(endpoint, credential)
.AsChatClient(modelId);
.AsIChatClient(modelId);

Console.WriteLine(await client.GetResponseAsync("What is AI?"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public static async Task ConversationHistory()
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GH_TOKEN"));

IChatClient client =
new ChatCompletionsClient(endpoint, credential).AsChatClient(modelId);
new ChatCompletionsClient(endpoint, credential).AsIChatClient(modelId);

List<ChatMessage> conversation =
[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public static async Task DependencyInjection()

builder.Services.AddDistributedMemoryCache();
builder.Services.AddChatClient(services => services.GetRequiredService<ChatCompletionsClient>()
.AsChatClient("gpt-4o-mini"))
.AsIChatClient("gpt-4o-mini"))
.UseDistributedCache()
.Build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public static async Task Middleware()

var aiInferenceClient =
new Azure.AI.Inference.ChatCompletionsClient(endpoint, credential)
.AsChatClient(modelId);
.AsIChatClient(modelId);

var client = aiInferenceClient
.AsBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static async Task OpenTelemetryExample()

IChatClient aiInferenceClient =
new ChatCompletionsClient(endpoint, credential)
.AsChatClient(modelId);
.AsIChatClient(modelId);

IChatClient client = aiInferenceClient
.AsBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public static async Task Streaming()
var modelId = "gpt-4o-mini";
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GH_TOKEN"));

IChatClient client = new ChatCompletionsClient(endpoint, credential).AsChatClient(modelId);
IChatClient client = new ChatCompletionsClient(endpoint, credential).AsIChatClient(modelId);

await foreach (var update in client.GetStreamingResponseAsync("What is AI?"))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ public static async Task TextEmbedding()
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GH_TOKEN"));

IEmbeddingGenerator<string, Embedding<float>> generator =
new EmbeddingsClient(endpoint, credential).AsEmbeddingGenerator(modelId);
new EmbeddingsClient(endpoint, credential).AsIEmbeddingGenerator(modelId);

var embedding = await generator.GenerateEmbeddingVectorAsync("What is AI?");
var embedding = await generator.GenerateVectorAsync("What is AI?");

Console.WriteLine(string.Join(", ", embedding.ToArray()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public static async Task TextEmbeddingCaching()
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GH_TOKEN"));

IEmbeddingGenerator<string, Embedding<float>> generator =
new EmbeddingsClient(endpoint, credential).AsEmbeddingGenerator(modelId)
new EmbeddingsClient(endpoint, credential).AsIEmbeddingGenerator(modelId)
.AsBuilder()
.UseDistributedCache(cache)
.Build();
Expand All @@ -27,7 +27,7 @@ public static async Task TextEmbeddingCaching()

foreach (var prompt in prompts)
{
var embedding = await generator.GenerateEmbeddingVectorAsync(prompt);
var embedding = await generator.GenerateVectorAsync(prompt);

Console.WriteLine(string.Join(", ", embedding.ToArray()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public static async Task ToolCalling()
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GH_TOKEN"));

IChatClient client =
new ChatCompletionsClient(endpoint, credential).AsChatClient(modelId)
new ChatCompletionsClient(endpoint, credential).AsIChatClient(modelId)
.AsBuilder()
.UseFunctionInvocation()
.Build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.8" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.AzureAIInference" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.AzureAIInference" Version="9.4.3-preview.1.25230.7" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
new AzureKeyCredential(builder.Configuration["AI:AzureAIInference:Key"])));

builder.Services.AddChatClient(services => services.GetRequiredService<ChatCompletionsClient>()
.AsChatClient(builder.Configuration["AI:AzureAIInference:Chat:ModelId"]));
.AsIChatClient(builder.Configuration["AI:AzureAIInference:Chat:ModelId"]));

var app = builder.Build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
<ItemGroup>
<PackageReference Include="Azure.AI.OpenAI" Version="2.0.0" />
<PackageReference Include="Azure.Identity" Version="1.12.1" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.2" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ public static async Task Caching()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient("gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

IChatClient client = azureOpenAIClient
.AsBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ public static async Task Chat()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient(modelId: "gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

Console.WriteLine(await client.GetResponseAsync("What is AI?"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ public static async Task ConversationHistory()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient(modelId: "gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

List<ChatMessage> conversation =
[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static async Task DependencyInjection()
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential()));
builder.Services.AddDistributedMemoryCache();
builder.Services.AddChatClient(services => services.GetRequiredService<OpenAIClient>().AsChatClient("gpt-4o-mini"))
builder.Services.AddChatClient(services => services.GetRequiredService<OpenAIClient>().GetChatClient("gpt-4o-mini").AsIChatClient())
.UseDistributedCache();

var app = builder.Build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ public static async Task Middleware()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient("gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

IChatClient client = azureOpenAIClient
.AsBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ public static async Task OpenTelemetryExample()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient("gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

IChatClient client = azureOpenAIClient
.AsBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ public static async Task Streaming()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient(modelId: "gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

await foreach (var update in client.GetStreamingResponseAsync("What is AI?"))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ public static async Task TextEmbedding()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsEmbeddingGenerator("text-embedding-3-small");
.GetEmbeddingClient("text-embedding-3-small")
.AsIEmbeddingGenerator();

var embedding = await generator.GenerateEmbeddingVectorAsync("What is AI?");
var embedding = await generator.GenerateVectorAsync("What is AI?");

Console.WriteLine(string.Join(", ", embedding.ToArray()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ public static async Task TextEmbeddingCaching()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsEmbeddingGenerator("text-embedding-3-small");
.GetEmbeddingClient("text-embedding-3-small")
.AsIEmbeddingGenerator();

IEmbeddingGenerator<string, Embedding<float>> generator = azureOpenAIGenerator
.AsBuilder()
Expand All @@ -28,7 +29,7 @@ public static async Task TextEmbeddingCaching()

foreach (var prompt in prompts)
{
var embedding = await generator.GenerateEmbeddingVectorAsync(prompt);
var embedding = await generator.GenerateVectorAsync(prompt);

Console.WriteLine(string.Join(", ", embedding.ToArray()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public static async Task ToolCalling()
new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
new DefaultAzureCredential())
.AsChatClient("gpt-4o-mini");
.GetChatClient("gpt-4o-mini")
.AsIChatClient();

IChatClient client = azureOpenAIClient
.AsBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
<PackageReference Include="Azure.Identity" Version="1.12.1" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.10" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.4.3-preview.1.25230.7" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,19 @@
));

builder.Services.AddChatClient(services => services.GetRequiredService<AzureOpenAIClient>()
.AsChatClient(builder.Configuration["AI:AzureOpenAI:Chat:ModelId"] ?? "gpt-4o-mini"));
.GetChatClient(builder.Configuration["AI:AzureOpenAI:Chat:ModelId"] ?? "gpt-4o-mini")
.AsIChatClient());

builder.Services.AddEmbeddingGenerator(services => services.GetRequiredService<AzureOpenAIClient>()
.AsEmbeddingGenerator(builder.Configuration["AI:AzureOpenAI:Embedding:ModelId"] ?? "text-embedding-3-small"));
.GetEmbeddingClient(builder.Configuration["AI:AzureOpenAI:Embedding:ModelId"] ?? "text-embedding-3-small")
.AsIEmbeddingGenerator());

var app = builder.Build();

app.MapPost("/chat", async (IChatClient client, [FromBody] string message) =>
await client.GetResponseAsync(message, cancellationToken: default));

app.MapPost("/embedding", async (IEmbeddingGenerator<string, Embedding<float>> client, [FromBody] string message) =>
await client.GenerateEmbeddingAsync(message));
await client.GenerateAsync(message));

app.Run();
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.Ollama" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.Ollama" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.2" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public static async Task TextEmbedding()

IEmbeddingGenerator<string,Embedding<float>> generator = new OllamaEmbeddingGenerator(endpoint, modelId: modelId);

var embedding = await generator.GenerateEmbeddingVectorAsync("What is AI?");
var embedding = await generator.GenerateVectorAsync("What is AI?");

Console.WriteLine(string.Join(", ", embedding.ToArray()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static async Task TextEmbeddingCaching()

foreach(var prompt in prompts)
{
var embedding = await generator.GenerateEmbeddingVectorAsync("What is AI?");
var embedding = await generator.GenerateVectorAsync("What is AI?");

Console.WriteLine(string.Join(", ", embedding.ToArray()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.8" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI.Ollama" Version="9.3.0-preview.1.25161.3" />
<PackageReference Include="Microsoft.Extensions.AI" Version="9.4.3-preview.1.25230.7" />
<PackageReference Include="Microsoft.Extensions.AI.Ollama" Version="9.4.3-preview.1.25230.7" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion src/microsoft-extensions-ai/ollama/OllamaWebAPI/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@
await client.GetResponseAsync(message, cancellationToken: default));

app.MapPost("/embedding", async (IEmbeddingGenerator<string, Embedding<float>> client, [FromBody] string message) =>
await client.GenerateEmbeddingAsync(message));
await client.GenerateAsync(message));

app.Run();
Loading