-
Notifications
You must be signed in to change notification settings - Fork 849
Open
Labels
area-ai-templatesMicrosoft.Extensions.AI.TemplatesMicrosoft.Extensions.AI.TemplatesbugThis issue describes a behavior which is not expected - a bug.This issue describes a behavior which is not expected - a bug.untriaged
Description
Description
AI Web Chat Template throws a TypeLoadExceptoin exception on first run in DataIngestor.cs. Resolved bypdating the Aspire.Azure.AI.OpenAI package to "9.4.0-preview.1.25378.8"
Reproduction Steps
- File / New / AI Web Chat
- Select GitHub Models, Qdrant, .NET Aspire
- Set connection string in User Secrets
- Run the application
Expected behavior
.NET Aspire dashboard launches and Chat web starts up.
Actual behavior
An exception is thrown in DataIngestor.cs:
System.TypeLoadException
HResult=0x80131522
Message=Could not load type 'OpenAI.RealtimeConversation.RealtimeConversationClient' from assembly 'OpenAI, Version=2.2.0.0, Culture=neutral, PublicKeyToken=b4187f3e65366280'.
Source=Azure.AI.OpenAI
StackTrace:
at Azure.AI.OpenAI.AzureOpenAIClientOptions.GetRawServiceApiValueForClient(Object client)
at Azure.AI.OpenAI.Embeddings.AzureEmbeddingClient..ctor(ClientPipeline pipeline, String deploymentName, Uri endpoint, AzureOpenAIClientOptions options)
at Azure.AI.OpenAI.AzureOpenAIClient.GetEmbeddingClient(String deploymentName)
at Microsoft.Extensions.Hosting.AspireOpenAIClientBuilderEmbeddingGeneratorExtensions.CreateInnerEmbeddingGenerator(IServiceProvider services, AspireOpenAIClientBuilder builder, String deploymentName)
at Microsoft.Extensions.Hosting.AspireOpenAIClientBuilderEmbeddingGeneratorExtensions.<>c__DisplayClass0_0.<AddEmbeddingGenerator>b__0(IServiceProvider services)
at Microsoft.Extensions.AI.EmbeddingGeneratorBuilder`2.Build(IServiceProvider services)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.EmbeddingGeneratorBuilderServiceCollectionExtensions.<>c__1`2.<AddEmbeddingGenerator>b__1_0(IServiceProvider services)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.QdrantServiceCollectionExtensions.GetCollectionOptions(IServiceProvider sp, Func`2 optionsProvider)
at Microsoft.Extensions.DependencyInjection.QdrantServiceCollectionExtensions.<>c__DisplayClass7_0`2.<AddKeyedQdrantCollection>b__0(IServiceProvider sp, Object _)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetRequiredKeyedService(Type serviceType, Object serviceKey, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProviderKeyedServiceExtensions.GetRequiredKeyedService[T](IServiceProvider provider, Object serviceKey)
at Microsoft.Extensions.DependencyInjection.QdrantServiceCollectionExtensions.<>c__7`2.<AddKeyedQdrantCollection>b__7_1(IServiceProvider sp, Object key)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass2_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at ChatApp4.Web.Services.Ingestion.DataIngestor.<IngestDataAsync>d__4.MoveNext() in C:\Users\jonga\source\repos\ChatApp4\ChatApp4.Web\Services\Ingestion\DataIngestor.cs:line 14
at Program.<<Main>$>d__0.MoveNext() in C:\Users\jonga\source\repos\ChatApp4\ChatApp4.Web\Program.cs:line 47
I updated all package in the solution (checking Include Prerelease) and data ingestion ran successfully, followed by app launch.
Regression?
Yes, this used to work.
Known Workarounds
I updated all package in the solution (checking Include Prerelease) and data ingestion ran successfully, followed by app launch.
Key package to update:
Configuration
Windows 11
Microsoft Visual Studio Professional 2022
Version 17.14.10 Preview 1.0
Other information
No response
Metadata
Metadata
Assignees
Labels
area-ai-templatesMicrosoft.Extensions.AI.TemplatesMicrosoft.Extensions.AI.TemplatesbugThis issue describes a behavior which is not expected - a bug.This issue describes a behavior which is not expected - a bug.untriaged