Skip to content

Conversation

MackinnonBuck
Copy link
Member

@MackinnonBuck MackinnonBuck commented May 12, 2025

Microsoft Reviewers: Open in CodeFlow

@MackinnonBuck MackinnonBuck requested a review from a team as a code owner May 12, 2025 22:44
@github-actions github-actions bot added the area-ai-templates Microsoft.Extensions.AI.Templates label May 12, 2025
Copy link
Member

@jeffhandley jeffhandley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I thought I'd seen mention of such a tool and I couldn't remember/find where we'd mentioned it.

@jeffhandley jeffhandley merged commit 5444639 into main May 13, 2025
7 checks passed
@jeffhandley jeffhandley deleted the mbuck/update-template-test-readme branch May 13, 2025 03:59
jeffhandley added a commit that referenced this pull request May 15, 2025
…es (#6451)

* Translate OpenAI refusals to ErrorContent (#6393)

Refusals in OpenAI are errors reported when the service can't generate an output that matches the requested schema. Translate refusals to ErrorContent now that we have it.

* Add JSON schema transformation functionality to `AIJsonUtilities` (#6383)

* Add initial schema transformation functionality and incorporate into the OpenAI leaf client.

* Update all leaf client implementions, improve naming, add testing.

* Remove redundant suppressions

* Address feedback.

* Add ChatOptions.RawRepresentationFactory (#6319)

* Look for OpenAI.ChatCompletionOptions in top-level additional properties and stop looking for individually specific additional properties

* Add RawRepresentation to ChatOptions and use it in OpenAI and AzureAIInference

* Remove now unused locals

* Add [JsonIgnore] and update roundtrip tests

* Overwirte properties only if the underlying model don't specify it already

* Clone RawRepresentation

* Reflection workaround for ToolChoice not being cloned

* Style changes

* AI.Inference: Bring back propagation of additional properties

* Don't use 0.1f, it doesn't roundtrip properly in .NET Framework

* Add RawRepresentationFactory instead of object? property

* Augment remarks to discourage returning shared instances

* Documentation feedback

* AI.Inference: keep passing TopK as AdditionalProperty if not already there

* Fix streaming chat response example (#6408)

* Move AIFunctionFactory down to M.E.AI.Abstractions (#6412)

* Remove AIFunctionFactory dependency on M.E.DI

This means reverting the recent changes to it that:
- Special-cased KeyedServices
- Special-cased IServiceProviderIsService
- Used ActivatorUtilities.CreateInstance

* Move AIFunctionFactory down to M.E.AI.Abstractions

* Add CreateInstance delegate to AIFunctionFactoryOptions

To enable use of ActivatorUtilities.CreateInstance or alternative.

* Add some comments

* Fix handling of tool calls with some OpenAI endpoints (#6405)

* Fix handling of tool calls with some endpoints

Most assistant messages containing tool calls don't contain text as well (though some can). In such a case, we were still creating the assistant with empty text. While OpenAI's service permits that, some other endpoints are more finicky about it. This avoids doing so.

* Reduce to single iteration through assistant content

* Delete Microsoft.Extensions.AI.Abstractions APIs marked [Obsolete] during preview (#6414)

* Add WriteAsync overrides to stream helper in AIFunctionFactory (#6419)

We use JsonSerializer.SerializeAsync but were missing the async overrides. As with MemoryStream, these don't need to queue.

* Replace Type targetType AIFunctionFactory.Create parameter with a func (#6424)

* Add an AIJsonSchemaTransformOptions property inside AIJsonSchemaCreateOptions and mark redundant properties in the latter as obsolete. (#6427)

* Add an AIJsonSchemaTransformOptions property inside AIJsonSchemaCreateOptions and mark redundant properties in the latter as obsolete.

* s/inferred/created

* Eliminate ingestion cache from AI Chat Web template (#6428)

* Begin updating to latest MEVD

* Reimplement JsonVectorStore to match updated MEVD APIs

* Remove ingestion cache and track ingestion status inside the vector DB

* Track the document metadata in a separate collection so we don't have to fetch literally everything from the vector DB in order to update ingestion

* Fix equality comparison issue with Qdrant connector

* Tidying

* More tidying

* Update MEAI.Templates test snapshots

---------

Co-authored-by: Jeff Handley <[email protected]>

* Update the template test README with snapshot update instructions (#6431)

* AI Chat Web template fixes for Azure AI Search (#6429)

* AI Chat Web template fixes for Azure AI Search

* Update snapshots

* Add security comments for chat clients (#6386)

* Remove unused select param (#6341)

CreateRecordsForDocumentAsync includes `Select((pair, index) =>` but index is never used

Co-authored-by: Jeff Handley <[email protected]>

* Add RawRepresentationFactory to other options types (#6433)

* Add RawRepresentationFactory to other options types

* Undo changes in Azure.AI.Inference

* Address documentation feedback

* Ensure the type keyword is included when generating schemas for nullable enums. (#6440)

* Remove obsolete members from AIJsonSchemaCreateOptions (#6432)

* Use RawRepresentationFactory on AzureAIInference embedding generators (#6445)

* Mark Microsoft.Extensions.AI and Microsoft.Extensions.AI.Abstractions as stable (#6446)

* Bump ICSharpCode.Decompiler for record struct support in ApiChief tool

Needed the fix for icsharpcode/ILSpy#3159 to fix "record struct" formatting (it was "recordstruct" before the fix).

* Generate ApiChief baselines for MEAI libraries

Ran .\scripts\MakeApiBaselines.ps1 and discarded other libraries' updates.

* Hand-edit MEAI ApiChief baseline to fix params ReadOnlySpan

Params collections are not yet supported in ICSharpCode.Decompiler:
icsharpcode/ILSpy#829

The result is an emitted 'scoped' keyword instead of 'params'. This was edited by hand in the baseline MEAI file.

* Mark Microsoft.Extensions.AI and Microsoft.Extensions.AI.Abstractions as stable

* Update MEAI and MEAI.Abstractions NuGet package documentation

* Update NuGet package documentation for MEAI implementation packages

* Update MEAI.Templates package references, including SemanticKernel for a coherent build.

* Lower OllamaSharp for integration tests to use version available on feed

* Empty the ApiChief baselines for Ollama, AzureAIInference, and OpenAI adapters since they are not shipping stable

* Apply code review feedback to the MEAI package READMEs

* Update MEAI.Templates test snapshots for version bumps

* Apply documentation review feedback to the MEAI package READMEs

* Add comments to the MEAI API baseline file for the hand-editing required

* Restore documentation blurb into Microsoft.Extensions.AI.AzureAIInference per other feedback

* Use stable version for MEAI in templates

* Mark Microsoft.Extensions.AI.Evaluation.* Libraries as stable (#6450)

* Mark Microsoft.Extensions.AI packages stable

All packages except Microsoft.Extensions.AI.Evaluation.Safety are being marked stable.

* Remove primary constructors from API json files.

* Remove more primary constructors from API Chief json

---------

Co-authored-by: Jeff Handley <[email protected]>

---------

Co-authored-by: Stephen Toub <[email protected]>
Co-authored-by: Eirik Tsarpalis <[email protected]>
Co-authored-by: David Cantú <[email protected]>
Co-authored-by: Genevieve Warren <[email protected]>
Co-authored-by: Steve Sanderson <[email protected]>
Co-authored-by: Mackinnon Buck <[email protected]>
Co-authored-by: Jon Galloway <[email protected]>
Co-authored-by: Peter Waldschmidt <[email protected]>
@github-actions github-actions bot locked and limited conversation to collaborators Jun 12, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-ai-templates Microsoft.Extensions.AI.Templates
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants