.NET + AI エコシステムの概要

.NET のエコシステムからは、AI アプリケーションを開発するための強力なツール、ライブラリ、サービスが多数提供されています。 .NET では、クラウドとローカルの両方の AI モデル接続に加えて、AI とベクトル データベースの多数のサービスの SDK や、その他のツールがサポートされているため、さまざまなスコープと複雑さのインテリジェント アプリを構築できます。

重要

このドキュメントで紹介しているすべての SDK とサービスが Microsoft によって管理されているわけではありません。 SDK の利用を検討するときは、その品質、ライセンス、サポート、互換性の評価を必ず実施して、実際の要件を満たしていることを確認してください。

.NET 向けの Semantic Kernel

Semantic Kernel は、開発される .NET アプリでの AI 統合とオーケストレーションの機能を実現するオープンソースの SDK です。 この SDK は、.NET アプリで 1 つまたは複数の AI サービスを他の API または Web サービス、データ ストア、カスタム コードと組み合わせて使用する場合の AI オーケストレーション ツールとして一般的に推奨されます。 Semantic Kernel は、エンタープライズ開発者にとって次の点で役に立ちます。

  • 既存のアプリケーションへの AI 機能の統合を合理化し、エンタープライズ製品のまとまりのあるソリューションを実現します。
  • 複雑さを軽減する抽象化を提供することで、さまざまな AI モデルまたはサービスを操作する学習曲線を最小限に抑えます。
  • AI モデルからの予期しないプロンプトと応答動作を減らすことで、信頼性が向上します。 プロンプトを最適化し、タスクを計画して、制御された予測可能なユーザー エクスペリエンスを作成できます。

詳細については、Semantic Kernel のドキュメントを参照してください。

AI アプリを構築するための .NET SDK

AI 機能を備えたアプリを .NET で構築するためのさまざまな SDK が提供されており、ターゲットのプラットフォームまたは AI モデルに応じて選ぶことができます。 OpenAI モデルの特徴は強力な生成 AI 機能ですが、その他の Azure AI サービスは、さまざまな特定シナリオのためのインテリジェントなソリューションを提供します。

OpenAI モデルのための .NET SDK

NuGet パッケージ サポートされているモデル 保守管理者またはベンダー ドキュメント
Microsoft.SemanticKernel OpenAI モデル
Azure OpenAI でサポートされるモデル
Semantic Kernel (Microsoft) Semantic Kernel のドキュメント
Azure OpenAI SDK Azure OpenAI でサポートされるモデル Azure SDK for .NET (Microsoft) Azure OpenAI Service のドキュメント
OpenAI SDK OpenAI でサポートされるモデル OpenAI SDK for .NET (OpenAI) OpenAI サービスのドキュメント

Azure AI サービスのための .NET SDK

Azure では、その他にも特定のアプリケーション機能とワークフローを構築するための AI サービスが多数提供されています。 これらのサービスのほとんどに .NET SDK があり、その機能をカスタム アプリに統合できます。 よく使用されるサービスの代表的なものを次の表に示します。 利用可能なサービスと学習リソースすべての一覧については、Azure AI サービスのドキュメントを参照してください。

サービス 説明
Azure AI Search AI を利用したクラウド検索をモバイルおよび Web アプリで実現できます。
Azure AI コンテンツの安全性 望ましくない、または不快感を与えるコンテンツを検出します。
Azure AI Document Intelligence ドキュメントをインテリジェントなデータ ドリブン ソリューションに変換します。
Azure AI Language 業界をリードする自然言語理解機能を備えたアプリを構築します。
Azure AI 音声 音声テキスト変換、テキスト読み上げ、翻訳、話者認識。
Azure AI Translator AI 搭載の翻訳テクノロジ。100 を超える言語と方言をサポートします。
Azure AI Vision 画像と動画のコンテンツを分析します。

ローカル AI モデルを使用して開発する

.NET アプリは、ローカルの AI モデルに接続することもできるため、さまざまな開発シナリオに対応できます。 Semantic Kernel は、.NET を使用してローカル モデルに接続する場合に推奨されるツールです。 Semantic Kernel は、さまざまなプラットフォームでホストされているさまざまなモデルに接続でき、下位レベルの実装の詳細を抽象化します。

たとえば、Ollama を使用すると、Microsoft が開発したいくつかの Small Language Models (SLM) を含む、.NET を備えたローカル AI モデルに接続できます。

Model 説明
phi3 モデル 低コストと低遅延で画期的なパフォーマンスを発揮する強力な SLM ファミリーす。
orca モデル ユーザーから与えられたデータからの推論、読解、数学の問題解決、テキストの要約などのタスクにおけるリサーチ モデル。

Note

上記の SLM は、Azure を始めとする他のサービス上でホストすることもできます。

ベクトル データベースとサービスに接続する

AI アプリケーションでは、多くの場合、データ ベクター データベースとサービスを使用して関連性を向上させ、カスタマイズされた機能を提供します。 これらのサービスの多くにネイティブの .NET 向け SDK がありますが、その他のサービスでも REST サービスが提供されており、カスタム コードを通して接続できます。 セマンティック カーネルには拡張可能なコンポーネント モデルが用意されているため、各 SDK を学習しなくても、さまざまなベクター ストアを使用できます。

セマンティック カーネルには、次のベクター データベースとサービス用のコネクタがあります。

ベクトル サービス Semantic Kernel コネクタ .NET SDK
Azure AI Search Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
NoSQL 用 Azure Cosmos DB Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB for MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL Server 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 Vector Search 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 を正式にサポートするサービスに焦点を当てて、.NET エコシステムのツールと SDK をまとめています。 アプリ開発のニーズや段階に応じて、.NET + AI リソースの非公式な一覧でエコシステムのオープンソース オプションを確認することもできます。 Microsoft はこれらの多くのプロジェクトの保守管理者ではないため、品質、使用許諾、サポートを必ず確認してください。

次のステップ