.NET + AI 生态系统概述

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

重要

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

.NET 的语义内核

语义内核是一种开源 SDK,可在 .NET 应用中启用 AI 集成和业务流程功能。 对于将一个或多个 AI 服务与其他 API 或 Web 服务、数据存储和自定义代码结合使用的 .NET 应用程序,此 SDK 通常是推荐的 AI 编排工具。 语义内核以以下方式使企业开发人员受益:

  • 简化将 AI 功能集成到现有应用程序中的过程,从而为企业产品提供统一的解决方案。
  • 通过可降低复杂性的抽象,最大限度地缩短使用不同 AI 模型或服务的学习曲线。
  • 通过减少 AI 模型提示和响应的不可预测行为来提高可靠性。 可以微调提示并计划任务,以创建可控且可预测的用户体验。

有关更多信息,请参阅语义内核文档

用于生成 AI 应用的 .NET SDK

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

适用于 OpenAI 模型的 .NET SDK

NuGet 包 支持的模型 维护商或供应商 文档
Microsoft.SemanticKernel OpenAI 模型
Azure OpenAI 支持的模型
语义内核 (Microsoft) 语义内核文档
Azure OpenAI SDK Azure OpenAI 支持的模型 Azure SDK for .NET (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 模型相连接,以适应许多不同的开发场景。 语义内核是使用 .NET 连接本地模型的推荐工具。 语义内核可以连接到托管在各种平台上的许多不同模型,并将较低级别的实现详细信息抽象化。

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

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

注意

上述 SLM 也可以托管在其他服务上,例如 Azure。

连接到矢量数据库和服务

AI 应用程序通常使用数据矢量数据库和服务来提高相关性并提供自定义功能。 其中许多服务为 .NET 提供本机 SDK,而另一些服务则提供 REST 服务,可以通过自定义代码进行连接。 语义内核提供了一个可扩展的组件模型,让你能够使用不同的矢量存储,而无需了解每个 SDK。

语义内核为以下矢量数据库和服务提供连接器:

矢量服务 语义内核连接器 .NET SDK
Azure AI 搜索 Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB for MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL 服务器 Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL 数据库 Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Chroma Microsoft.SemanticKernel.Connectors.Chroma NA
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Client
MongoDB Atlas 矢量搜索 Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone REST API
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Client
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Weaviate Microsoft.SemanticKernel.Connectors.Weaviate REST API

请访问每个服务的文档,了解 .NET SDK 和 API 支持。

其他选项

本文总结了 .NET 生态系统中的工具和 SDK,重点介绍为 .NET 提供官方支持的服务。 根据应用开发的需求和阶段,你可能还需要查看 .NET + AI 资源的非官方列表中的生态系统的开源选项。 Microsoft 不是其中许多项目的维护商,因此请务必查看其质量、许可和支持。

后续步骤