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

ASP.NET教程 2025-08-26

目录

  • 项目介绍
  • 项目特色
  • 项目作用
  • 项目NuGet包
  • AI服务的常见抽象
    • OpenAI
    • Azure OpenAI
  • 参考文章
    • 项目源码地址
      • 优秀项目和框架精选

        项目介绍

        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.*nug*e*t.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 
        { 
            TaskChatCompletion CompleteAsync(...); 
            IAsyncEnumerableStreamingChatCompletionUpdate CompleteStreamingAsync(...); 
            ChatClientMetadata Metadata { get; } 
            TService? GetServiceTService(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.micro*s*of*t.com/dotnet/introducing-microsoft-extensions-ai-preview

        项目源码地址

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

        • 开源地址:https://*githu*b.*com/dotnet/extensions

        优秀项目和框架精选

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

        • GitHub开源地址:https://g*it*hub*.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
        • Gitee开源地址:https://**gitee.co*m/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

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

        您可能感兴趣的文章:
        • springBoot集成Elasticsearch 报错 Health check failed的解决
        • SpringBoot集成E-mail发送各种类型邮件
        • WINPE3.0集成RAID阵列卡驱动的实现方法
        • struts2集成javamail发邮件示例详解