Releases: dotnet/extensions
Releases · dotnet/extensions
v9.7.2
Packages Released
What's Changed
- Target .NET 8 for more stable runtime requirement by @joelverhagen in #6617
Full Changelog: v9.7.1...v9.7.2
v9.7.1
Packages Released
- Microsoft.Extensions.AI 9.7.1
- Microsoft.Extensions.AI.Abstractions 9.7.1
- Microsoft.Extensions.AI.OpenAI 9.7.1-preview.1.25365.4
- Microsoft.Extensions.AI.AzureAIInference 9.7.1-preview.1.25365.4
- Microsoft.Extensions.AI.Templates 9.7.1-preview.3.25365.4
What's Changed
- Merging changes from internal by @joperezr in #6588
- Bump FunctionInvokingChatClient.MaximumIterationsPerRequest from 10 to 40 by @stephentoub in #6599
- Expose M.E.AI.OpenAI input message conversions by @stephentoub in #6601
- Add schema version to server.json in MCP template by @joelverhagen in #6606
- Update MCP server template readme to show both VS Code and Visual Studio notes by @jeffhandley in #6591
- Fix schema generation for Nullable function parameters. by @eiriktsarpalis in #6596
- Branding updates for 9.7.1 by @joperezr in #6611
Full Changelog: v9.7.0...v9.7.1
v9.7.0
What's Changed
- Branding updates for 9.7 by @joperezr in #6495
- Fix name of genai input/output tokens tag by @stephentoub in #6494
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #6503
- Improve handling of RawRepresentation in OpenAI{Response}ChatClient by @stephentoub in #6500
- Bring back AsIChatClient for OpenAI AssistantClient by @stephentoub in #6501
- Add resiliency to Resource Monitoring in Linux by @amadeuszl in #6489
- Merging changes from the internal fork by @joperezr in #6508
- Workaround OpenAI assistant's RunCreationOption's tools override by @stephentoub in #6512
- Add ChatOptions.Instructions by @stephentoub in #6505
- Introduce evaluators for agentic workflows by @shyamnamboodiripad in #6514
- Allow a CachingChatClient to control per-request caching by @stephentoub in #6524
- Tweak OpenAI JSON schema transforms by @stephentoub in #6523
- Merging changes from release/9.6 branch by @joperezr in #6516
- Augment AIJsonUtilities.CreateJsonSchema for more types and annotations by @stephentoub in #6540
- Added conversions from AIFunction to various OpenAI tools by @KrzysztofCwalina in #6539
- Add SpeechToTextResponse.Usage by @stephentoub in #6546
- Implement BLEU score evaluation for NLP tests by @peterwald in #6537
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in #6553
- #5962 Change to early return of OS instead of throwing by @juliankock in #5963
- Mark log sampling & buffering API as stable by @evgenyfedorov2 in #6534
- Update GenAI otel impl for v1.35 by @stephentoub in #6557
- Implement GLEU and F1 NLP evaluators by @peterwald in #6555
- Update tokenizer algorithm to use is [..] by @peterwald in #6561
- Rename some constants to match convention by @shyamnamboodiripad in #6562
- Add DistributedCachingChatClient/EmbeddingGenerator.AdditionalCacheKeyValues by @stephentoub in #6558
New Contributors
- @KrzysztofCwalina made their first contribution in #6539
- @juliankock made their first contribution in #5963
Full Changelog: v9.6.0...v9.7.0
v9.6.0
What's Changed
- Branding updates for 9.6.0 by @joperezr in #6399
- Add log buffering info to README.md by @evgenyfedorov2 in #6403
- Fix dynamic config update for log buffering by @evgenyfedorov2 in #6435
- Remove unused select param from CreateRecordsForDocumentAsync by @jongalloway in #6341
- Merge internal changes by @joperezr in #6437
- Reduce per-lookup overhead from key validation in HybridCache by @MihaZupan in #6441
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6443
- Merge release/9.5 into main by @joperezr in #6448
- Fix up comments in eval API json files by @shyamnamboodiripad in #6452
- Remove preview tag on Azure DevOps extension by @peterwald in #6456
- Bump PackageValidation against 9.5.0 and enable for stable MEAI packages by @joperezr in #6458
- Fix paramref tag by @gewarren in #6459
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6462
- Add a script to diff the contents of folders that match a specific pattern across two branches by @shyamnamboodiripad in #6453
- Remove
title
anddescription
keywords from root-level schemas in AIFunctionFactory. by @eiriktsarpalis in #6465 - Replace JSON vector store with SQLite by @MackinnonBuck in #6438
- Update chat template
Microsoft.SemanticKernel
dependency to 1.53.0 by @MackinnonBuck in #6470 - Update chat template external dependencies by @MackinnonBuck in #6471
- Exclude provider URI from cache key computation by default by @shyamnamboodiripad in #6473
- Make hashing stable w.r.t. indentation settings and property ordering. by @eiriktsarpalis in #6476
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6481
- Add default value for namedArg in Microsoft.Gen.Metrics.parser by @BowenYang666 in #6238
- Update OpenTelemetryChatClient to 1.34 by @stephentoub in #6466
- Delete M.E.AI changelog files by @stephentoub in #6467
- Add comma to remarks by @gewarren in #6485
- Implement disk io metrics for linux by @makazeu in #6374
- Add
AIFunction.ReturnJsonSchema
by @eiriktsarpalis in #6447
New Contributors
- @MihaZupan made their first contribution in #6441
- @BowenYang666 made their first contribution in #6238
Full Changelog: v9.5.0...v9.6.0
v9.5.0
What's Changed
- Add TextReasoningContent by @stephentoub in #6222
- Use ErrorContent in OpenAIResponseChatClient by @stephentoub in #6231
- OpenAI: Parse detail additional property by @jozkee in #6225
- Branding updates for 9.5 by @joperezr in #6233
- In telemetry, treat AdditionalProperties as sensitive by @SteveSandersonMS in #6239
- Use SHA384 and make key more explicit by @SteveSandersonMS in #6237
- Disable STJ default reflection and fix a number of failing tests. by @eiriktsarpalis in #6241
- Add button to report to download dataset as JSON by @peterwald in #6243
- Introduce Content Safety evaluators by @shyamnamboodiripad in #6223
- Bump vite from 6.2.4 to 6.2.5 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript by @dependabot in #6249
- Only display tags from the latest execution by @shyamnamboodiripad in #6251
- Avoid duplicate data in downloaded report file by @shyamnamboodiripad in #6252
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6253
- Remove use of ConfigureAwait from Microsoft.Extensions.AI.dll for AIFunction invocations by @stephentoub in #6250
- Update dev-server data import to reflect runtime import quirks by @peterwald in #6257
- [release/9.2] Merging internal changes by @joperezr in #6263
- Merging release/9.4 changes by @joperezr in #6264
- Add logging buffering by @evgenyfedorov2 in #5635
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6270
- Add test for optional parameters being required with RequireAllProperties by @jozkee in #6265
- Add fuzzy filtering to the evaluation reports by @peterwald in #6262
- Updating package validation version to 9.4.0 by @joperezr in #6272
- Adding reference to an unsupported built-in tool on OpenAI Chat API no longer throws by @artl93 in #6276
- Update M.E.AI changelogs by @stephentoub in #6269
- Add missing reference to M.E.AI.OpenAI in chat template by @MackinnonBuck in #6275
- Fix two paramref tags by @gewarren in #6281
- Support response caching for safety evaluators by @shyamnamboodiripad in #6277
- Bump vite from 6.2.5 to 6.2.6 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript by @dependabot in #6287
- Display images in conversation for report by @shyamnamboodiripad in #6286
- Augment UseDistributedCache XML docs by @stephentoub in #6256
- Update README.md with keyless auth guidance by @jmatthiesen in #6261
- Augment AIFunctionFactory.Create XML docs by @stephentoub in #6255
- Rename EmbeddingGeneratorExtensions.GenerateEmbedding extension methods by @roji in #6295
- Augment FunctionInvokingChatClient's span with token counts by @stephentoub in #6296
- Rename ChatThreadId to ConversationId by @SteveSandersonMS in #6300
- Repackage azure-devops-extensions-api to fix Azure DevOps report plugin by @peterwald in #6299
- Fix build error by @shyamnamboodiripad in #6301
- Add note on extending timeout for Ollama client by @jongalloway in #6258
- Improve CPU metrics calculations for CgroupV2 by @nivebb8 in #6289
- Restore deleted members as obsolete by @jeffhandley in #6304
- move to AwesomeAssertions by @danmoseley in #6308
- Update chat template dependencies, fix OpenAI/Aspire config, and address build warnings by @MackinnonBuck in #6280
- Support [FromKeyedServices] in AIFunctionFactory by @stephentoub in #6310
- Introduce Context property on EvaluationMetric by @shyamnamboodiripad in #6316
- Utilize IServiceProviderIsService in AIFunctionFactory by @stephentoub in #6317
- Fix Process Metric calculation in CgroupsV2 by @nivebb8 in #6321
- Remove the abstraction for token counting from the main evaluation API by @shyamnamboodiripad in #6320
- Remove AsChatClient/AsEmbeddingGenerator APIs by @jeffhandley in #6327
- Add ChatOptions.AllowMultipleToolCalls by @SteveSandersonMS in #6326
- Disable default required property schema generation and OpenAI strict mode. by @eiriktsarpalis in #6285
- Accessibility fixes for the HTML report by @peterwald in #6329
- Add Windows disk I/O metrics to ResourceMonitoring by @makazeu in #6181
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6336
- Update prompts for quality evaluators by @shyamnamboodiripad in #6328
- Reduce allocations in LogSamplingRuleSelector by @evgenyfedorov2 in #6339
- A couple of minor fixes by @shyamnamboodiripad in #6340
- Update readmes by @shyamnamboodiripad in #6345
- Expose AIContent constructor by @stephentoub in #6346
- Add PDF support to OpenAI AsIChatClient by @stephentoub in #6344
- Make
CreateJsonSchema
tolerate JSO inputs that don't have a resolver set. by @eiriktsarpalis in #6348 - Skip messages that have no text when rendering conversations as part of evaluation prompts by @shyamnamboodiripad in #6349
- Enhance Function Invocation Extensibility for Microsoft.Extensions.AI by @rogerbarreto in #6325
- Upgrade to Issue Labeler v2.0.0 by @jeffhandley in #6357
- Issue Labeler - Predict PR labels for main and dev branches by @jeffhandley in #6358
- Update CHANGELOGS for M.E.AI libs by @stephentoub in #6359
- Add project template build tests + CG reporting by @MackinnonBuck in #6355
- Fix keys for EvaluationResult.Metrics dictionary to reflect the correct metric names for Safety evaluators by @shyamnamboodiripad in #6361
- Update branding for Azure service used by Safety evaluators by @shyamnamboodiripad in #6362
- Use ConversationId instead of ChatThreadId in README by @gewarren in #6367
- Add Disk IO time metric for Windows in ResourceMonitoring by @makazeu in #6338
- Fix an issue in OSFileSystem's ReadAllByLines method where last line may be dropped by @makazeu in #6373
- Update OpenTelemetryChatClient/EmbeddingGenerator to 1.33 by @stephentoub in #6366
- Add AsIEmbeddingGenerator for Azure.AI.Inference ImageEmbeddingsClient by @stephentoub in #6363
- Add DataContent.Base64Data by @stephentoub in #6365
- Fix AIFunctionFactory handling of default struct arguments by @eiriktsarpalis in #6381
- Add JS dependency update instructions to chat template README by @MackinnonBuck in #6376
- Add see also links to conceptual docs by @gewarren in #6368
- Using nr_periods from cpu.stat to get time elapsed by @nivebb8 in #6335
- Translate OpenAI refusals to ErrorContent by @stephentoub in #6393
- Rename useJsonSchema parameter by @stephentoub in #6394
- Add JSON schema transformation functionality to
AIJsonUtilities
by @eiriktsarpalis in #6383 - Remove CacheOptions from DiskBasedResponseCache by @shyamnamboodiripad in #6395
- Add back net9.0 version of the aieval dotnet tool by @shyamnamboodiripad i...
v9.4.0
What's Changed
- Fix various build failures by @RussKie in #6039
- Proposal for tweaks to IChatClient contract by @stephentoub in #5998
- Onboard dotnet/issue-labeler workflows for automated area labels by @jeffhandley in #6047
- Only predict area labels for PRs into main and dev by @jeffhandley in #6049
- Upgrade workflows to issue-labeler v1.0.1 by @jeffhandley in #6050
- Fix evaluation report generation by @shyamnamboodiripad in #6061
- Automatically add 'untriaged' label to new issues without milestones by @jeffhandley in #6060
- Address M.E.VectorData feedback for IEmbeddingGenerator by @stephentoub in #6058
- Fix grouping of ChatResponseUpdate into ChatMessage by @SteveSandersonMS in #6074
- Fix handling of empty messages in AzureAIInferenceChatClient by @stephentoub in #6072
- Update OpenTelemetryChatClient/EmbeddingGenerator to v1.31 of genai standard convention by @stephentoub in #6073
- Merging internal changes by @joperezr in #6081
- Merging release/9.3 branch into main by @joperezr in #6082
- Update ordering in CODEOWNERS by @shyamnamboodiripad in #6085
- Bump Package Validation by @joperezr in #6084
- Add types from AIJsonUtilities.JsonContext to reporting JsonContext by @peterwald in #6078
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6097
- Introduce Reason property on EvaluationMetric by @shyamnamboodiripad in #6087
- [AI Evaluation] Add versioning to reporting and caching by @peterwald in #6070
- Add assignments for @dotnet/dotnet-extensions-ai-templates by @RussKie in #6105
- Test templates by @RussKie in #6086
- Add favicon for AiChatWeb template by @makazeu in #6104
- Move manual dependencies in correct group to reduce conflicts by @RussKie in #6108
- Memory usage in CG Slice path could be 0 by @makazeu in #6110
- Add an option to log unsupported route by @amadeuszl in #6077
- Fix tree expansion in evaluation report by @shyamnamboodiripad in #6107
- Use just-built packages in the AI chat template by default by @MackinnonBuck in #6096
- Avoid multiple enumerations of messages in FunctionInvokingChatClient by @stephentoub in #6119
- Add AsChatClient for OpenAIResponseClient by @stephentoub in #6103
- [AI extensions] Add jsonSchemaIsStrict option to OpenAI options mapping by @danielwinkler in #6064
- pin actions by @danmoseley in #6123
- Expose failed Verify asserts as CI artifacts by @RussKie in #6129
- Create a directory for the AIChatWeb template if name is specified by @makazeu in #6122
- Add AIJsonSchemaCreateOptions.IncludeParameter filter by @stephentoub in #6125
- Update html-reporting package dependencies by @peterwald in #6115
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #6131
- Fix AIFunctionFactory functions to fail for missing required parameters by @stephentoub in #6135
- Update changelogs for M.E.AI by @stephentoub in #6079
- Fix chat template test version scrubbing by @MackinnonBuck in #6140
- [Telemetry, Logging] Emit {OriginalFormat} as the last property of the log record by @iliar-turdushev in #6111
- HybridCache: richer detection for field-only types (ref STJ) by @mgravell in #6118
- [Http Resilience] Update instructions how to fix a compatibility issue with App Insights by @iliar-turdushev in #6147
- Fix indentation in chat template readme by @SteveSandersonMS in #6134
- In chat template, display preformatted/code snippet outputs sensibly by @SteveSandersonMS in #6137
- Use only a single TFM for M.E.AI.Eval.Reporting.Console by @peterwald in #6148
- Update algorithm spelling in /// by @gewarren in #6149
- Fix to show AI template config options in VS Code - Update framework symbol casing in chat template by @timheuer in #6117
- Extend M.E.AI.Evaluation.Console to support Azure Storage options by @peterwald in #6152
- Add license info to the Azure DevOps package by @peterwald in #6160
- Change AIFunction.InvokeAsync to accept AIFunctionArguments by @stephentoub in #6158
- Add some comments clarifying model choice for quality evaluators by @shyamnamboodiripad in #6165
- Fix build failing when running
./build.cmd -vs AI
multiple times by @MackinnonBuck in #6171 - Update tsaoptions.json by @danmoseley in #6170
- Add MessageId to ChatMessage and ChatResponseUpdate by @SteveSandersonMS in #6172
- Enable custom argument binding with AIFunctionFactory by @stephentoub in #6162
- Enable JSON-schema based structured output by default by @SteveSandersonMS in #6159
- Simplify function calling error handling by @SteveSandersonMS in #6169
- Update to latest OpenAI, Azure.AI.OpenAI, and Azure.AI.Inference packages by @stephentoub in #6178
- Add custom result marshaling support to AIFunctionFactory by @stephentoub in #6175
- Fix dynamic config update for Random probabilistic sampler by @evgenyfedorov2 in #6187
- Unit test to show how function calling already permits resumption by @SteveSandersonMS in #6186
- Add "see also" links to conceptual docs by @gewarren in #6177
- Fix chat template input form submission on Firefox by @MackinnonBuck in #6188
- Support adding tags to scenarios by @shyamnamboodiripad in #6189
- Couple of minor reporting layout fixes by @shyamnamboodiripad in #6192
- A couple more minor eval report fixes by @shyamnamboodiripad in #6197
- Bump vite from 6.2.2 to 6.2.3 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript by @dependabot in #6190
- Enable AIFunctionFactory.Create to use Activator{Utilities}.Create by @stephentoub in #6193
- Remove experimental attribute from TagNameAttribute by @dariusclay in #6200
- Fix load order of ProjectStaging and restrict package version validation to only official builds by @RussKie in #6041
- Strip
default
keyword in generated schemas when RequireAllProperties is specified. by @eiriktsarpalis in #6204 - Template: Remove if'ed code for ollama by @jozkee in #6205
- Remove non-AsXx surface area from M.E.AI.OpenAI/AzureAIInference by @stephentoub in #6138
- Add Aspire support to chat template by @MackinnonBuck in #6102
- Add trending views for both leaf-level scenario runs and aggregated scenario groups. by @peterwald in #6207
- Update AI chat template dependencies by @MackinnonBuck in #6220
- Fix execution order when reporting from Azure by @peterwald in #6217
- Bump vite from 6.2.3 to 6.2.4 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript by @dependabot in #6216
- Mirror integration tests for OllamaSharp by @jozkee in #6209
- Update otel semantic convention version in comment by @stephentoub in #6227
- Update README with Logging sampling information by @evgenyfedorov2 in #6226
- Lower M.E.AI ...
v9.3.0
What's Changed
- Move ResourceUtilizationInstruments to Shared project by @amadeuszl in #5844
- Remove Tailwind and NPM dependency from chat template by @MackinnonBuck in #5846
- Branding updates for 9.3 by @joperezr in #5847
- Use an environment variable for configuring Ollama integration tests by @eiriktsarpalis in #5851
- Use unsafe relaxed escaping in
AIJsonUtilities.DefaultOptions
. by @eiriktsarpalis in #5850 - Move AIFunction parameter schematization from parameter level to function level. by @eiriktsarpalis in #5826
- Fix IChatClient integration tests after relaxed JSON update by @stephentoub in #5859
- Automate chat template JS dependency updates by @MackinnonBuck in #5853
- Address M.E.AI API feedback by @stephentoub in #5860
- Add AsChatClient for OpenAI's AssistantClient by @stephentoub in #5852
- Some docs fixes by @gewarren in #5861
- AI Templates - Fixes for Ollama and OpenAI scenarios by @jmatthiesen in #5855
- Update CODEOWNERS in preparation for upcoming MEAI.Evaluation libraries by @shyamnamboodiripad in #5872
- Update to {Azure.AI.}OpenAI 2.2.0-beta.1 by @stephentoub in #5869
- Rename IChatClient members and corresponding types by @stephentoub in #5870
- Fix up a few more stale references to Complete{Streaming}Async (mainly tests) by @stephentoub in #5876
- Update test app for OpenAI NativeAOT support by @stephentoub in #5877
- Make IEmbeddingGenerator contravariant on TInput by @stephentoub in #5879
- Fix a few more straggler "Complete" references by @stephentoub in #5881
- Add .npmrc file by @wtgodbe in #5878
- Merge internal changes by @RussKie in #5883
- Enable API compat validation by @RussKie in #5871
- Generalise how package version isn't stabilized for dev/preview stages by @RussKie in #5864
- Use UseZeroToOneRangeForMetrics in Health Checks by @evgenyfedorov2 in #5849
- Add service lifetime support to DI helpers. by @eiriktsarpalis in #5880
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #5890
- Add MEAI.Evaluation libraries by @shyamnamboodiripad in #5873
- Remove the
ref int
parameter fromChatConversationEvaluator.CanRenderAsync()
by @peterwald in #5896 - Replace
AIFunctionParameterMetadata
withMethodInfo
by @eiriktsarpalis in #5886 - Fix propagation of ChatThreadId in ToChatResponse{Async} by @stephentoub in #5899
- Couple of minor changes around doc comments by @shyamnamboodiripad in #5902
- Build evaluation report in CI and when enabled by @peterwald in #5903
- Rename AIFunctionFactoryOptions and make all properties nullable. by @eiriktsarpalis in #5906
- Update Azure.AI.Inference to 1.0.0-beta.3 by @stephentoub in #5904
- Add marker AITool for enabling code interpreters by @stephentoub in #5898
- Fix analyzer reference in AuditReports package by @dariusclay in #5894
- Pre-Build TypeScript packages before CI builds by @peterwald in #5907
- Reset code coverage baselines by @stephentoub in #5912
- Update CHANGELOGs for next release by @stephentoub in #5911
- Use Environment.WorkingSet in WindowsSnapshotProvider by @evgenyfedorov2 in #5874
- Tweak a comment in FunctionInvokingChatClient by @stephentoub in #5910
- Remove unnecessary compilations causing duplicate metric generators by @dariusclay in #5916
- Update baseline by @RussKie in #5918
- Make MetadataExtractor & MetricsReports in Microsoft.Extensions.AuditReports create directories [Same as ComplianceReport] by @IbrahimMNada in #5919
- Update template to newest M.E.AI version by @stephentoub in #5923
- Introduce type converter for DataClassification by @dariusclay in #5887
- Reinstate caching in schema generation by @eiriktsarpalis in #5908
- Add GetRequiredService extension for IChatClient/EmbeddingGenerator by @stephentoub in #5930
- Update M.E.AI READMEs by @stephentoub in #5925
- Use structured output for RTC evaluator by @shyamnamboodiripad in #5945
- Upgrade
slngen
to avoid crash with newer versions of VS by @peterwald in #5932 - Update coverage baseline by @shyamnamboodiripad in #5948
- Make sure npm build tasks happen reliably and only once. by @peterwald in #5926
- Address API feedback on M.E.AI by @stephentoub in #5954
- Template updates - Added an Overview/README, support of managed identity by @jmatthiesen in #5897
- Chat template updates following threat model review by @SteveSandersonMS in #5961
- Finalizing template name and sample data by @jmatthiesen in #5966
- Chat template static files layout update by @SteveSandersonMS in #5968
- Enable building and signing VSIX for extension by @peterwald in #5969
- Fix RTC evaluator by @shyamnamboodiripad in #5971
- Move Azure DevOps extension build until after the transport package build by @peterwald in #5973
- HybridCache: release to GA for 9.3 by @mgravell in #5931
- Automate chat template .NET dependency updates by @MackinnonBuck in #5946
- Explicitly specify VSIX file to sign to fix internal official build. by @peterwald in #5978
- Remove gitignore from AI chat template by @halter73 in #5972
- Addressing dogfooding feedback, adding GitHub Models support by @jmatthiesen in #5974
- Add
Microsoft.Extensions.AI.Templates
third party notices by @MackinnonBuck in #5949 - Move example PDFs into wwwroot/Data by @jeffhandley in #5982
- Remove unnecessary type from the source generator by @eiriktsarpalis in #5985
- HybridCache JSON serialization improvements by @mgravell in #5979
- Improve debugger display for ChatMessage by @stephentoub in #5988
- Address missing reference to Microsoft.Extensions.AI.OpenAI by @artl93 in #5984
- Add logging sampling by @evgenyfedorov2 in #5574
- Fix chat template content generation build flakiness by @MackinnonBuck in #5990
- Re-enabled forward main->dev merges by @RussKie in #5991
- Add context to getting started with using Azure AI Search by @artl93 in #5993
- Remove API key comment when using managed identity by @artl93 in #5996
- Touch-up to template readme.md by @artl93 in #6006
- Address vector dimension mismatch when using ollama with Azure AI Search by @artl93 in #6001
- Make AnonymousDelegatingEmbeddingGenerator internal by @stephentoub in #6000
- AI Template Preview 1 - ID cleanup & link to survey by @jmatthiesen in #5994
- Expose default cache key use by DistributedCachingCacheClient by @stephentoub in #6002
- Only show real citations by @SteveSandersonMS in #6012
- Add missing Maestro registrations by @RussKie in #5995
- Fix flow for new dependencies by @MackinnonBuck in #6017
- Ad...
v9.2.0
What's Changed
- Add
FunctionInvokingChatClient.CurrentContext
by @MackinnonBuck in #5786 - Fix schema generation for floating point types by @eiriktsarpalis in #5788
- Add an extension method for registering custom AIContent types by @eiriktsarpalis in #5789
- Fix XML comment by @gewarren in #5790
- Update HybridCacheOptions.cs (minor typo) by @jodydonetti in #5757
- Ensure Ollama streaming updates specify a CompletionId. by @eiriktsarpalis in #5795
- Update CHANGELOG.mds for 9.1.0-preview.1.25064.3 by @stephentoub in #5797
- Add Obsolete attribute on IResourceMonitor and its friends by @evgenyfedorov2 in #5774
- Make a number of improvements to the OpenAI serialization helpers. by @eiriktsarpalis in #5799
- Add note and sample for the case of using Azure OpenAI by @joperezr in #5802
- API that allows to remove all resilience handlers from the HTTP client by @rainsxng in #5801
- Update OpenTelemtryChatClient/EmbeddingGenerator for 1.30 by @stephentoub in #5815
- Metadata reports generator (Issue #3999) by @IbrahimMNada in #5531
- Ensure the Ollama clients validate HTTP status codes. by @eiriktsarpalis in #5821
- Fix poor wording in CA2253 error message by @evgenyfedorov2 in #5822
- Inheritdoc fixes by @gewarren in #5823
- Remove
ImageContent
andAudioContent
by @MackinnonBuck in #5814 - Make HealthChecks.ResourceUtilization use observable instruments by @evgenyfedorov2 in #5798
- Resource Monitoring metrics on Windows - remove multiplication by 100 by @evgenyfedorov2 in #5473
- Initial chat template by @SteveSandersonMS in #5837
- The tested logic uses invariant culture, but unit tests assert against current culture by @Demo30 in #5841
- Fix links in CONTRIBUTING.md by @Demo30 in #5840
- Chat template CR feedback by @SteveSandersonMS in #5845
- Chat template: PDF citation viewer by @SteveSandersonMS in #5843
- Small fixes for chat template by @MackinnonBuck in #5839
- HybridCache : implement the tag expiration feature by @mgravell in #5785
New Contributors
- @IbrahimMNada made their first contribution in #5531
- @Demo30 made their first contribution in #5841
Full Changelog: v9.1.0...v9.2.0
.NET Extensions 9.1.0
9.1.0 packages are all pushed now to NuGet.org!
What's Changed
- Add NativeAOT testapp project for M.E.AI by @stephentoub in #5573
- Add changelogs for M.E.AI projects by @stephentoub in #5577
- Explicitly reference System.Memory.Data in OpenAI/AzureAIInference projects by @stephentoub in #5576
- Fix AzureAIInferenceEmbeddingGenerator to respect EmbeddingGenerationOptions.Dimensions by @stephentoub in #5575
- Merge ResourceMonitoringOptions.Linux.cs into ResourceMonitoringOptions.cs by @makazeu in #5580
- Fix exception when generating boolean schemas by @eiriktsarpalis in #5585
- Add ImageContent integration test by @stephentoub in #5586
- Add ChatOptions.Seed by @stephentoub in #5587
- Lower
AIJsonUtilities
to STJv8 and move to Abstractions library. by @eiriktsarpalis in #5582 - Plug JsonSchemaExporter test data to the AIJsonUtilities tests by @eiriktsarpalis in #5590
- Improve JsonSchemaExporter trimmer safety. by @eiriktsarpalis in #5591
- Improve AdditionalPropertiesDictionary by @stephentoub in #5593
- Add UseEmbeddingGenerationOptions by @stephentoub in #5594
- HybridCache stability and logging improvements by @mgravell in #5467
- Assign ownership by @RussKie in #5600
- HybridCache: don't log cancellation as failure event by @mgravell in #5601
- Set DisableNETStandardCompatErrors for M.E.AI projects by @stephentoub in #5603
- HttpRouteParser: Handle catch-all parameters by @dariusclay in #5604
- Rework UseChatOptions as ConfigureOptions by @stephentoub in #5606
- Make IChatClient/IEmbeddingGenerator.GetService non-generic by @stephentoub in #5608
- Add logging/activities to FunctionInvokingChatClient by @stephentoub in #5596
- Update M.E.AI CHANGELOG.mds by @stephentoub in #5609
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #5610
- Add ToChatCompletion{Async} methods for combining StreamingChatCompletionUpdates by @stephentoub in #5605
- Docs improvements by @gewarren in #5613
- Use ToChatCompletion in OpenTelemetryChatClient by @stephentoub in #5614
- Use ToChatCompletion / ToStreamingChatCompletionUpdates in CachingChatClient by @stephentoub in #5616
- Add DebuggerDisplay for DataContent by @stephentoub in #5618
- Tweak ChatMessage/StreamingChatCompletionUpdate.ToString by @stephentoub in #5617
- Expose options for making schema generation conformant with the subset accepted by OpenAI. by @eiriktsarpalis in #5619
- Cache current process object to avoid performance hit by @haipz in #5597
- Fix namespace for IServiceCollection extensions by @stephentoub in #5620
- Fix linker warning. by @eiriktsarpalis in #5627
- Merge internal changes by @joperezr in #5631
- Publish the AotCompatibility.TestApp project as part of PR validation by @eerhardt in #5622
- Merge branch release/9.0 into main by @joperezr in #5632
- Replace STJ boilerplate in the leaf clients with AIJsonUtilities calls. by @eiriktsarpalis in #5630
- Rework cache key handling in caching client / generator by @stephentoub in #5641
- Docs updates by @gewarren in #5643
- Change ChatClientBuilder to register singletons and support lambda-less chaining by @SteveSandersonMS in #5642
- [main] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #5645
- EmbeddingGeneratorBuilder API updates by @SteveSandersonMS in #5647
- Update WaiterRemovedAfterDispose to check waitersCount first by @amadeuszl in #5646
- Allow logging of body without modifying the actual response by @dariusclay in #5628
- Make ActivityBaggageLogScopeWrapper implements IEnumerable<KeyValuePair<string, object?>> by @NatMarchand in #5589
- Add a [DebuggerDisplay] to GeneratedEmbeddings by @stephentoub in #5657
- Annotate private DebuggerDisplay props as DebuggerBrowsableState.Never by @stephentoub in #5656
- Fix M.E.AI argument tests to validate argument names by @stephentoub in #5653
- Remove duplicate GetCacheKey methods by @stephentoub in #5651
- Augment XML comments for AIFunctionFactory.Create by @stephentoub in #5658
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #5662
- Add AsBuilder extensions for IChatClient and IEmbeddingGenerator by @stephentoub in #5652
- Reduce a bit of LINQ in M.E.AI by @stephentoub in #5663
- Reverse order of services/inner in Use methods by @stephentoub in #5664
- Add anonymous chat clients / embedding generators by @stephentoub in #5650
- Update documentation SynchronizationContext in FakeTimeProvider by @amadeuszl in #5665
- Backport JsonSchemaExporter bugfix. by @eiriktsarpalis in #5671
- Add OpenAIRealtimeExtensions with ToConversationFunctionTool by @SteveSandersonMS in #5666
- Tweak CachingHelpers.GetCacheKey to clean up better on failure by @stephentoub in #5654
- Ensure non-streaming usage data from function calling is in history by @stephentoub in #5676
- Fix a few FunctionInvocationChatClient streaming issues by @stephentoub in #5680
- Change UseLogging to accept an ILoggerFactory instead of ILogger by @stephentoub in #5682
- Expose a schema transformer on AIJsonSchemaCreateOptions. by @eiriktsarpalis in #5677
- Update M.E.AI CHANGELOG.md for latest bits by @stephentoub in #5684
- [main] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #5678
- Add API allowing to disable retries for a given list of HTTP methods by @iliar-turdushev in #5634
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #5693
- Update M.E.AI code coverage mins from 0 by @stephentoub in #5698
- [main] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #5702
- Improve FakeTimeProvider documentation, remove redundant tests by @amadeuszl in #5683
- [main] Update dependencies from dotnet/aspnetcore by @dotnet-maestro in #5703
- For AI integration tests, use config including user secrets by @SteveSandersonMS in #5706
- Fix handling of text-only user messages in AzureAIInferenceChatClient by @stephentoub in #5714
- Make UseLogging a nop when NullLoggerFactory is used by @stephentoub in #5717
- Fix streaming function calling by @SteveSandersonMS in #5718
- Removes Experimental attribute from ResilienceHandler class by @iliar-turdushev in #5670
- Usage aggregation via Dictionary<string, long> by @SteveSandersonMS in #5709
- Update otel chat client / embedding generator for 1.29 draft of the spec by @stephentoub in #5712
- Additional tests to the logging generator by @rainsxng in #5704
- Update OpenAI dependency to 2.1.0 by @stephentoub in #5725
- Fix build by @RussKie in #5728
- Add a few missing options to OpenAIChatclient.ToOpenAIOptions by @stephentoub in #5727
- Ollama support for stre...
.NET Extensions 9.0.0
9.0.0 are all pushed now to NuGet.org!
What's Changed
- Adding CI support for dev branch by @joperezr in #4704
- Update SDK by @captainsafia in #4743
- Update SDK version by @sebastienros in #4760
- Enable AOT compatibility for all libraries by @eerhardt in #4625
- rev SDK to current nightly (build-ops) by @mgravell in #4786
- Correct build transitive targets location by @RussKie in #4773
- Update SDK to 23608.3 by @amcasey in #4800
- Add workflow for automatic SDK updates by @wtgodbe in #4886
- Ensure we emit preview.1 versions as prerelease label. by @joperezr in #4909
- Branding updates for 9.0 preview 2 by @joperezr in #4910
- Update Microsoft.AspNetCore.Diagnostics.Middleware.csproj by @RussKie in #4938
- Use 9.0 preview 3 shipping versions by @joperezr in #5094
- Migrate HybridCache from aspnetcore to extensions by @mgravell in #5391
- Fix CVE-2024-21319 by @RussKie in #5418
- HybridCache: ensure that Size is always specified in L1 by @mgravell in #5420
- Merge internal changes from Preview 9 release by @joperezr in #5479
- Improve registration of IDistributedCache in READMEs by @stephentoub in #5480
- Flip default on FunctionInvokingChatClient.ConcurrentInvocation by @stephentoub in #5485
- Remove x64 hardcoding from global.json runtimes by @eiriktsarpalis in #5488
- Fix AIFunctionFactory support for AOT. by @eiriktsarpalis in #5494
- Mark the FunctionCall/ResultContent.Exception properties as [JsonIgnore] by @stephentoub in #5492
- First cut of code ownership by @RussKie in #5486
- Doc updates to HybridCacheOptions by @gewarren in #5493
- Set WriteIndented=true for M.E.AI logging / telemetry / etc. by @stephentoub in #5497
- Sanitize structured output schema type name to satisfy restrictions by @kzu in #5504
- Remove unnecessary suppression in AIFunctionFactory by @eerhardt in #5505
- Allowing tags to start with _ by @carolineRe13 in #5478
- Use the same JsonSerializerOptions default in all locations. by @eiriktsarpalis in #5507
- Use the logging generator in LoggingChatClient / LoggingEmbeddingGenerator by @stephentoub in #5508
- Avoid use of FormattableString when logging by @stephentoub in #5503
- Add comment about use of hashing in CachingHelpers by @stephentoub in #5509
- Build fix - remove unnecessary 'using' by @SteveSandersonMS in #5512
- Rework the AIFunctionFactory APIs and remove redundant overloads following removal of trimmer annotations. by @eiriktsarpalis in #5510
- Improve CachingChatClient's coalescing of streaming updates by @stephentoub in #5514
- Add thread-safety comments about M.E.AI middleware components by @stephentoub in #5515
- Update README with rate limiting example by @stephentoub in #5519
- Add AdditionalPropertiesDictionary.TryGetValue by @stephentoub in #5528
- Expose an
AIJsonUtilities
class in M.E.AI and lower M.E.AI.Abstractions to STJv8 by @eiriktsarpalis in #5513 - Address PR feedback from #5513 by @eiriktsarpalis in #5533
- Update UseOpenTelemetry for latest genai spec updates by @stephentoub in #5532
- Use 8.0 era dependencies for non net9.0 TFMs by @joperezr in #5470
- Update the meter names of NetworkMetrics to match other meters in ResourceMonitoring by @makazeu in #5541
- Fix typo in ChatCompletions comment by @stephentoub in #5545
- Remove unnecessary ctors from FunctionResultContent by @stephentoub in #5536
- Make GenerateAsync extension just return the embedding by @stephentoub in #5543
- Remove AIContent.ModelId, add StreamingChatCompletionUpdate.ModelId by @stephentoub in #5535
- Fix embedding integration test after telemetry updates by @stephentoub in #5555
- Lower M.E.AI.Ollama STJ dependency back to 8 by @stephentoub in #5554
- Add missing [JsonIgnore] on ChatCompletion.Message by @stephentoub in #5552
- Add OllamaChatClient ctor with string endpoint by @stephentoub in #5553
- Fix a few issues in IChatClient implementations by @stephentoub in #5549
- Script to generate weekly digest by @RussKie in #5550
- Improve EmbeddingGeneratorExtensions by @stephentoub in #5551
- Update .gitattributes by @RussKie in #5565
- Fix cloning of ChatOptions.TopK by @stephentoub in #5564
- Add string constructor to OllamaEmbeddingGenerator by @stephentoub in #5562
- Remove some defunct lazy init from chat clients by @stephentoub in #5561
- Add EmbeddingGeneratorOptions.Dimensions by @stephentoub in #5563
- Structured output improvements (continuation of PR 5522) by @SteveSandersonMS in #5560
- Work around fixed bug in System.Memory.Data by @stephentoub in #5569
- Update M.E.AI.AzureAIInference for its beta2 release by @stephentoub in #5558
- [release/9.0] Merging changes from main into release branch for November release by @joperezr in #5602
New Contributors
- @captainsafia made their first contribution in #4743
- @kzu made their first contribution in #5504
- @carolineRe13 made their first contribution in #5478
Full Changelog: v8.10.0...v9.0.0