Obsługiwane języki jądra semantycznego
Semantyczne plany jądra dotyczące zapewniania obsługi następujących języków:
- C#
- Python
- Java
Mimo że ogólna architektura jądra jest spójna we wszystkich językach, upewniliśmy się, że zestaw SDK dla każdego języka jest zgodny z typowymi paradygmatami i stylami w każdym języku, aby był natywny i łatwy w użyciu.
Dostępne pakiety zestawu SDK
Pakiety języka C#
W języku C#istnieje kilka pakietów, które ułatwiają upewnienie się, że wystarczy zaimportować funkcje potrzebne dla projektu. W poniższej tabeli przedstawiono dostępne pakiety w języku C#.
Nazwa pakietu | opis |
---|---|
Microsoft.SemanticKernel |
Główny pakiet zawierający wszystko, co należy rozpocząć |
Microsoft.SemanticKernel.Core |
Podstawowy pakiet, który udostępnia implementacje dla programu Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
Abstrakcje podstawowe jądra semantycznego |
Microsoft.SemanticKernel.Connectors.OpenAI |
Łącznik dla interfejsu OpenAI |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Łącznik dla modeli rozpoznawania twarzy |
Microsoft.SemanticKernel.Connectors.Google |
Łącznik dla modeli Google (np. Gemini) |
Microsoft.SemanticKernel.Connectors.MistralAI |
Łącznik modeli Mistral AI |
Microsoft.SemanticKernel.Plugins.OpenApi (Eksperymentalne) |
Umożliwia ładowanie wtyczek ze specyfikacji interfejsu OpenAPI |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Umożliwia korzystanie z szablonów pasków obsługi dla monitów |
Microsoft.SemanticKernel.Yaml |
Zapewnia obsługę serializacji monitów przy użyciu plików YAML |
Microsoft.SemanticKernel.Prompty |
Zapewnia obsługę serializacji monitów przy użyciu plików Monity |
Microsoft.SemanticKernel.Agents.Abstractions |
Udostępnia abstrakcje do tworzenia agentów |
Microsoft.SemanticKernel.Agents.OpenAI |
Zapewnia obsługę agentów interfejsu API Asystenta |
Dostępne są inne pakiety (np. łączniki pamięci), ale nadal są eksperymentalne i nie są jeszcze zalecane do użytku produkcyjnego.
Aby zainstalować dowolny z tych pakietów, możesz użyć następującego polecenia:
dotnet add package <package-name>
Pakiety języka Python
W języku Python istnieje jeden pakiet, który zawiera wszystko, czego potrzebujesz, aby rozpocząć pracę z jądrem semantycznym. Aby zainstalować pakiet, możesz użyć następującego polecenia:
pip install semantic-kernel
Na PyPI pod Provides-Extra
dodatkowymi dodatkowymi dodatkowymi dodatkami można również zainstalować i w przypadku użycia, które zainstalują pakiety wymagane do używania sk z tym konkretnym łącznikiem lub usługą, można zainstalować te z kwadratową składnią nawiasu kwadratowego na przykład:
pip install semantic-kernel[azure]
Spowoduje to zainstalowanie semantycznego jądra, a także określonych przetestowanych wersji: azure-ai-inference
, , azure-search-documents
azure-identity
azure-core
azure-cosmos
, i msgraph-sdk
(oraz wszystkich zależności tych pakietów). Podobnie dodatkowa hugging_face
funkcja zostanie zainstalowana transformers
i sentence-transformers
.
Pakiety Java
W przypadku języka Java semantyczne jądro ma następujące pakiety; wszystkie znajdują się pod identyfikatorem com.microsoft.semantic-kernel
grupy i można je zaimportować z narzędzia maven.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
Model BOM jest dostarczany, który może służyć do definiowania wersji wszystkich pakietów jądra semantycznego.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-bom</artifactId>
<version>${semantickernel.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
semantickernel-bom
— Projekt Maven BOM, który może służyć do definiowania wersji wszystkich pakietów jądra semantycznego.semantickernel-api
— pakiet definiujący podstawowy publiczny interfejs API dla jądra semantycznego dla projektu Maven.semantickernel-aiservices-openai
— Udostępnia łącznik, który może służyć do interakcji z interfejsem API openAI.
Poniżej przedstawiono przykładowy kod XML POM dla prostego projektu, który używa interfejsu OpenAI.
<project>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-bom</artifactId>
<version>${semantickernel.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-connectors-ai-openai</artifactId>
</dependency>
</dependencies>
</project>
Dostępne funkcje w każdym zestawie SDK
W poniższych tabelach pokazano, które funkcje są dostępne w każdym języku. Symbol 🔄 wskazuje, że funkcja jest częściowo zaimplementowana. Aby uzyskać więcej szczegółów, zobacz skojarzona kolumna notatek. Symbol ❌ wskazuje, że funkcja nie jest jeszcze dostępna w tym języku. Jeśli chcesz zobaczyć funkcję zaimplementowaną w języku, rozważ współtworzynie projektu lub otwarcie problemu.
Podstawowe możliwości
Usługi | C# | Python | Java | Uwagi |
---|---|---|---|---|
Polecenia | ✅ | ✅ | ✅ | Aby wyświetlić pełną listę obsługiwanych formatów szablonu i serializacji, zapoznaj się z poniższymi tabelami |
Funkcje i wtyczki natywne | ✅ | ✅ | ✅ | |
Wtyczki OpenAPI | ✅ | ✅ | ✅ | Język Java zawiera przykład pokazujący sposób ładowania wtyczek interfejsu OpenAPI |
Automatyczne wywoływanie funkcji | ✅ | ✅ | ✅ | |
Otwieranie dzienników telemetrii | ✅ | 🔄 | ❌ | |
Haki i filtry | ✅ | ✅ | ✅ |
Formaty szablonów monitów
Podczas tworzenia monitów semantyczne jądro udostępnia różne języki szablonu, które umożliwiają osadzanie zmiennych i wywoływanie funkcji. W poniższej tabeli przedstawiono języki szablonów obsługiwane w każdym języku.
Formaty | C# | Python | Java | Uwagi |
---|---|---|---|---|
Język szablonu jądra semantycznego | ✅ | ✅ | ✅ | |
Kierownice | ✅ | ✅ | ✅ | |
Liquid | ✅ | ❌ | ❌ | |
Jinja2 | ❌ | ✅ | ❌ |
Formaty serializacji monitów
Po utworzeniu monitu można go serializować, aby można było je przechowywać lub udostępniać w różnych zespołach. W poniższej tabeli przedstawiono, które formaty serializacji są obsługiwane w każdym języku.
Formaty | C# | Python | Java | Uwagi |
---|---|---|---|---|
YAML | ✅ | ✅ | ✅ | |
Monity | ❌ | ✅ | ❌ |
Modalności usług sztucznej inteligencji
Usługi | C# | Python | Java | Uwagi |
---|---|---|---|---|
Generowanie tekstu | ✅ | ✅ | ✅ | Przykład: Text-Davinci-003 |
Uzupełnianie czatu | ✅ | ✅ | ✅ | Przykład: GPT4, Chat-GPT |
Osadzanie tekstu (eksperymentalne) | ✅ | ✅ | ✅ | Przykład: Text-Embeddings-Ada-002 |
Tekst do obrazu (eksperymentalny) | ✅ | ✅ | ❌ | Przykład: Dall-E |
Obraz do tekstu (eksperymentalny) | ✅ | ✅ | ❌ | Przykład: Pix2Struct |
Tekst do dźwięku (eksperymentalny) | ✅ | ❌ | ❌ | Przykład: zamiana tekstu na mowę |
Dźwięk do tekstu (eksperymentalny) | ✅ | ❌ | ❌ | Przykład: Szept |
Łączniki usługi sztucznej inteligencji
Punkty końcowe | C# | Python | Java | Uwagi |
---|---|---|---|---|
OpenAI | ✅ | ✅ | ✅ | |
Azure OpenAI | ✅ | ✅ | ✅ | |
Inne punkty końcowe, które suppoprt interfejsy API openAI | ✅ | ✅ | ✅ | Obejmuje usługę Ollama, LLM Studio, model jako usługę platformy Azure itp. |
Przytulanie interfejsu API wnioskowania twarzy | 🔄 | ❌ | ❌ | Wkrótce w języku Python nie wszystkie scenariusze są objęte platformą .NET |
Łączniki pamięci (eksperymentalne)
Ważne
Wszystkie istniejące łączniki pamięci są obecnie eksperymentalne i zostaną zastąpione przez łączniki magazynu wektorów. Zapewni to więcej funkcji za pośrednictwem zaktualizowanej warstwy abstrakcji.
Łączniki pamięci | C# | Python | Java | Uwagi |
---|---|---|---|---|
Wyszukiwanie AI platformy Azure | ✅ | ✅ | ✅ | |
Chroma | ✅ | ✅ | ❌ | |
DuckDB | ✅ | ❌ | ❌ | |
Milvus | 🔄 | ✅ | ❌ | |
Pinecone | ✅ | ✅ | ❌ | |
Postgres | ✅ | ✅ | ❌ | |
Qdrant | ✅ | 🔄 | ❌ | |
Redis | ✅ | 🔄 | ❌ | |
Sqlite | ✅ | ❌ | 🔄 | |
Weaviate | ✅ | ✅ | ❌ |
Łączniki magazynu wektorów (eksperymentalne)
Ważne
Wszystkie istniejące łączniki magazynu wektorów są obecnie eksperymentalne i są w trakcie aktywnego opracowywania, aby poprawić ich doświadczenie. Aby przekazać opinię na temat najnowszej propozycji, zapoznaj się z aktywnymi usługami ADRs łącznika wyszukiwania i pamięci.
Aby zapoznać się z listą łączników wektorów wektorowych i obsługi języka dla każdego z nich, zapoznaj się z łącznikami gotowe do użycia.