Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging release/9.3 branch into main #6082

Merged
merged 13 commits into from
Mar 11, 2025
Merged

Merging release/9.3 branch into main #6082

merged 13 commits into from
Mar 11, 2025

Conversation

joperezr
Copy link
Member

@joperezr joperezr commented Mar 11, 2025

Microsoft Reviewers: Open in CodeFlow

joperezr and others added 13 commits March 5, 2025 03:35
#### AI description  (iteration 1)
#### PR Classification
Release preparation and dependency updates.

#### PR Summary
This pull request updates dependencies and prepares the project for the 9.3 release.
- Updated multiple dependencies to version 9.0.3 in `eng/Version.Details.xml` and `eng/Versions.props`.
- Removed code coverage stage and related jobs from `azure-pipelines.yml`.
- Added setup for private feeds credentials in `eng/pipelines/templates/BuildAndTest.yml`.
- Disabled NU1507 warning in `Directory.Build.props`.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
…mplates project

We are publishing MEAI.Templates before we publish EF.Sqlite 9.0.2, so we need to force a downgrade of the package version in the project template to prevent unresolved packages.

This must be undone or made more durable immediately after initial publication.
- IChatClient no longer bakes mutation of the messages into the contract. The messages are now an `IEnumerable<ChatMessage>` rather than an `IList<ChatMessage>`.
- The purpose for mutation was to allow for multiple messages to be generated as part of an operation. All messages generated are now returned as part of the ChatResponse, which has a Messages rather than Message property.
- Choices have been removed from the surface area, e.g. no ChatResponse.Choices and no ChatResponseUpdate.ChoiceIndex.
Update IChatClient to support multiple return messages

- IChatClient no longer bakes mutation of the messages into the contract. The messages are now an `IEnumerable<ChatMessage>` rather than an `IList<ChatMessage>`.
- The purpose for mutation was to allow for multiple messages to be generated as part of an operation. All messages generated are now returned as part of the ChatResponse, which has a Messages rather than Message property.
- Choices have been removed from the surface area, e.g. no ChatResponse.Choices and no ChatResponseUpdate.ChoiceIndex.

----
#### AI description  (iteration 1)
#### PR Classification
New feature

#### PR Summary
This pull request updates the `IChatClient` to support multiple return messages.
- `src/Libraries/Microsoft.Extensions.AI/ChatCompletion/FunctionInvokingChatClient.cs`: Refactored `GetResponseAsync` and `GetStreamingResponseAsync` methods to handle multiple return messages, aggregate usage data, and process function calls across multiple iterations.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
#### AI description  (iteration 1)
#### PR Classification
Code configuration update to retain preview branding.

#### PR Summary
This pull request updates project files to retain the preview branding by suppressing the final package version.
- `Microsoft.Extensions.AI.Evaluation.Console.csproj`: Added `SuppressFinalPackageVersion` property.
- `Microsoft.Extensions.AI.Evaluation.Quality.csproj`: Added `SuppressFinalPackageVersion` property.
- `Microsoft.Extensions.AI.Evaluation.Reporting.Azure.csproj`: Added `SuppressFinalPackageVersion` property.
- `Microsoft.Extensions.AI.Evaluation.Reporting.csproj`: Added `SuppressFinalPackageVersion` property.
- `Microsoft.Extensions.AI.Evaluation.csproj`: Added `SuppressFinalPackageVersion` property.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
The .NET side code for the `ScenarioRunResult` was recently changed (#dotnet#5998) to include `ChatResponse` (which can contain multiple `ChatMessage`s) in place of a single `ChatMessage`. Unfortunately, we missed updating the TypeScript reporting code to account for this.

This change fixes the problem by updating the deserialization code in TypeScript to match what .NET code serializes.

Cherry-picked from commit `41bbedd0` (dotnet#6061)
* Move GetService down to a non-generic IEmbeddingGenerator interface

* Separate UriContent from DataContent

* Address feedback
…tor (dotnet#6058)

Address M.E.VectorData feedback for IEmbeddingGenerator (dotnet#6058)

* Move GetService down to a non-generic IEmbeddingGenerator interface

* Separate UriContent from DataContent
* For Ollama client, ensure ToChatResponseAsync coalesces text chunks into a single message

* Fix OpenAI case by not treating empty-string response IDs as message boundaries
…otnet#6074)

Fix grouping of ChatResponseUpdate into ChatMessage (dotnet#6074)

* For Ollama client, ensure ToChatResponseAsync coalesces text chunks into a single message

* Fix OpenAI case by not treating empty-string response IDs as message boundaries
@joperezr joperezr requested review from a team as code owners March 11, 2025 20:35
@joperezr joperezr self-assigned this Mar 11, 2025
@joperezr
Copy link
Member Author

This needs to get merged and not squashed.

@joperezr joperezr merged commit 64108d7 into dotnet:main Mar 11, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants