Dela via


Översikt över .NET + AI-ekosystemet

.NET-ekosystemet innehåller många kraftfulla verktyg, bibliotek och tjänster för att utveckla AI-program. .NET stöder både molnbaserade och lokala AI-modellanslutningar, många olika SDK:er för olika AI- och vektordatabastjänster och andra verktyg som hjälper dig att skapa intelligenta appar med varierande omfattning och komplexitet.

Viktigt!

Alla SDK:er och tjänster som presenteras i det här dokumentet underhålls inte av Microsoft. När du överväger en SDK bör du utvärdera dess kvalitet, licensiering, support och kompatibilitet för att säkerställa att de uppfyller dina krav.

Microsoft.Extensions.AI bibliotek för .NET

Microsoft.Extensions.AI är en uppsättning .NET-kärnbibliotek som skapats i samarbete med utvecklare i .NET-ekosystemet, inklusive semantisk kernel. De här biblioteken tillhandahåller ett enhetligt lager av C#-abstraktioner för att interagera med AI-tjänster, till exempel små och stora språkmodeller (SLA och LLM), inbäddningar och mellanprogram.

Microsoft.Extensions.AI tillhandahåller abstraktioner som kan implementeras av olika tjänster, som alla följer samma grundläggande begrepp. Det här biblioteket är inte avsett att tillhandahålla API:er som är skräddarsydda för någon specifik leverantörs tjänster. Målet Microsoft.Extensions.AI med är att fungera som ett enhetligt lager i .NET-ekosystemet, vilket gör det möjligt för utvecklare att välja önskade ramverk och bibliotek samtidigt som sömlös integrering och samarbete säkerställs i hela ekosystemet.

Semantisk kernel för .NET

Semantisk kernel är en SDK med öppen källkod som möjliggör AI-integrering och orkestreringsfunktioner i dina .NET-appar. Detta SDK är vanligtvis det rekommenderade AI-orkestreringsverktyget för .NET-appar som använder en eller flera AI-tjänster i kombination med andra API:er eller webbtjänster, datalager och anpassad kod. Semantisk kernel gynnar företagsutvecklare på följande sätt:

  • Effektiviserar integreringen av AI-funktioner i befintliga program för att möjliggöra en sammanhängande lösning för företagsprodukter.
  • Minimerar inlärningskurvan för att arbeta med olika AI-modeller eller tjänster genom att tillhandahålla abstraktioner som minskar komplexiteten.
  • Förbättrar tillförlitligheten genom att minska det oförutsägbara beteendet för frågor och svar från AI-modeller. Du kan finjustera frågor och planera uppgifter för att skapa en kontrollerad och förutsägbar användarupplevelse.

Mer information finns i dokumentationen om semantisk kernel.

.NET SDK:er för att skapa AI-appar

Många olika SDK:er är tillgängliga för .NET för att skapa appar med AI-funktioner beroende på målplattformen eller AI-modellen. OpenAI-modeller erbjuder kraftfulla generativa AI-funktioner, medan andra Azure AI-tjänster tillhandahåller intelligenta lösningar för en mängd olika specifika scenarier.

.NET SDK:er för OpenAI-modeller

NuGet-paket Modeller som stöds Underhållare eller leverantör Dokumentation
Microsoft.SemanticKernel OpenAI-modeller
Modeller som stöds av Azure OpenAI
Semantisk kernel (Microsoft) Dokumentation om semantisk kernel
Azure OpenAI SDK Modeller som stöds av Azure OpenAI Azure SDK för .NET (Microsoft) Dokumentation om Azure OpenAI-tjänster
OpenAI SDK OpenAI-modeller som stöds OpenAI SDK för .NET (OpenAI) Dokumentation om OpenAI-tjänster

.NET SDK:er för Azure AI Services

Azure erbjuder många andra AI-tjänster för att skapa specifika programfunktioner och arbetsflöden. De flesta av dessa tjänster tillhandahåller en .NET SDK för att integrera deras funktioner i anpassade appar. Några av de vanligaste tjänsterna visas i följande tabell. En fullständig lista över tillgängliga tjänster och utbildningsresurser finns i Azure AI Services-dokumentationen.

Tjänst beskrivning
Azure AI Search Lägg till AI-baserad molnsökning i dina mobil- och webbappar.
Säkerhet för Azure AI-innehåll Identifiera oönskat eller stötande innehåll.
Azure AI-dokumentinformation Omvandla dokument till intelligenta datadrivna lösningar.
Azure AI Language Skapa appar med branschledande funktioner för förståelse av naturligt språk.
Azure AI Speech Tal till text, text till tal, översättning och talarigenkänning.
Azure AI Translator AI-baserad översättningsteknik med stöd för mer än 100 språk och dialekter.
Azure AI Vision Analysera innehåll i bilder och videor.

Utveckla med lokala AI-modeller

.NET-appar kan också ansluta till lokala AI-modeller för många olika utvecklingsscenarier. Semantisk kernel är det rekommenderade verktyget för att ansluta till lokala modeller med hjälp av .NET. Semantisk kernel kan ansluta till många olika modeller som finns på en mängd olika plattformar och sammanfattar implementeringsinformation på lägre nivå.

Du kan till exempel använda Ollama för att ansluta till lokala AI-modeller med .NET, inklusive flera små språkmodeller (SLA) som utvecklats av Microsoft:

Modell beskrivning
phi3-modeller En familj av kraftfulla SLA:er med banbrytande prestanda till låg kostnad och låg svarstid.
orca-modeller Forskningsmodeller i uppgifter som att resonera över data som tillhandahålls av användaren, läsförståelse, matematisk problemlösning och textsammanfattning.

Kommentar

De föregående SLA:erna kan också finnas på andra tjänster, till exempel Azure.

Ansluta till vektordatabaser och -tjänster

AI-program använder ofta datavektordatabaser och -tjänster för att förbättra relevansen och tillhandahålla anpassade funktioner. Många av dessa tjänster tillhandahåller ett inbyggt SDK för .NET, medan andra erbjuder en REST-tjänst som du kan ansluta till via anpassad kod. Semantisk kernel tillhandahåller en utökningsbar komponentmodell som gör att du kan använda olika vektorlager utan att behöva lära dig varje SDK.

Semantisk kernel tillhandahåller anslutningsappar för följande vektordatabaser och tjänster:

Vektortjänst Semantisk kernelanslutning .NET SDK
Azure AI-sökning Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB för NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB för MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL-server Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL Database 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
Viaviate Microsoft.SemanticKernel.Connectors.Weaviate REST-API

Om du vill identifiera .NET SDK- och API-stöd går du till dokumentationen för respektive tjänst.

Andra alternativ

I den här artikeln sammanfattas verktygen och SDK:erna i .NET-ekosystemet med fokus på tjänster som ger officiellt stöd för .NET. Beroende på dina behov och steg i apputvecklingen kanske du också vill ta en titt på alternativen med öppen källkod för ekosystemet i den inofficiella listan över .NET + AI-resurser. Microsoft är inte underhållare för många av dessa projekt, så se till att granska deras kvalitet, licensiering och support.

Nästa steg