Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
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.Amazon |
Łącznik sztucznej inteligencji dla usługi Amazon AI |
Microsoft.SemanticKernel.Connectors.AzureAIInference |
Łącznik sztucznej inteligencji dla wnioskowania usługi Azure AI |
Microsoft.SemanticKernel.Connectors.AzureOpenAI |
Łącznik sztucznej inteligencji dla usługi Azure OpenAI |
Microsoft.SemanticKernel.Connectors.Google |
Łącznik sztucznej inteligencji dla modeli Google (np. Gemini) |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Łącznik sztucznej inteligencji dla modeli rozpoznawania twarzy |
Microsoft.SemanticKernel.Connectors.MistralAI |
Łącznik sztucznej inteligencji dla modeli Mistral AI |
Microsoft.SemanticKernel.Connectors.Ollama |
Łącznik sztucznej inteligencji dla aplikacji Ollama |
Microsoft.SemanticKernel.Connectors.Onnx |
Łącznik sztucznej inteligencji dla platformy Onnx |
Microsoft.SemanticKernel.Connectors.OpenAI |
Łącznik sztucznej inteligencji dla interfejsu OpenAI |
Microsoft.SemanticKernel.Connectors.AzureAISearch |
Łącznik magazynu wektorów dla usługi Azure AI Search |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
Łącznik magazynu wektorów dla bazy danych MongoDB usługi Azure CosmosDB |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
Łącznik magazynu wektorów dla usługi Azure CosmosDB NoSQL |
Microsoft.SemanticKernel.Connectors.MongoDB |
Łącznik magazynu wektorów dla bazy danych MongoDB |
Microsoft.SemanticKernel.Connectors.Pinecone |
Łącznik magazynu wektorów dla Pinecone |
Microsoft.SemanticKernel.Connectors.Qdrant |
Łącznik magazynu wektorów dla usługi Qdrant |
Microsoft.SemanticKernel.Connectors.Redis |
Łącznik magazynu wektorów dla usługi Redis |
Microsoft.SemanticKernel.Connectors.SqliteVec |
Łącznik magazynu wektorów dla usługi Sqlite |
Microsoft.SemanticKernel.Connectors.Weaviate |
Łącznik magazynu wektorów dla aplikacji Weaviate |
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 |
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-documentsazure-coreazure-identityazure-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-kernelgrupy 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 |
|---|---|---|---|---|
| Amazon Bedrock | ✅ | ✅ | ❌ | |
| Antropiczny | ✅ | ✅ | ❌ | |
| Wnioskowanie AI na platformie Azure | ✅ | ✅ | ❌ | |
| Azure OpenAI | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| Przytulanie interfejsu API wnioskowania twarzy | ✅ | ✅ | ❌ | |
| Mistral | ✅ | ✅ | ❌ | |
| Ollama | ✅ | ✅ | ❌ | |
| ONNX | ✅ | ✅ | ❌ | |
| OpenAI | ✅ | ✅ | ✅ | |
| Inne punkty końcowe, które obsługują interfejsy API openAI | ✅ | ✅ | ✅ | Obejmuje program LLM Studio itp. |
Łączniki magazynu wektorów (eksperymentalne)
Ostrzeżenie
Funkcjonalność Semantycznego Magazynu Wektorów Kernela jest dostępna w wersji zapoznawczej, a w ograniczonych przypadkach przed wydaniem mogą pojawić się zmiany wymagające istotnych modyfikacji.
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.
Łączniki magazynu pamięci (starsza wersja)
Ważne
Łączniki magazynu pamięci są starsze i zostały zastąpione przez łączniki magazynu wektorów. Aby uzyskać więcej informacji, zobacz Starsze magazyny pamięci.
| Łączniki pamięci | C# | Python | Java | Uwagi |
|---|---|---|---|---|
| Wyszukiwanie AI platformy Azure | ✅ | ✅ | ✅ | |
| Chroma | ✅ | ✅ | ❌ | |
| DuckDB | ✅ | ❌ | ❌ | |
| Milvus | ✅ | ✅ | ❌ | |
| Pinecone | ✅ | ✅ | ❌ | |
| Postgres | ✅ | ✅ | ❌ | |
| Qdrant | ✅ | ✅ | ❌ | |
| Redis | ✅ | ✅ | ❌ | |
| Sqlite | ✅ | ❌ | 🔄 | |
| Weaviate | ✅ | ✅ | ❌ |