Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Планы семантического ядра для предоставления поддержки следующим языкам:
- C#
- Python
- Java
Хотя общая архитектура ядра согласована на всех языках, мы убедились, что пакет SDK для каждого языка соответствует общим парадигмам и стилям на каждом языке, чтобы сделать его собственным и простым в использовании.
Пакеты C#
В C#существует несколько пакетов, которые помогут вам импортировать только необходимые функции для проекта. В следующей таблице показаны доступные пакеты в C#.
| Имя пакета | Description |
|---|---|
Microsoft.SemanticKernel |
Основной пакет, включающий все, что нужно приступить к работе |
Microsoft.SemanticKernel.Core |
Основной пакет, предоставляющий реализации для Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
Базовые абстракции для семантического ядра |
Microsoft.SemanticKernel.Connectors.Amazon |
Соединитель ИИ для Amazon AI |
Microsoft.SemanticKernel.Connectors.AzureAIInference |
Соединитель ИИ для вывода СИ Azure |
Microsoft.SemanticKernel.Connectors.AzureOpenAI |
Соединитель искусственного интеллекта для Azure OpenAI |
Microsoft.SemanticKernel.Connectors.Google |
Соединитель ИИ для моделей Google (например, Gemini) |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Соединитель искусственного интеллекта для моделей распознавания лиц |
Microsoft.SemanticKernel.Connectors.MistralAI |
Соединитель ИИ для моделей Мистраль ИИ |
Microsoft.SemanticKernel.Connectors.Ollama |
Соединитель ИИ для Ollama |
Microsoft.SemanticKernel.Connectors.Onnx |
Соединитель ИИ для Onnx |
Microsoft.SemanticKernel.Connectors.OpenAI |
Соединитель ИИ для OpenAI |
Microsoft.SemanticKernel.Connectors.AzureAISearch |
Соединитель хранилища векторов для поиска ИИ Azure |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
Соединитель хранилища векторов для Azure CosmosDB MongoDB |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
Соединитель хранилища векторов для Azure CosmosDB NoSQL |
Microsoft.SemanticKernel.Connectors.MongoDB |
Соединитель хранилища векторов для MongoDB |
Microsoft.SemanticKernel.Connectors.Pinecone |
Соединитель хранилища векторов для Pinecone |
Microsoft.SemanticKernel.Connectors.Qdrant |
Соединитель хранилища векторов для Qdrant |
Microsoft.SemanticKernel.Connectors.Redis |
Соединитель хранилища векторов для Redis |
Microsoft.SemanticKernel.Connectors.SqliteVec |
Соединитель хранилища векторов для Sqlite |
Microsoft.SemanticKernel.Connectors.Weaviate |
Соединитель хранилища векторов для Weaviate |
Microsoft.SemanticKernel.Plugins.OpenApi (Экспериментальный) |
Включает загрузку подключаемых модулей из спецификаций OpenAPI |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Включает использование шаблонов Handlebars для запросов |
Microsoft.SemanticKernel.Yaml |
Предоставляет поддержку сериализации запросов с помощью файлов YAML |
Microsoft.SemanticKernel.Prompty |
Предоставляет поддержку сериализации запросов с помощью файлов с запросами |
Microsoft.SemanticKernel.Agents.Abstractions |
Предоставляет абстракции для создания агентов |
Microsoft.SemanticKernel.Agents.OpenAI |
Предоставляет поддержку агентов API Помощника |
Чтобы установить любой из этих пакетов, можно использовать следующую команду:
dotnet add package <package-name>
Пакеты Python
В Python есть один пакет, включающий все, что необходимо приступить к работе с семантической ядром. Чтобы установить пакет, можно использовать следующую команду:
pip install semantic-kernel
В PyPI под Provides-Extra дополнительными дополнительными дополнительными компонентами также перечислены и при использовании, которые будут устанавливать пакеты, необходимые для использования с этим соединителем или службой, можно установить их с синтаксисом квадратной скобки для примера:
pip install semantic-kernel[azure]
При этом будут установлены семантические ядра, а также определенные тестируемые версии: azure-ai-inference, azure-search-documents, azure-coreazure-identityazure-cosmosи (и msgraph-sdk все зависимости этих пакетов). Аналогичным образом будет установлен hugging_face и transformersдополнительныйsentence-transformers.
Пакеты Java
Для Java семантический ядро содержит следующие пакеты; все находятся под идентификатором com.microsoft.semantic-kernelгруппы и могут быть импортированы из maven.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
Предоставляется BOM, который можно использовать для определения версий всех пакетов семантического ядра.
<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— BOM проекта Maven, который можно использовать для определения версий всех пакетов семантического ядра. -
semantickernel-api— пакет, определяющий основной общедоступный API для семантического ядра для проекта Maven. -
semantickernel-aiservices-openai— предоставляет соединитель, который можно использовать для взаимодействия с API OpenAI.
Ниже приведен пример XML POM для простого проекта, использующего 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>
Доступные функции в каждом пакете SDK
В следующих таблицах показано, какие функции доступны на каждом языке. Символ 🔄 указывает, что функция частично реализована, см. соответствующий столбец заметок для получения дополнительных сведений. Символ ❌ указывает, что функция еще не доступна на этом языке. Если вы хотите увидеть функцию, реализованную на языке, попробуйте внести свой вклад в проект или открыть проблему.
Основные возможности
| Службы | C# | Python | Java | Примечания. |
|---|---|---|---|---|
| Запросы | ✅ | ✅ | ✅ | Полный список поддерживаемых форматов шаблонов и сериализации см. в таблицах ниже. |
| Собственные функции и подключаемые модули | ✅ | ✅ | ✅ | |
| Подключаемые модули OpenAPI | ✅ | ✅ | ✅ | Java содержит пример, демонстрирующий загрузку подключаемых модулей OpenAPI |
| Автоматический вызов функции | ✅ | ✅ | ✅ | |
| Открытие журналов телеметрии | ✅ | ✅ | ❌ | |
| Перехватчики и фильтры | ✅ | ✅ | ✅ |
Форматы шаблонов запроса
При создании запросов семантический ядро предоставляет различные языки шаблонов, которые позволяют внедрять переменные и вызывать функции. В следующей таблице показано, какие языки шаблонов поддерживаются на каждом языке.
| Список типов | C# | Python | Java | Примечания. |
|---|---|---|---|---|
| Язык шаблона семантического ядра | ✅ | ✅ | ✅ | |
| Рули | ✅ | ✅ | ✅ | |
| Liquid | ✅ | ❌ | ❌ | |
| Jinja2 | ❌ | ✅ | ❌ |
Форматы сериализации запроса
После создания запроса его можно сериализовать таким образом, чтобы его можно было хранить или совместно использовать между командами. В следующей таблице показано, какие форматы сериализации поддерживаются на каждом языке.
| Список типов | C# | Python | Java | Примечания. |
|---|---|---|---|---|
| YAML | ✅ | ✅ | ✅ | |
| Запрос | ✅ | ❌ | ❌ |
Модальности служб ИИ
| Службы | C# | Python | Java | Примечания. |
|---|---|---|---|---|
| Создание текста | ✅ | ✅ | ✅ | Пример: Text-Davinci-003 |
| Завершение чата | ✅ | ✅ | ✅ | Пример: GPT4, Chat-GPT |
| Внедрение текста (экспериментальный) | ✅ | ✅ | ✅ | Пример: Text-Embeddings-Ada-002 |
| Текст на изображение (экспериментальный) | ✅ | ✅ | ❌ | Пример: Dall-E |
| Изображение в текст (экспериментальный) | ✅ | ❌ | ❌ | Пример: Pix2Struct |
| Текст на звук (экспериментальный) | ✅ | ✅ | ❌ | Пример: преобразование текста в речь |
| Звук в текст (экспериментальный) | ✅ | ✅ | ❌ | Пример: Whisper |
Соединители служб ИИ
| Конечные точки | C# | Python | Java | Примечания. |
|---|---|---|---|---|
| Amazon Bedrock | ✅ | ✅ | ❌ | |
| Антропик | ✅ | ✅ | ❌ | |
| Инференция искусственного интеллекта Azure | ✅ | ✅ | ❌ | |
| Azure OpenAI | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| API вывода лиц | ✅ | ✅ | ❌ | |
| Мистраль | ✅ | ✅ | ❌ | |
| Ollama | ✅ | ✅ | ❌ | |
| ONNX | ✅ | ✅ | ❌ | |
| OpenAI | ✅ | ✅ | ✅ | |
| Другие конечные точки, поддерживающие API OpenAI | ✅ | ✅ | ✅ | Включает LLM Studio и т. д. |
Соединители хранилища векторов (экспериментальные)
Предупреждение
Функциональность хранилища векторов семантического ядра доступна в предварительной версии, и улучшения, требующие кардинальных изменений, могут по-прежнему возникать в ограниченных случаях до выпуска.
Список соединителей хранилища векторов и поддержка языка для каждого из них см . в списке соединителей.
Соединители хранилища памяти (устаревшие версии)
Внимание
Соединители хранилища памяти являются устаревшими и заменены соединителями Vector Store. Дополнительные сведения см. в разделе "Устаревшие хранилища памяти".
| Соединители памяти | C# | Python | Java | Примечания. |
|---|---|---|---|---|
| Поиск с использованием ИИ Azure | ✅ | ✅ | ✅ | |
| Цветность | ✅ | ✅ | ❌ | |
| DuckDB | ✅ | ❌ | ❌ | |
| Милвус | ✅ | ✅ | ❌ | |
| Pinecone | ✅ | ✅ | ❌ | |
| Postgres | ✅ | ✅ | ❌ | |
| Qdrant | ✅ | ✅ | ❌ | |
| Redis | ✅ | ✅ | ❌ | |
| Sqlite | ✅ | ❌ | 🔄 | |
| Weaviate | ✅ | ✅ | ❌ |