Skip to content

Commit 39695de

Browse files
committed
Use Azure hosting integrations in Aspire AI Chat Web template (#6659)
1 parent d5a62e3 commit 39695de

File tree

20 files changed

+131
-156
lines changed

20 files changed

+131
-156
lines changed

src/ProjectTemplates/GeneratedContent.targets

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@
3333
Specifies external packages that get referenced in generated template content.
3434
-->
3535
<PropertyGroup>
36-
<TemplatePackageVersion_Aspire>9.3.0</TemplatePackageVersion_Aspire>
37-
<TemplatePackageVersion_Aspire_Preview>9.3.0-preview.1.25265.20</TemplatePackageVersion_Aspire_Preview>
38-
<TemplatePackageVersion_AzureAIOpenAI>2.2.0-beta.4</TemplatePackageVersion_AzureAIOpenAI>
36+
<TemplatePackageVersion_Aspire>9.4.0</TemplatePackageVersion_Aspire>
37+
<TemplatePackageVersion_Aspire_Preview>9.4.0-preview.1.25378.8</TemplatePackageVersion_Aspire_Preview>
38+
<TemplatePackageVersion_AzureAIOpenAI>2.3.0-beta.1</TemplatePackageVersion_AzureAIOpenAI>
3939
<TemplatePackageVersion_AzureAIProjects>1.0.0-beta.9</TemplatePackageVersion_AzureAIProjects>
4040
<TemplatePackageVersion_AzureIdentity>1.14.0</TemplatePackageVersion_AzureIdentity>
41-
<TemplatePackageVersion_AzureSearchDocuments>11.6.0</TemplatePackageVersion_AzureSearchDocuments>
41+
<TemplatePackageVersion_AzureSearchDocuments>11.6.1</TemplatePackageVersion_AzureSearchDocuments>
4242
<TemplatePackageVersion_CommunityToolkitAspire>9.4.1-beta.291</TemplatePackageVersion_CommunityToolkitAspire>
4343
<TemplatePackageVersion_MicrosoftExtensionsHosting>10.0.0-preview.6.25358.103</TemplatePackageVersion_MicrosoftExtensionsHosting>
44-
<TemplatePackageVersion_MicrosoftExtensionsServiceDiscovery>9.3.0</TemplatePackageVersion_MicrosoftExtensionsServiceDiscovery>
45-
<TemplatePackageVersion_MicrosoftSemanticKernel>1.53.0</TemplatePackageVersion_MicrosoftSemanticKernel>
46-
<TemplatePackageVersion_MicrosoftSemanticKernel_Preview>1.53.0-preview</TemplatePackageVersion_MicrosoftSemanticKernel_Preview>
44+
<TemplatePackageVersion_MicrosoftExtensionsServiceDiscovery>9.3.1</TemplatePackageVersion_MicrosoftExtensionsServiceDiscovery>
45+
<TemplatePackageVersion_MicrosoftSemanticKernel>1.61.0</TemplatePackageVersion_MicrosoftSemanticKernel>
46+
<TemplatePackageVersion_MicrosoftSemanticKernel_Preview>1.61.0-preview</TemplatePackageVersion_MicrosoftSemanticKernel_Preview>
4747
<TemplatePackageVersion_ModelContextProtocol>0.3.0-preview.2</TemplatePackageVersion_ModelContextProtocol>
4848
<TemplatePackageVersion_OllamaSharp>5.1.18</TemplatePackageVersion_OllamaSharp>
4949
<TemplatePackageVersion_OpenTelemetry>1.12.0</TemplatePackageVersion_OpenTelemetry>

src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/ChatWithCustomData-CSharp.AppHost/ChatWithCustomData-CSharp.AppHost.csproj.in

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@
1515
<PackageReference Include="Aspire.Hosting.AppHost" Version="${TemplatePackageVersion_Aspire}" />
1616
<!--#if (UseQdrant)
1717
<PackageReference Include="Aspire.Hosting.Qdrant" Version="${TemplatePackageVersion_Aspire}" />
18+
#elif (UseAzureAISearch)
19+
<PackageReference Include="Aspire.Hosting.Azure.Search" Version="${TemplatePackageVersion_Aspire}" />
1820
#endif -->
19-
<!--#if (IsOllama)
21+
<!--#if (IsAzureOpenAI) -->
22+
<PackageReference Include="Aspire.Hosting.Azure.CognitiveServices" Version="${TemplatePackageVersion_Aspire}" />
23+
<!--#elif (IsOllama)
2024
<PackageReference Include="CommunityToolkit.Aspire.Hosting.Ollama" Version="${TemplatePackageVersion_CommunityToolkitAspire}" />
2125
#endif -->
2226
</ItemGroup>

src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/ChatWithCustomData-CSharp.AppHost/Program.cs

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var builder = DistributedApplication.CreateBuilder(args);
22
#if (IsOllama) // ASPIRE PARAMETERS
3-
#else // IsAzureOpenAI || IsOpenAI || IsGHModels
3+
#elif (IsOpenAI || IsGHModels)
44

55
// You will need to set the connection string to your own value
66
// You can do this using Visual Studio's "Manage User Secrets" UI, or on the command line:
@@ -13,14 +13,27 @@
1313
// dotnet user-secrets set ConnectionStrings:openai "Endpoint=https://YOUR-DEPLOYMENT-NAME.openai.azure.com;Key=YOUR-API-KEY"
1414
#endif
1515
var openai = builder.AddConnectionString("openai");
16+
#else // IsAzureOpenAI
17+
18+
// See https://learn.microsoft.com/dotnet/aspire/azure/local-provisioning#configuration
19+
// for instructions providing configuration values
20+
var openai = builder.AddAzureOpenAI("openai");
21+
22+
openai.AddDeployment(
23+
name: "gpt-4o-mini",
24+
modelName: "gpt-4o-mini",
25+
modelVersion: "2024-07-18");
26+
27+
openai.AddDeployment(
28+
name: "text-embedding-3-small",
29+
modelName: "text-embedding-3-small",
30+
modelVersion: "1");
1631
#endif
1732
#if (UseAzureAISearch)
1833

19-
// You will need to set the connection string to your own value
20-
// You can do this using Visual Studio's "Manage User Secrets" UI, or on the command line:
21-
// cd this-project-directory
22-
// dotnet user-secrets set ConnectionStrings:azureAISearch "Endpoint=https://YOUR-DEPLOYMENT-NAME.search.windows.net;Key=YOUR-API-KEY"
23-
var azureAISearch = builder.AddConnectionString("azureAISearch");
34+
// See https://learn.microsoft.com/dotnet/aspire/azure/local-provisioning#configuration
35+
// for instructions providing configuration values
36+
var search = builder.AddAzureSearch("search");
2437
#endif
2538
#if (IsOllama) // AI SERVICE PROVIDER CONFIGURATION
2639

@@ -45,11 +58,17 @@
4558
.WithReference(embeddings)
4659
.WaitFor(chat)
4760
.WaitFor(embeddings);
48-
#else // IsAzureOpenAI || IsOpenAI || IsGHModels
61+
#elif (IsOpenAI || IsGHModels)
4962
webApp.WithReference(openai);
63+
#else // IsAzureOpenAI
64+
webApp
65+
.WithReference(openai)
66+
.WaitFor(openai);
5067
#endif
5168
#if (UseAzureAISearch) // VECTOR DATABASE REFERENCES
52-
webApp.WithReference(azureAISearch);
69+
webApp
70+
.WithReference(search)
71+
.WaitFor(search);
5372
#elif (UseQdrant)
5473
webApp
5574
.WithReference(vectorDB)

src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/ChatWithCustomData-CSharp.Web/ChatWithCustomData-CSharp.Web.csproj.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="${TemplatePackageVersion_MicrosoftExtensionsAIOpenAI}" />
2222
#endif -->
2323
<!--#if ((IsAzureOpenAI || IsOpenAI || IsGHModels) && IsAspire) -->
24+
<PackageReference Include="Azure.AI.OpenAI" Version="${TemplatePackageVersion_AzureAIOpenAI}" />
2425
<PackageReference Include="Aspire.Azure.AI.OpenAI" Version="${TemplatePackageVersion_Aspire_Preview}" />
2526
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="${TemplatePackageVersion_MicrosoftExtensionsAIOpenAI}" />
2627
<!--#endif -->

src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/ChatWithCustomData-CSharp.Web/Program.Aspire.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
using ChatWithCustomData_CSharp.Web.Services;
44
using ChatWithCustomData_CSharp.Web.Services.Ingestion;
55
#if (IsOllama)
6-
#else // IsAzureOpenAI || IsOpenAI || IsGHModels
6+
#elif (IsOpenAI || IsGHModels)
77
using OpenAI;
8+
#else // IsAzureOpenAI
89
#endif
910

1011
var builder = WebApplication.CreateBuilder(args);
@@ -34,7 +35,7 @@
3435
#endif
3536

3637
#if (UseAzureAISearch)
37-
builder.AddAzureSearchClient("azureAISearch");
38+
builder.AddAzureSearchClient("search");
3839
builder.Services.AddAzureAISearchCollection<IngestedChunk>("data-ChatWithCustomData-CSharp.Web-chunks");
3940
builder.Services.AddAzureAISearchCollection<IngestedDocument>("data-ChatWithCustomData-CSharp.Web-documents");
4041
#elif (UseQdrant)

src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/README.Aspire.md

Lines changed: 25 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -81,75 +81,41 @@ Download, install, and run Docker Desktop from the [official website](https://ww
8181
Note: Ollama and Docker are excellent open source products, but are not maintained by Microsoft.
8282

8383
#### ---#endif
84-
#### ---#if (IsAzureOpenAI)
85-
## Using Azure OpenAI
84+
#### ---#if (IsAzureOpenAI || UseAzureAISearch)
85+
## Using Azure Provisioning
8686

87-
To use Azure OpenAI, you will need an Azure account and an Azure OpenAI Service resource. For detailed instructions, see the [Azure OpenAI Service documentation](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource).
87+
The project is set up to automatically provision Azure resources, but local configuration is configured. For detailed instructions, see the [Local Provisioning documentation](https://learn.microsoft.com/dotnet/aspire/azure/local-provisioning#configuration).
8888

89-
### 1. Create an Azure OpenAI Service Resource
90-
[Create an Azure OpenAI Service resource](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal).
91-
92-
### 2. Deploy the Models
93-
Deploy the `gpt-4o-mini` and `text-embedding-3-small` models to your Azure OpenAI Service resource. When creating those deployments, give them the same names as the models (`gpt-4o-mini` and `text-embedding-3-small`). See the Azure OpenAI documentation to learn how to [Deploy a model](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal#deploy-a-model).
94-
95-
### 3. Configure API Key and Endpoint
96-
Configure your Azure OpenAI API key and endpoint for this project, using .NET User Secrets:
97-
1. In the Azure Portal, navigate to your Azure OpenAI resource.
98-
2. Copy the "Endpoint" URL and "Key 1" from the "Keys and Endpoint" section.
9989
#### ---#if (hostIdentifier == "vs")
100-
3. In Visual Studio, right-click on the ChatWithCustomData-CSharp.AppHost project in the Solution Explorer and select "Manage User Secrets".
101-
4. This will open a secrets.json file where you can store your API key and endpoint without it being tracked in source control. Add the following keys & values to the file:
102-
103-
```json
104-
{
105-
"ConnectionStrings:openai": "Endpoint=https://YOUR-DEPLOYMENT-NAME.openai.azure.com;Key=YOUR-API-KEY"
106-
}
107-
```
108-
#### ---#else
109-
3. From the command line, configure your API key and endpoint for this project using .NET User Secrets by running the following commands:
110-
111-
```sh
112-
cd ChatWithCustomData-CSharp.AppHost
113-
dotnet user-secrets set ConnectionStrings:openai "Endpoint=https://YOUR-DEPLOYMENT-NAME.openai.azure.com;Key=YOUR-API-KEY"
114-
```
115-
#### ---#endif
116-
117-
Make sure to replace `YOUR-API-KEY` and `YOUR-DEPLOYMENT-NAME` with your actual Azure OpenAI key and endpoint. Make sure your endpoint URL is formatted like https://YOUR-DEPLOYMENT-NAME.openai.azure.com/ (do not include any path after .openai.azure.com/).
118-
#### ---#endif
119-
#### ---#if (UseAzureAISearch)
120-
121-
## Configure Azure AI Search
122-
123-
To use Azure AI Search, you will need an Azure account and an Azure AI Search resource. For detailed instructions, see the [Azure AI Search documentation](https://learn.microsoft.com/azure/search/search-create-service-portal).
90+
Configure local provisioning for this project using .NET User Secrets:
12491

125-
### 1. Create an Azure AI Search Resource
126-
Follow the instructions in the [Azure portal](https://portal.azure.com/) to create an Azure AI Search resource. Note that there is a free tier for the service but it is not currently the default setting on the portal.
92+
1. In Visual Studio, right-click on the ChatWithCustomData-CSharp.AppHost project in the Solution Explorer and select "Manage User Secrets".
93+
2. This opens a `secrets.json` file where you can store your API keys without them being tracked in source control. Add the following configuration:
12794

128-
Note that if you previously used the same Azure AI Search resource with different model using this project name, you may need to delete your `data-ChatWithCustomData-CSharp.Web-chunks` and `data-ChatWithCustomData-CSharp.Web-documents` indexes using the [Azure portal](https://portal.azure.com/) first before continuing; otherwise, data ingestion may fail due to a vector dimension mismatch.
95+
```json
96+
{
97+
"Azure": {
98+
"SubscriptionId": "<Your subscription id>",
99+
"AllowResourceGroupCreation": true,
100+
"ResourceGroup": "<Valid resource group name>",
101+
"Location": "<Valid Azure location>"
102+
}
103+
}
104+
```
129105

130-
### 3. Configure API Key and Endpoint
131-
Configure your Azure AI Search API key and endpoint for this project, using .NET User Secrets:
132-
1. In the Azure Portal, navigate to your Azure AI Search resource.
133-
2. Copy the "Endpoint" URL and "Primary admin key" from the "Keys" section.
134-
#### ---#if (hostIdentifier == "vs")
135-
3. In Visual Studio, right-click on the ChatWithCustomData-CSharp.AppHost project in the Solution Explorer and select "Manage User Secrets".
136-
4. This will open a `secrets.json` file where you can store your API key and endpoint without them being tracked in source control. Add the following keys and values to the file:
137-
138-
```json
139-
{
140-
"ConnectionStrings:azureAISearch": "Endpoint=https://YOUR-DEPLOYMENT-NAME.search.windows.net;Key=YOUR-API-KEY"
141-
}
142-
```
143106
#### ---#else
144-
3. From the command line, configure your API key and endpoint for this project using .NET User Secrets by running the following commands:
107+
From the command line, configure local provisioning for this project using .NET User Secrets by running the following commands:
145108

146-
```sh
147-
cd ChatWithCustomData-CSharp.AppHost
148-
dotnet user-secrets set ConnectionStrings:azureAISearch "Endpoint=https://YOUR-DEPLOYMENT-NAME.search.windows.net;Key=YOUR-API-KEY"
149-
```
109+
```sh
110+
cd ChatWithCustomData-CSharp.AppHost
111+
dotnet user-secrets set Azure:SubscriptionId "<Your subscription id>"
112+
dotnet user-secrets set Azure:AllowResourceGroupCreation "true"
113+
dotnet user-secrets set Azure:ResourceGroup "<Valid resource group name>"
114+
dotnet user-secrets set Azure:Location "<Valid Azure location>"
115+
```
150116
#### ---#endif
151117

152-
Make sure to replace `YOUR-DEPLOYMENT-NAME` and `YOUR-API-KEY` with your actual Azure AI Search deployment name and key.
118+
Make sure to replace placeholder values with real configuration values.
153119
#### ---#endif
154120
#### ---#if (UseQdrant)
155121

test/ProjectTemplates/Microsoft.Extensions.AI.Templates.IntegrationTests/Snapshots/aichatweb.AzureOpenAI_Qdrant_Aspire.verified/aichatweb/README.md

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -15,50 +15,21 @@ This incompatibility can be addressed by upgrading to Docker Desktop 4.41.1. See
1515

1616
# Configure the AI Model Provider
1717

18-
## Using Azure OpenAI
18+
## Using Azure Provisioning
1919

20-
To use Azure OpenAI, you will need an Azure account and an Azure OpenAI Service resource. For detailed instructions, see the [Azure OpenAI Service documentation](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource).
20+
The project is set up to automatically provision Azure resources, but local configuration is configured. For detailed instructions, see the [Local Provisioning documentation](https://learn.microsoft.com/dotnet/aspire/azure/local-provisioning#configuration).
2121

22-
### 1. Create an Azure OpenAI Service Resource
23-
[Create an Azure OpenAI Service resource](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal).
22+
From the command line, configure local provisioning for this project using .NET User Secrets by running the following commands:
2423

25-
### 2. Deploy the Models
26-
Deploy the `gpt-4o-mini` and `text-embedding-3-small` models to your Azure OpenAI Service resource. When creating those deployments, give them the same names as the models (`gpt-4o-mini` and `text-embedding-3-small`). See the Azure OpenAI documentation to learn how to [Deploy a model](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource?pivots=web-portal#deploy-a-model).
24+
```sh
25+
cd aichatweb.AppHost
26+
dotnet user-secrets set Azure:SubscriptionId "<Your subscription id>"
27+
dotnet user-secrets set Azure:AllowResourceGroupCreation "true"
28+
dotnet user-secrets set Azure:ResourceGroup "<Valid resource group name>"
29+
dotnet user-secrets set Azure:Location "<Valid Azure location>"
30+
```
2731

28-
### 3. Configure API Key and Endpoint
29-
Configure your Azure OpenAI API key and endpoint for this project, using .NET User Secrets:
30-
1. In the Azure Portal, navigate to your Azure OpenAI resource.
31-
2. Copy the "Endpoint" URL and "Key 1" from the "Keys and Endpoint" section.
32-
3. From the command line, configure your API key and endpoint for this project using .NET User Secrets by running the following commands:
33-
34-
```sh
35-
cd aichatweb.AppHost
36-
dotnet user-secrets set ConnectionStrings:openai "Endpoint=https://YOUR-DEPLOYMENT-NAME.openai.azure.com;Key=YOUR-API-KEY"
37-
```
38-
39-
Make sure to replace `YOUR-API-KEY` and `YOUR-DEPLOYMENT-NAME` with your actual Azure OpenAI key and endpoint. Make sure your endpoint URL is formatted like https://YOUR-DEPLOYMENT-NAME.openai.azure.com/ (do not include any path after .openai.azure.com/).
40-
41-
## Configure Azure AI Search
42-
43-
To use Azure AI Search, you will need an Azure account and an Azure AI Search resource. For detailed instructions, see the [Azure AI Search documentation](https://learn.microsoft.com/azure/search/search-create-service-portal).
44-
45-
### 1. Create an Azure AI Search Resource
46-
Follow the instructions in the [Azure portal](https://portal.azure.com/) to create an Azure AI Search resource. Note that there is a free tier for the service but it is not currently the default setting on the portal.
47-
48-
Note that if you previously used the same Azure AI Search resource with different model using this project name, you may need to delete your `data-aichatweb-chunks` and `data-aichatweb-documents` indexes using the [Azure portal](https://portal.azure.com/) first before continuing; otherwise, data ingestion may fail due to a vector dimension mismatch.
49-
50-
### 3. Configure API Key and Endpoint
51-
Configure your Azure AI Search API key and endpoint for this project, using .NET User Secrets:
52-
1. In the Azure Portal, navigate to your Azure AI Search resource.
53-
2. Copy the "Endpoint" URL and "Primary admin key" from the "Keys" section.
54-
3. From the command line, configure your API key and endpoint for this project using .NET User Secrets by running the following commands:
55-
56-
```sh
57-
cd aichatweb.AppHost
58-
dotnet user-secrets set ConnectionStrings:azureAISearch "Endpoint=https://YOUR-DEPLOYMENT-NAME.search.windows.net;Key=YOUR-API-KEY"
59-
```
60-
61-
Make sure to replace `YOUR-DEPLOYMENT-NAME` and `YOUR-API-KEY` with your actual Azure AI Search deployment name and key.
32+
Make sure to replace placeholder values with real configuration values.
6233

6334
# Running the application
6435

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,29 @@
11
var builder = DistributedApplication.CreateBuilder(args);
22

3-
// You will need to set the connection string to your own value
4-
// You can do this using Visual Studio's "Manage User Secrets" UI, or on the command line:
5-
// cd this-project-directory
6-
// dotnet user-secrets set ConnectionStrings:openai "Endpoint=https://YOUR-DEPLOYMENT-NAME.openai.azure.com;Key=YOUR-API-KEY"
7-
var openai = builder.AddConnectionString("openai");
3+
// See https://learn.microsoft.com/dotnet/aspire/azure/local-provisioning#configuration
4+
// for instructions providing configuration values
5+
var openai = builder.AddAzureOpenAI("openai");
86

9-
// You will need to set the connection string to your own value
10-
// You can do this using Visual Studio's "Manage User Secrets" UI, or on the command line:
11-
// cd this-project-directory
12-
// dotnet user-secrets set ConnectionStrings:azureAISearch "Endpoint=https://YOUR-DEPLOYMENT-NAME.search.windows.net;Key=YOUR-API-KEY"
13-
var azureAISearch = builder.AddConnectionString("azureAISearch");
7+
openai.AddDeployment(
8+
name: "gpt-4o-mini",
9+
modelName: "gpt-4o-mini",
10+
modelVersion: "2024-07-18");
11+
12+
openai.AddDeployment(
13+
name: "text-embedding-3-small",
14+
modelName: "text-embedding-3-small",
15+
modelVersion: "1");
16+
17+
// See https://learn.microsoft.com/dotnet/aspire/azure/local-provisioning#configuration
18+
// for instructions providing configuration values
19+
var search = builder.AddAzureSearch("search");
1420

1521
var webApp = builder.AddProject<Projects.aichatweb_Web>("aichatweb-app");
16-
webApp.WithReference(openai);
17-
webApp.WithReference(azureAISearch);
22+
webApp
23+
.WithReference(openai)
24+
.WaitFor(openai);
25+
webApp
26+
.WithReference(search)
27+
.WaitFor(search);
1828

1929
builder.Build().Run();

test/ProjectTemplates/Microsoft.Extensions.AI.Templates.IntegrationTests/Snapshots/aichatweb.AzureOpenAI_Qdrant_Aspire.verified/aichatweb/aichatweb.AppHost/aichatweb.AppHost.csproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<Sdk Name="Aspire.AppHost.Sdk" Version="9.3.0" />
3+
<Sdk Name="Aspire.AppHost.Sdk" Version="9.4.0" />
44

55
<PropertyGroup>
66
<OutputType>Exe</OutputType>
@@ -12,7 +12,9 @@
1212
</PropertyGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.3.0" />
15+
<PackageReference Include="Aspire.Hosting.AppHost" Version="9.4.0" />
16+
<PackageReference Include="Aspire.Hosting.Azure.Search" Version="9.4.0" />
17+
<PackageReference Include="Aspire.Hosting.Azure.CognitiveServices" Version="9.4.0" />
1618
</ItemGroup>
1719

1820
<ItemGroup>

test/ProjectTemplates/Microsoft.Extensions.AI.Templates.IntegrationTests/Snapshots/aichatweb.AzureOpenAI_Qdrant_Aspire.verified/aichatweb/aichatweb.ServiceDefaults/aichatweb.ServiceDefaults.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<FrameworkReference Include="Microsoft.AspNetCore.App" />
1212

1313
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="9.8.0" />
14-
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery" Version="9.3.0" />
14+
<PackageReference Include="Microsoft.Extensions.ServiceDiscovery" Version="9.3.1" />
1515
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0" />
1616
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
1717
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />

0 commit comments

Comments
 (0)