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 AImultiple 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
defaultkeyword 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 dependencies on .NET 8 and lower back to 8.0.x by @stephentoub in #6230
- M.E.AI.Abstractions - Speech to Text Abstraction by @rogerbarreto in #5838
New Contributors
- @danielwinkler made their first contribution in #6064
- @timheuer made their first contribution in #6117
- @rogerbarreto made their first contribution in #5838
Full Changelog: v9.3.0...v9.4.0