Skip to content

Commit 4fa8e42

Browse files
authored
Update to Aspire 9.3 (#837)
* Update to Aspire 9.3.0 * - Upgrade to MEAI 9.5.0 stable. - Enable OpenAI telemetry - Upgrade to the gpt-4.1-mini model and increase the token rate limit * Update to latest CommunityToolkit Ollama packages * - Remove Microsoft.Extensions.AI.Ollama as it is no longer necessary - Update OpenTelemetry to 1.12 * Bump versions - AspireUnstablePackagesVersion to shipping version - Ollama to latest released * Update Microsoft.Extensions.Http.Resilience to 9.5.0
1 parent 12bbb6f commit 4fa8e42

File tree

10 files changed

+30
-36
lines changed

10 files changed

+30
-36
lines changed

Directory.Build.props

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,10 @@
1111
<NoWarn>NU1901;NU1902;NU1903;NU1904</NoWarn>
1212
</PropertyGroup>
1313

14+
<!-- Enable OpenAI OpenTelemetry so OpenAI calls participate in tracing and metrics. -->
15+
<ItemGroup>
16+
<RuntimeHostConfigurationOption Include="OpenAI.Experimental.EnableOpenTelemetry"
17+
Value="true" />
18+
</ItemGroup>
19+
1420
</Project>

Directory.Packages.props

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,18 @@
22
<PropertyGroup>
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
5-
<AspnetVersion>9.0.4</AspnetVersion>
6-
<MicrosoftExtensionsVersion>9.0.4</MicrosoftExtensionsVersion>
7-
<MicrosoftExtensionsAIVersion>9.4.0-preview.1.25207.5</MicrosoftExtensionsAIVersion>
8-
<AspireVersion>9.2.0</AspireVersion>
9-
<AspireUnstablePackagesVersion>9.2.0-preview.1.25209.2</AspireUnstablePackagesVersion>
10-
<GrpcVersion>2.70.0</GrpcVersion>
5+
<AspnetVersion>9.0.5</AspnetVersion>
6+
<MicrosoftExtensionsVersion>9.0.5</MicrosoftExtensionsVersion>
7+
<MicrosoftExtensionsAIVersion>9.5.0</MicrosoftExtensionsAIVersion>
8+
<AspireVersion>9.3.0</AspireVersion>
9+
<AspireUnstablePackagesVersion>9.3.0-preview.1.25265.20</AspireUnstablePackagesVersion>
10+
<GrpcVersion>2.71.0</GrpcVersion>
1111
<DuendeVersion>7.1.1</DuendeVersion>
1212
<ApiVersioningVersion>8.1.0</ApiVersioningVersion>
1313
</PropertyGroup>
1414
<ItemGroup>
1515
<!-- Version together with Aspire -->
1616
<PackageVersion Include="Aspire.Hosting.AppHost" Version="$(AspireVersion)" />
17-
<PackageVersion Include="Aspire.Hosting.Docker" Version="$(AspireUnstablePackagesVersion)" />
1817
<PackageVersion Include="Aspire.Hosting.Azure.CognitiveServices" Version="$(AspireVersion)" />
1918
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="$(AspireVersion)" />
2019
<PackageVersion Include="Aspire.Hosting.RabbitMQ" Version="$(AspireVersion)" />
@@ -46,7 +45,7 @@
4645
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="$(AspnetVersion)" />
4746

4847
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="$(AspnetVersion)" />
49-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.4.0" />
48+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.5.0" />
5049

5150
<PackageVersion Include="MSTest.TestFramework" Version="3.8.2" />
5251
<PackageVersion Include="MSTest.TestAdapter" Version="3.8.2" />
@@ -66,17 +65,16 @@
6665
<!-- AI -->
6766
<PackageVersion Include="Microsoft.Extensions.AI" Version="$(MicrosoftExtensionsAIVersion)" />
6867
<PackageVersion Include="Microsoft.Extensions.AI.Abstractions" Version="$(MicrosoftExtensionsAIVersion)" />
69-
<PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="$(MicrosoftExtensionsAIVersion)" />
70-
<PackageVersion Include="Microsoft.Extensions.AI.Ollama" Version="$(MicrosoftExtensionsAIVersion)" />
71-
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.Ollama" Version="9.3.0" />
72-
<PackageVersion Include="CommunityToolkit.Aspire.OllamaSharp" Version="9.3.1-beta.259" />
68+
<PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="9.5.0-preview.1.25265.7" />
69+
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.Ollama" Version="9.4.1-beta.289" />
70+
<PackageVersion Include="CommunityToolkit.Aspire.OllamaSharp" Version="9.4.1-beta.289" />
7371
<!-- Open Telemetry -->
74-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.11.2" />
75-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.11.2" />
76-
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.11.1" />
77-
<PackageVersion Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.6.0-beta.3" />
78-
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.11.1" />
79-
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.11.1" />
72+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
73+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
74+
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
75+
<PackageVersion Include="OpenTelemetry.Instrumentation.GrpcNetClient" Version="1.12.0-beta.1" />
76+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
77+
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
8078
<!-- IdentityServer -->
8179
<PackageVersion Include="Duende.IdentityServer" Version="$(DuendeVersion)" />
8280
<PackageVersion Include="Duende.IdentityServer.AspNetIdentity" Version="$(DuendeVersion)" />
@@ -90,12 +88,12 @@
9088
<!-- Grpc -->
9189
<PackageVersion Include="Grpc.AspNetCore" Version="$(GrpcVersion)" />
9290
<PackageVersion Include="Grpc.Net.ClientFactory" Version="$(GrpcVersion)" />
93-
<PackageVersion Include="Grpc.Tools" Version="2.71.0" PrivateAssets="All" />
91+
<PackageVersion Include="Grpc.Tools" Version="2.72.0" PrivateAssets="All" />
9492
<!-- Miscellaneous -->
9593
<PackageVersion Include="Automapper" Version="14.0.0" />
9694
<PackageVersion Include="Dapper" Version="2.1.35" />
9795
<PackageVersion Include="FluentValidation.AspNetCore" Version="11.3.0" />
98-
<PackageVersion Include="Google.Protobuf" Version="3.30.1" />
96+
<PackageVersion Include="Google.Protobuf" Version="3.30.2" />
9997
<PackageVersion Include="MediatR" Version="12.4.1" />
10098
<PackageVersion Include="Microsoft.Web.LibraryManager.Build" Version="2.1.175" />
10199
<PackageVersion Include="Polly.Core" Version="8.5.2" />

src/Catalog.API/Catalog.API.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
<PackageReference Include="Aspire.Azure.AI.OpenAI" />
3434
<PackageReference Include="Microsoft.Extensions.AI" />
3535
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" />
36-
<PackageReference Include="Microsoft.Extensions.AI.Ollama" />
3736
<PackageReference Include="Pgvector" />
3837
<PackageReference Include="Pgvector.EntityFrameworkCore" />
3938
</ItemGroup>

src/Catalog.API/Extensions/Extensions.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
using eShop.Catalog.API.Services;
2-
using Microsoft.Extensions.AI;
3-
using OllamaSharp;
4-
using OpenAI;
52

63
public static class Extensions
74
{

src/Catalog.API/Services/CatalogAI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public async ValueTask<Vector> GetEmbeddingAsync(string text)
5858
{
5959
long timestamp = Stopwatch.GetTimestamp();
6060

61-
var embedding = await _embeddingGenerator.GenerateEmbeddingVectorAsync(text);
61+
var embedding = await _embeddingGenerator.GenerateVectorAsync(text);
6262
embedding = embedding[0..EmbeddingDimensions];
6363

6464
if (_logger.IsEnabled(LogLevel.Trace))

src/WebApp/Extensions/Extensions.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using eShop.Basket.API.Grpc;
2-
using eShop.WebApp;
32
using eShop.WebApp.Services.OrderStatus.IntegrationEvents;
43
using eShop.WebAppComponents.Services;
54
using Microsoft.AspNetCore.Authentication.Cookies;
@@ -8,8 +7,6 @@
87
using Microsoft.AspNetCore.Components.Server;
98
using Microsoft.Extensions.AI;
109
using Microsoft.IdentityModel.JsonWebTokens;
11-
using OllamaSharp;
12-
using OpenAI;
1310

1411
public static class Extensions
1512
{

src/WebApp/WebApp.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery.Yarp" />
2424
<PackageReference Include="Microsoft.Extensions.AI" />
2525
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" />
26-
<PackageReference Include="Microsoft.Extensions.AI.Ollama" />
2726
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" />
2827
<PackageReference Include="Google.Protobuf" />
2928
<PackageReference Include="Grpc.Net.ClientFactory" />

src/eShop.AppHost/Extensions.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public static IDistributedApplicationBuilder AddOpenAI(this IDistributedApplicat
4343
const string textEmbeddingModelName = "text-embedding-3-small";
4444

4545
const string chatName = "chatModel";
46-
const string chatModelName = "gpt-4o-mini";
46+
const string chatModelName = "gpt-4.1-mini";
4747

4848
// to use an existing OpenAI resource as a connection string, add the following to the AppHost user secrets:
4949
// "ConnectionStrings": {
@@ -84,10 +84,12 @@ public static IDistributedApplicationBuilder AddOpenAI(this IDistributedApplicat
8484
builder.AddParameter("openaiResourceGroup"));
8585
}
8686

87-
var chat = openAI.AddDeployment(chatName, chatModelName, "2024-07-18")
87+
var chat = openAI.AddDeployment(chatName, chatModelName, "2025-04-14")
8888
.WithProperties(d =>
8989
{
9090
d.DeploymentName = chatModelName;
91+
d.SkuName = "GlobalStandard";
92+
d.SkuCapacity = 50;
9193
});
9294
var textEmbedding = openAI.AddDeployment(textEmbeddingName, textEmbeddingModelName, "1")
9395
.WithProperties(d =>

src/eShop.AppHost/Program.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969

7070
var webApp = builder.AddProject<Projects.WebApp>("webapp", launchProfileName)
7171
.WithExternalHttpEndpoints()
72+
.WithUrls(c => c.Urls.ForEach(u => u.DisplayText = $"Online Store ({u.Endpoint?.EndpointName})"))
7273
.WithReference(basketApi)
7374
.WithReference(catalogApi)
7475
.WithReference(orderingApi)
@@ -99,10 +100,6 @@
99100
.WithEnvironment("WebhooksWebClient", webhooksClient.GetEndpoint(launchProfileName))
100101
.WithEnvironment("WebAppClient", webApp.GetEndpoint(launchProfileName));
101102

102-
// Starting in Aspire 9.2, we can use the new DockerComposePublisher to generate a docker-compose file.
103-
// In order to do so, run 'dotnet run --publisher docker-compose --output-path ./docker-compose' to try it out.
104-
builder.AddDockerComposePublisher();
105-
106103
builder.Build().Run();
107104

108105
// For test use only.

src/eShop.AppHost/eShop.AppHost.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
<ItemGroup>
1313
<PackageReference Include="Aspire.Hosting.AppHost" />
14-
<PackageReference Include="Aspire.Hosting.Docker" />
1514
<PackageReference Include="Aspire.Hosting.RabbitMQ" />
1615
<PackageReference Include="Aspire.Hosting.Redis" />
1716
<PackageReference Include="Aspire.Hosting.PostgreSQL" />

0 commit comments

Comments
 (0)