.NET + AI 生态系统工具和 SDK

.NET 生态系统提供了许多强大的工具、库和服务来开发 AI 应用程序。 .NET 支持云和本地 AI 模型连接、适用于各种 AI 和矢量数据库服务的许多不同的 SDK 以及其他工具,有助于构建范围和复杂性不同的智能应用。

重要

本文中介绍的所有 SDK 和服务并非都由Microsoft维护。 在考虑 SDK 时,请务必评估其质量、许可、支持和兼容性,以确保它们满足你的要求。

Microsoft.Extensions.AI 库

Microsoft.Extensions.AI 是一组核心 .NET 库,提供统一的 C# 抽象层,用于与 AI 服务交互,例如小型和大型语言模型(SLM 和 LLM)、嵌入和中间件。 这些 API 是在与 .NET 生态系统中的开发人员(包括语义内核)协作创建的。 低级别 API(例如 IChatClient ,和 IEmbeddingGenerator<TInput,TEmbedding>)是从语义内核中提取的,并已移动到 Microsoft.Extensions.AI 命名空间中。

Microsoft.Extensions.AI 提供可由各种服务实现的抽象,所有这些概念都遵循相同的核心概念。 此库不旨在提供针对任何特定提供商服务定制的 API。 Microsoft.Extensions.AI目标是在 .NET 生态系统中充当一个统一层,使开发人员能够选择他们的首选框架和库,同时确保整个生态系统之间的无缝集成和协作。

📦 Microsoft.Extensions.VectorData.Abstractions 包提供了一个统一的抽象层,用于与各种矢量存储进行交互。 它允许在矢量存储(如 Qdrant、Azure SQL、CosmosDB、MongoDB、ElasticSearch 等)中存储已处理的区块。 有关详细信息,请参阅 生成 .NET AI 矢量搜索应用

📦 Microsoft.Extensions.DataIngestion 包提供用于数据引入的基础 .NET 构建基块。 它使开发人员能够读取、处理和准备 AI 和机器学习工作流的文档,特别适用于检索增强生成(RAG)场景。 有关详细信息,请参阅 数据引入

Microsoft代理框架

如果想要使用低级别服务,例如 IChatClientIEmbeddingGenerator<TInput,TEmbedding>,你可以直接从应用中引用 Microsoft.Extensions.AI.Abstractions 包。 但是,如果要生成具有更高级别的业务流程功能的代理 AI 应用程序,则应使用 Microsoft Agent Framework。 代理框架在Microsoft.Extensions.AI.Abstractions包的基础上构建,并为包括 OpenAI、Azure OpenAI、Azure AI Foundry 等不同服务提供IChatClient的具体实现。

对于需要通过高级业务流程、多代理协作以及企业级安全性和可观测性构建代理 AI 系统的 .NET 应用,建议使用此框架。

Agent Framework 是一个生产就绪的开源框架,它汇集了语义内核和 Microsoft Research 的 AutoGen 的最佳功能。 代理框架提供:

  • 多代理业务流程:支持顺序、并发、群聊、交接和磁性(其中主代理指导其他代理)的业务流程模式。
  • 云计算和提供商灵活性:利用插件和连接器模型实现与云无关(如容器、本地或多云环境)和与提供商无关的方案(例如 OpenAI 或 Azure AI Foundry)。
  • 企业级功能:内置可观测性(OpenTelemetry)、Microsoft Entra 安全集成,以及负责任的 AI 功能,包括提示注入保护和任务遵守监视。
  • 基于标准的互作性:与开放标准(如代理到代理(A2A)协议和模型上下文协议(MCP)集成,以便进行代理发现和工具交互。

有关详细信息,请参阅 Microsoft Agent Framework 文档

.NET 的语义内核

语义内核 是一个开源库,可在 .NET 应用中启用 AI 集成和业务流程功能。 语义内核依赖于Microsoft.Extensions.AI.Abstractions包,并提供了连接器,这些连接器为不同的服务(包括 OpenAI、Amazon Bedrock 和 Google Gemini)提供了具体的IChatClientIEmbeddingGenerator<TInput,TEmbedding>实现。

但是,对于需要代理功能、多代理业务流程或企业级可观测性和安全性的新应用程序,建议的框架 Microsoft代理框架

用于生成 AI 应用的 .NET SDK

根据目标平台或 AI 模型,可以使用许多不同的 SDK 生成具有 AI 功能的 .NET 应用。 OpenAI 模型具备强大的生成式 AI 功能,而其他 Azure AI 服务则为各种特定场景提供智能解决方案。

适用于 OpenAI 模型的 .NET SDK

NuGet 包 支持的模型 维护商或供应商 文档
Microsoft.Agents.AI.OpenAI OpenAI 模型
Azure OpenAI 支持的模型
Microsoft代理框架 (Microsoft) Agent Framework 文档
Microsoft.SemanticKernel OpenAI 模型
Azure OpenAI 支持的模型
语义内核 (Microsoft) 语义内核文档
Azure OpenAI SDK Azure OpenAI 支持的模型 用于 .NET 的 Azure SDK (Microsoft) Azure OpenAI 服务文档
OpenAI SDK OpenAI 支持的模型 适用于 .NET 的 OpenAI SDK (OpenAI) OpenAI 服务文档

适用于 Azure AI 服务的 .NET SDK

Azure 提供了许多其他 AI 服务来生成特定的应用程序功能和工作流。 其中大多数服务都提供 .NET SDK,用于将其功能集成到自定义应用中。 下表显示了一些最常用的服务。 有关可用服务和学习资源的完整列表,请参阅 Azure AI 服务文档。

服务 说明
Azure AI 搜索 将 AI 支持的云搜索引入你的移动应用和 Web 应用。
Azure AI 内容安全 检测不需要的内容或冒犯性内容。
Azure AI 文档智能 将文档转换为智能数据驱动解决方案。
Azure AI 语言 使用行业领先的自然语言理解功能构建应用。
Azure AI 语音 语音转文本、文本转语音、翻译和说话人辨识。
Azure AI 翻译器 支持 100 多种语言和方言的 AI 支持的翻译技术。
Azure AI 视觉技术 分析图像和视频中的内容。

使用本地 AI 模型开发

.NET 应用程序还可以与本地 AI 模型相连接,以适应许多不同的开发场景。 Microsoft代理框架 是使用 .NET 连接到本地模型的建议工具。 此框架可以连接到跨各种平台托管的许多不同的模型,并抽象出较低级别的实现详细信息。

例如,可以使用 Ollama通过 .NET 连接到本地 AI 模型,包括由 Microsoft 开发的多个小型语言模型(SLM):

模型 说明
phi3 模型 一系列功能强大的 SLM,提供突破性的性能,同时实现低成本和低延迟。
orca 模型 对用户提供的数据进行推理、阅读理解、数学问题解决和文本摘要等任务中的研究模型。

注意

上述 SLA 也可以托管在其他服务(如 Azure)上。

后续步骤