Udostępnij za pośrednictwem


Ujednolicone bloki konstrukcyjne sztucznej inteligencji dla platformy .NET przy użyciu Microsoft.Extensions.AI

Ekosystem .NET zapewnia abstrakcje umożliwiające integrowanie usług sztucznej inteligencji z aplikacjami i bibliotekami platformy .NET przy użyciu Microsoft.Extensions.AI bibliotek i Microsoft.Extensions.AI.Abstractions . Zespół platformy .NET ulepszył również podstawowe biblioteki Microsoft.Extensions.* przy użyciu tych abstrakcji dla aplikacji i bibliotek sztucznej inteligencji platformy .NET. W poniższych sekcjach nauczysz się:

  • Podstawowe pojęcia i możliwości Microsoft.Extensions.AI bibliotek.
  • Jak pracować z abstrakcjami sztucznej inteligencji w aplikacjach i oferowanych przez nie korzyści.
  • Podstawowe pojęcia dotyczące oprogramowania pośredniczącego sztucznej inteligencji.

Aby uzyskać więcej informacji, zobacz Introduction to Microsoft.Extensions.AI.

Jaka jest biblioteka Microsoft.Extensions.AI?

Microsoft.Extensions.AI to zestaw podstawowych bibliotek platformy .NET utworzonych we współpracy z deweloperami w ekosystemie platformy .NET, w tym semantyczne jądro. Te biblioteki zapewniają ujednoliconą warstwę abstrakcji języka C# na potrzeby interakcji z usługami sztucznej inteligencji, takimi jak małe i duże modele językowe (SLM i LLM), osadzanie i oprogramowanie pośredniczące.

Diagram architektury bibliotek rozszerzeń sztucznej inteligencji.

Microsoft.Extensions.AI zapewnia abstrakcje, które mogą być implementowane przez różne usługi, wszystkie przestrzegając tych samych podstawowych pojęć. Ta biblioteka nie jest przeznaczona do dostarczania interfejsów API dostosowanych do usług określonego dostawcy. Microsoft.Extensions.AI Celem jest działanie jako ujednolicająca warstwa w ekosystemie platformy .NET, umożliwiając deweloperom wybór preferowanych struktur i bibliotek przy jednoczesnym zapewnieniu bezproblemowej integracji i współpracy w ekosystemie.

Praca z abstrakcjami dla typowych usług sztucznej inteligencji

Możliwości sztucznej inteligencji szybko ewoluują, a wzorce pojawiają się dla typowych funkcji:

  • Funkcje czatu w celu konwersacji monitują o sztuczną inteligencję w celu uzyskania informacji lub analizy danych.
  • Generowanie osadzania w celu zintegrowania z funkcjami wyszukiwania wektorowego.
  • Wywoływanie narzędzia w celu integracji z innymi usługami, platformami lub kodem.

Biblioteka Microsoft.Extensions.AI udostępnia abstrakcje dla tych typów zadań, dzięki czemu deweloperzy mogą skupić się na kodowaniu w oparciu o koncepcyjne możliwości sztucznej inteligencji, a nie na konkretnych platformach lub implementacjach dostawców. Ujednolicone abstrakcje mają kluczowe znaczenie dla deweloperów, aby efektywnie pracować w różnych źródłach.

Na przykład IChatClient interfejs umożliwia korzystanie z modeli językowych od różnych dostawców niezależnie od tego, czy łączysz się z usługą Azure OpenAI, czy uruchamiasz lokalną instalację Ollama. Dowolny pakiet platformy .NET, który udostępnia klienta sztucznej inteligencji, może zaimplementować IChatClient interfejs, umożliwiając bezproblemową integrację z użyciem kodu platformy .NET:

IChatClient client =
    environment.IsDevelopment ?
    new OllamaChatClient(...) :
    new AzureAIInferenceChatClient(...);

Następnie niezależnie od używanego dostawcy możesz wysyłać żądania w następujący sposób:

var response = await chatClient.CompleteAsync(
      "Translate the following text into Pig Latin: I love .NET and AI");

Console.WriteLine(response.Message);

