如何使用Microsoft.Extensions.AI简化.NET中的AI集成

 更新时间:2024年11月27日 11:27:27   作者:追逐时光者  
Microsoft.Extensions.AI是一个创新的 .NET 库,它为平台开发人员提供了一个内聚的 C# 抽象层,简化了与大型语言模型(LLMs)和嵌入等AI服务的交互,本文给大家介绍如何使用Microsoft.Extensions.AI简化.NET中的AI集成,感兴趣的朋友一起看看吧

项目介绍

Microsoft.Extensions.AI是一个创新的 .NET 库,它为平台开发人员提供了一个内聚的 C# 抽象层,简化了与大型语言模型 (LLMs) 和嵌入等 AI 服务的交互。它支持通过一组一致且标准化的 API 和约定将 AI 功能无缝集成到 .NET 应用程序中。

注意:目前Microsoft.Extensions.AI还是处于预览版,预计该库将在2024年11月的.NET 9版本之前都是保持预览状态(需要收集反馈意见),耐心等待微软官方发布正式版!

项目特色

  • 统一的API:提供一组一致的 API 和约定,用于将 AI 服务集成到 .NET 应用程序中。
  • 灵活性:允许 .NET 库作者使用 AI 服务,而无需绑定到特定提供商,使其适用于任何提供商。
  • 易用性:使 .NET 开发人员能够使用相同的底层抽象试验不同的包,并在整个应用程序中维护单个 API。
  • 组件化:简化新功能的添加,并促进应用程序的组件化和测试。

项目作用

Microsoft.Extensions.AI类库不仅简化了AI功能的集成,还促进了.NET生态系统的创新。它使得开发者可以更加专注于应用程序的业务逻辑和功能实现,而不必花费大量时间和精力在AI服务的集成和调试上。

项目NuGet包

https://www.nuget.org/packages/Microsoft.Extensions.AI

命令安装:

dotnet add package Microsoft.Extensions.AI --version 9.0.0-preview.9.24556.5

AI服务的常见抽象

IChatClient 接口允许使用语言模型,无论是远程托管还是本地运行。任何提供 AI 客户端的 .NET 包都可以实现此接口,从而实现与正在使用的 .NET 代码的无缝集成。

public interface IChatClient : IDisposable 
{ 
    Task<ChatCompletion> CompleteAsync(...); 
    IAsyncEnumerable<StreamingChatCompletionUpdate> CompleteStreamingAsync(...); 
    ChatClientMetadata Metadata { get; } 
    TService? GetService<TService>(object? key = null) where TService : class; 
} 

OpenAI

using OpenAI;
using Microsoft.Extensions.AI;
IChatClient client =
    new OpenAIClient(Environment.GetEnvironmentVariable("OPENAI_API_KEY"))
        .AsChatClient(modelId: "gpt-4o-mini");
var response = await client.CompleteAsync("C#是什么?");
Console.WriteLine(response.Message);

Azure OpenAI

using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Extensions.AI;
IChatClient client =
    new AzureOpenAIClient(
        new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")), 
        new DefaultAzureCredential())
            .AsChatClient(modelId: "gpt-4o-mini");
var response = await client.CompleteAsync("C#是什么?");
Console.WriteLine(response.Message);

参考文章

https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

  • 开源地址:https://github.com/dotnet/extensions

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
  • Gitee开源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

到此这篇关于使用Microsoft.Extensions.AI简化.NET中的AI集成的文章就介绍到这了,更多相关Microsoft.Extensions.AI AI集成内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • asp.net 简单验证码验证实现代码

    asp.net 简单验证码验证实现代码

    网站开发一般登录注册的时候都要用到了 所以写下来给大家参考参考
    2009-09-09
  • C#后台调用前台javascript的五种方法小结

    C#后台调用前台javascript的五种方法小结

    于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件。
    2010-12-12
  • 列举ASP.NET页面之间传递值的几种方式

    列举ASP.NET页面之间传递值的几种方式

    这篇文章主要介绍了列举ASP.NET 页面之间传递值的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • ASP.NET Core WebAPI实现本地化(单资源文件)

    ASP.NET Core WebAPI实现本地化(单资源文件)

    这篇文章主要介绍了ASP.NET Core WebAPI实现本地化(单资源文件),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 详解.NET中负载均衡的使用

    详解.NET中负载均衡的使用

    这篇文章主要介绍了详解.NET中负载均衡的使用,负载均衡即LB,就是将并发的用户请求通过规则后平衡、分摊到多台服务器上进行执行,以此达到压力分摊、数据并行的效果
    2022-06-06
  • .Net动态生成controller遇到的坑

    .Net动态生成controller遇到的坑

    这篇文章主要介绍了dotnet动态生成controller的问题,文中给大家介绍了动态新建type的方案,通过多种解决方案给大家程度剖析,需要的朋友可以参考下
    2022-03-03
  • asp.net简单实现单点登录(SSO)的方法

    asp.net简单实现单点登录(SSO)的方法

    这篇文章主要介绍了asp.net简单实现单点登录(SSO)的方法,结合简单实例形式较为详细的分析了单点登录的原理与asp.net的相关实现技巧,需要的朋友可以参考下
    2015-12-12
  • asp.net cookie的读写实例

    asp.net cookie的读写实例

    先演示简单的cookie读写操作,下次加入des加密解密,敬请期待!
    2009-11-11
  • AspNetPager分页控件UrlRewritePattern参数设置的重写代码

    AspNetPager分页控件UrlRewritePattern参数设置的重写代码

    AspNetPager分页控件UrlRewritePattern参数设置的重写代码,需要的朋友可以参考一下
    2013-02-02
  • .NET6打包部署到Windows Service的全过程

    .NET6打包部署到Windows Service的全过程

    net用了这么久,虽然多数都是部署在centos系统,但也有部署在windows上的情况,下面这篇文章主要给大家介绍了关于.NET6打包部署到Windows Service的相关资料,需要的朋友可以参考下
    2022-10-10

最新评论