diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs
index fc92d129..36357504 100644
--- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs
+++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs
@@ -1396,6 +1396,12 @@ private void EnsureAssemblyInspected()
_requestTracingOptions.AspireComponentVersion = TracingUtils.GetAssemblyVersion(RequestTracingConstants.AspireComponentAssemblyName);
+ if (RequestTracingConstants.AzureAIAssemblyNames
+ .Any(assemblyName => TracingUtils.GetAssemblyVersion(assemblyName) != null))
+ {
+ _requestTracingOptions.UsesAISdk = true;
+ }
+
if (TracingUtils.GetAssemblyVersion(RequestTracingConstants.SignalRAssemblyName) != null)
{
_requestTracingOptions.IsSignalRUsed = true;
diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Constants/RequestTracingConstants.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Constants/RequestTracingConstants.cs
index 5c4df33e..ac818d3d 100644
--- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Constants/RequestTracingConstants.cs
+++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Constants/RequestTracingConstants.cs
@@ -33,6 +33,7 @@ internal class RequestTracingConstants
public const string LoadBalancingEnabledTag = "LB";
public const string AIConfigurationTag = "AI";
public const string AIChatCompletionConfigurationTag = "AICC";
+ public const string UsesAISdkTag = "UsesAISdk";
public const string SnapshotReferenceTag = "SnapshotRef";
public const string SignalRUsedTag = "SignalR";
public const string FailoverRequestTag = "Failover";
@@ -57,6 +58,14 @@ internal class RequestTracingConstants
public const string AspireComponentAssemblyName = "Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration";
public const string SignalRAssemblyName = "Microsoft.AspNetCore.SignalR";
+ public static readonly string[] AzureAIAssemblyNames = new string[]
+ {
+ "Azure.AI.Projects",
+ "Azure.AI.Inference",
+ "Azure.AI.OpenAI",
+ "Azure.AI.Projects.OpenAI"
+ };
+
public const string Delimiter = "+";
public const string AIMimeProfile = "https://azconfig.io/mime-profiles/ai";
diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/RequestTracingOptions.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/RequestTracingOptions.cs
index 2f50a385..268aeae5 100644
--- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/RequestTracingOptions.cs
+++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/RequestTracingOptions.cs
@@ -56,6 +56,11 @@ internal class RequestTracingOptions
///
public string AspireComponentVersion { get; set; }
+ ///
+ /// Flag to indicate whether any Azure AI SDK assembly is present in the application.
+ ///
+ public bool UsesAISdk { get; set; } = false;
+
///
/// Flag to indicate whether Microsoft.AspNetCore.SignalR assembly is present in the application.
///
diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs
index 33050b5b..2738df37 100644
--- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs
+++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs
@@ -211,6 +211,11 @@ private static string CreateCorrelationContextHeader(RequestType requestType, Re
correlationContextTags.Add(RequestTracingConstants.PushRefreshTag);
}
+ if (requestTracingOptions.UsesAISdk)
+ {
+ correlationContextTags.Add(RequestTracingConstants.UsesAISdkTag);
+ }
+
var sb = new StringBuilder();
foreach (KeyValuePair kvp in correlationContextKeyValues)