写点什么

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

作者:追逐时光者
  • 2025-10-20
    广东
  • 本文字数:1493 字

    阅读完需:约 5 分钟

项目介绍

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

发布于: 刚刚阅读数: 2
用户头像

不积跬步无以至千里,不积小流无以成江海! 2020-01-14 加入

微软MVP、华为云HCDE、华为云云享专家、51CTO专家博主、阿里云专家博主、博客园推荐博客、CSDN博客专家、腾讯云创作之星、掘金优秀创作者,一个热爱开源的全栈软件工程师,擅长C#、.NET、Vue等相关技术开发。

评论

发布
暂无评论
使用Microsoft.Extensions.AI简化.NET中的AI集成_.net_追逐时光者_InfoQ写作社区