dotnet / extensions

This repository contains a suite of libraries that provide facilities commonly needed when creating production-ready applications.
MIT License
2.63k stars 752 forks source link

Microsoft.Extensions.AI.* future plans #5490

Closed e1em3ntoDX closed 2 weeks ago

e1em3ntoDX commented 2 weeks ago

Hi,

I recently read your blog post about the exciting new libraries. At DevExpress, we are eager to transition our implementation to use the new API members you’ve introduced, replacing our own (you can find details about our AI-powered enhancements in this blog post by Daniel Roth). However, we have a few questions, and your answers will influence our decision:

  1. Our set of component libraries for multiple platforms will target .NET 4.6.2 and .NET 8 as the minimum supported versions in the next release that we scheduled to early December. Could you please confirm that .NET 8 support for these libraries will not be dropped once you release a stable version?
  2. Do you anticipate any significant changes to the API? We plan to leverage the IChatClient interface and all its members.
  3. Do you intend to introduce an API to support  OpenAI Assistants in the future?

Cheers, Dmitry

Product Manager @ DevExpress

stephentoub commented 2 weeks ago

Thanks!

Could you please confirm that .NET 8 support for these libraries will not be dropped once you release a stable version?

In this regard, the Microsoft.Extensions.AI libraries are on the same plan as the rest of the core libraries produced by the .NET team. They have assets for all in-support versions of the platform. That means the 9.0 versions of the package include assets for .NET 8 and .NET 9 (but not .NET 6, which will be out of support by the time the 9.0 packages GA). I expect the Microsoft.Extensions.AI.Abstractions and Microsoft.Extensions.AI libraries will GA with the same assets they currently have, which is net9.0, net8.0, net462, and netstandard2.0.

Do you anticipate any significant changes to the API? We plan to leverage the IChatClient interface and all its members.

At the moment, we're not anticipating any significant changes, but we are currently shipping the libraries as preview because we're reserving the right to react to feedback and fix anything that's considered problematic. At a minimum, I do expect there will be at least minor tweaks to the surface area here and there before it's all done. And we do very much want to hear about both things that work really well for folks and things that are problematic, sooner rather than later, so that we can appropriately react to those and ensure the APIs are great for the long-term. That said, the shape that's currently there is based on almost two years of experience with similar APIs in Semantic Kernel, work done to understand commonalities between all these systems as part of Azure AI Inference APIs, and doing our own implementations of these abstractions on a multitude of systems.

Do you intend to introduce an API to support OpenAI Assistants in the future?

Right now we're focused on abstractions for which there are many different implementations / services that all map to the same concepts. We do not plan to ship any APIs specific to a particular provider's services. We're very much focused on being glue for the .NET ecosystem rather than being a framework meant to surplant others; we simply want everyone to be able to pick the framework / libraries they want to use while still being able to participate in an ecosystem with everyone else. As patterns around agents solidify, it's quite possible we'd look at introducing new abstractions focused on such patterns, of which one possible implementation is based on OpenAI assistants. We are also looking at whether IChatClient might be relevant as well, eg getting an IChatClient to represent a particular thread of conversation with an assistant. For now at least, we'd recommend folks looking to use OpenAI assistants use one of the existing libraries for doing so, such as the OpenAI library, Semantic Kernel's agents framework (which includes an implementation based on OpenAI assistants), etc.