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
CreateJsonSchematolerate 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
AIJsonUtilitiesby @eiriktsarpalis in #6383 - Remove CacheOptions from DiskBasedResponseCache by @shyamnamboodiripad in #6395
- Add back net9.0 version of the aieval dotnet tool by @shyamnamboodiripad in #6396
- Add some additional documentation around usage of cache, and CSP properties on report by @peterwald in #6377
- Add ChatOptions.RawRepresentation by @jozkee in #6319
- Bump vite from 6.2.6 to 6.3.4 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript by @dependabot in #6354
- Avoid caching in CachingChatClient when ConversationId is set by @stephentoub in #6400
- Add comment for LoggingChatClient et al trace-level logging by @stephentoub in #6391
- Fix test validation of aggregate usage counts by @stephentoub in #6401
- Add BinaryEmbedding by @stephentoub in #6398
- Some API related fixes for the evaluation libraries by @shyamnamboodiripad in #6402
- Allow image rendering in evaluation report by @shyamnamboodiripad in #6407
- Fix streaming chat response example by @gewarren in #6408
- Move AIFunctionFactory down to M.E.AI.Abstractions by @stephentoub in #6412
- Fix handling of tool calls with some OpenAI endpoints by @stephentoub in #6405
- Delete Microsoft.Extensions.AI.Abstractions APIs marked [Obsolete] during preview by @jeffhandley in #6414
- Bump versions of dependencies needed for the MEAI Template by @jeffhandley in #6410
- Fixes in Microsoft.Extensions.Telemetry README.md by @evgenyfedorov2 in #6406
- Add missing [DebuggerDisplay] on AIFunctionArguments by @stephentoub in #6422
- Add WriteAsync overrides to stream helper in AIFunctionFactory by @stephentoub in #6419
- Update CHANGELOGs for M.E.AI by @stephentoub in #6416
- Replace Type targetType AIFunctionFactory.Create parameter with a func by @stephentoub in #6424
- Remove debug-level logging of updates in LoggingChatClient by @stephentoub in #6425
- Add an AIJsonSchemaTransformOptions property inside AIJsonSchemaCreateOptions and mark redundant properties in the latter as obsolete. by @eiriktsarpalis in #6427
- Eliminate ingestion cache from AI Chat Web template by @SteveSandersonMS in #6428
- Update the template test README with snapshot update instructions by @MackinnonBuck in #6431
- AI Chat Web template fixes for Azure AI Search by @SteveSandersonMS in #6429
- Add security comments for GetResponseAsync/GetStreamingResponseAsync by @jeffhandley in #6386
- Add RawRepresentationFactory to other options types by @jozkee in #6433
- Remove unused API in Safety package by @shyamnamboodiripad in #6439
- Ensure the type keyword is included when generating schemas for nullable enums. by @eiriktsarpalis in #6440
- Remove obsolete members from AIJsonSchemaCreateOptions by @jeffhandley in #6432
- [9.5] Remove unused API in Safety package (#6439) by @shyamnamboodiripad in #6442
- Couple of fixes for safety evaluators by @shyamnamboodiripad in #6444
- Use RawRepresentationFactory on AzureAIInference embedding generators by @jozkee in #6445
- Mark Microsoft.Extensions.AI and Microsoft.Extensions.AI.Abstractions as stable by @jeffhandley in #6446
- Mark Microsoft.Extensions.AI.Evaluation.* Libraries as stable by @peterwald in #6450
- Fix issues in the MEAI Templates by @jeffhandley in #6454
New Contributors
Full Changelog: v9.4.0...v9.5.0