Te abstrakcje umożliwiają korzystanie z idiomatycznego kodu C# w różnych scenariuszach z minimalnymi zmianami kodu, niezależnie od tego, czy używasz różnych usług do programowania i produkcji, adresowania scenariuszy hybrydowych, czy eksplorowania innych dostawców usług.

Autorzy bibliotek, którzy implementują te abstrakcji, sprawiają, że ich klienci współdziałają z szerszym Microsoft.Extensions.AI ekosystemem. Interfejsy API specyficzne dla usługi pozostają dostępne w razie potrzeby, umożliwiając konsumentom kodowanie względem standardowych abstrakcji i przekazywanie do zastrzeżonych interfejsów API tylko wtedy, gdy jest to wymagane.

Microsoft.Extensions.AI Udostępnia implementacje dla następujących usług za pośrednictwem dodatkowych pakietów:

W przyszłości implementacje tych Microsoft.Extensions.AI abstrakcji będą częścią odpowiednich bibliotek klienckich, zamiast wymagać instalacji dodatkowych pakietów.

Implementacje oprogramowania pośredniczącego dla usług sztucznej inteligencji

Nawiązywanie połączenia z usługami sztucznej inteligencji i korzystanie z nich jest tylko jednym z aspektów tworzenia niezawodnych aplikacji. Aplikacje gotowe do produkcji wymagają dodatkowych funkcji, takich jak telemetria, rejestrowanie i wywoływanie narzędzi. Microsoft.Extensions.AI Abstrakcje umożliwiają łatwe integrowanie tych składników z aplikacjami przy użyciu znanych wzorców.

W poniższym przykładzie pokazano, jak zarejestrować interfejs OpenAI IChatClient. IChatClient umożliwia dołączanie możliwości w spójny sposób między różnymi dostawcami.

app.Services.AddChatClient(builder => builder
    .UseLogging()
    .UseFunctionInvocation()
    .UseDistributedCache()   
    .UseOpenTelemetry()
    .Use(new OpenAIClient(...)).AsChatClient(...));

Możliwości przedstawione w tym fragmencie Microsoft.Extensions.AI kodu są zawarte w bibliotece, ale są one tylko małym podzbiorem możliwości, które można umieścić w warstwie przy użyciu tego podejścia. Deweloperzy platformy .NET mogą uwidocznić wiele typów oprogramowania pośredniczącego w celu utworzenia zaawansowanych funkcji sztucznej inteligencji.

Kompilowanie przy użyciu Microsoft.Extensions.AI

Możesz zacząć kompilować Microsoft.Extensions.AI przy użyciu w następujący sposób:

  • Deweloperzy bibliotek: jeśli jesteś właścicielem bibliotek, które udostępniają klientom usługi sztucznej inteligencji, rozważ zaimplementowanie interfejsów w bibliotekach. Dzięki temu użytkownicy mogą łatwo zintegrować pakiet NuGet za pośrednictwem abstrakcji.
  • Konsumenci usług: jeśli opracowujesz biblioteki korzystające z usług sztucznej inteligencji, użyj abstrakcji zamiast trwale połączyć się z określoną usługą sztucznej inteligencji. Takie podejście zapewnia użytkownikom elastyczność wyboru preferowanej usługi.
  • Deweloperzy aplikacji: użyj abstrakcji, aby uprościć integrację z aplikacjami. Umożliwia to przenośność między modelami i usługami, ułatwia testowanie i pozorowanie, wykorzystuje oprogramowanie pośredniczące dostarczane przez ekosystem i utrzymuje spójny interfejs API w całej aplikacji, nawet jeśli używasz różnych usług w różnych częściach aplikacji.
  • Współautorzy ekosystemu: jeśli interesuje Cię współtworzenia ekosystemu, rozważ napisanie niestandardowych składników oprogramowania pośredniczącego.

Aby rozpocząć, zapoznaj się z przykładami w repozytorium GitHub dotnet/ai-samples .

Aby zapoznać się z kompleksowej próbki przy użyciu metody Microsoft.Extensions.AI, zobacz eShopSupport.

Następne kroki