語意核心計劃提供下列語言的支援:
- C#
- Python
- JAVA
雖然核心的整體架構在所有語言中都是一致的,但我們確定每個語言的 SDK 都遵循每個語言的通用範例和樣式,讓它感覺原生且容易使用。
C# 套件
在 C# 中,有數個套件可協助您確保只需要匯入專案所需的功能。 下表顯示 C# 中的可用套件。
| 封裝名稱 | 描述 |
|---|---|
Microsoft.SemanticKernel |
包含開始使用所有專案的主要套件 |
Microsoft.SemanticKernel.Core |
提供實作的核心套件 Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
語意核心的基底抽象概念 |
Microsoft.SemanticKernel.Connectors.Amazon |
適用於 Amazon AI 的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.AzureAIInference |
適用於 Azure AI 推斷的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.AzureOpenAI |
適用於 Azure OpenAI 的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.Google |
Google 模型的 AI 連接器(例如 Gemini) |
Microsoft.SemanticKernel.Connectors.HuggingFace |
擁抱臉部模型的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.MistralAI |
Mistral AI 模型的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.Ollama |
適用於 Ollama 的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.Onnx |
Onnx 的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.OpenAI |
OpenAI 的 AI 連接器 |
Microsoft.SemanticKernel.Connectors.AzureAISearch |
Azure AI 搜尋服務的向量存放區連接器 |
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 |
提供使用 Prompty 檔案串行化提示的支援 |
Microsoft.SemanticKernel.Agents.Abstractions |
提供建立代理程式的抽象概念 |
Microsoft.SemanticKernel.Agents.OpenAI |
提供小幫手 API 代理程序的支援 |
若要安裝上述任何套件,您可以使用下列命令:
dotnet add package <package-name>
Python 套件
在 Python 中,有一個套件包含開始使用語意核心所需的所有專案。 若要安裝套件,您可以使用下列命令:
pip install semantic-kernel
在 PyPI 上 Provides-Extra ,您可以安裝的額外額外專案也會列出,而且在使用時,將安裝搭配該特定連接器或服務使用 SK 所需的套件時,您可以安裝具有方括弧語法的套件,例如:
pip install semantic-kernel[azure]
這會安裝 Semantic Kernel,以及特定測試版本的:azure-ai-inference、、azure-search-documentsazure-core、azure-identity、 azure-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– Maven 專案 BOM,可用來定義所有語意核心套件的版本。 -
semantickernel-api– 封裝,定義 Maven 專案之語意核心的核心公用 API。 -
semantickernel-aiservices-openai–提供可用來與 OpenAI API 互動的連接器。
以下是使用 OpenAI 之簡單專案的 POM XML 範例。
<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 外掛程式的範例 |
| 自動函式呼叫 | ✅ | ✅ | ✅ | |
| 開啟遙測記錄 | ✅ | ✅ | ❌ | |
| 攔截和篩選 | ✅ | ✅ | ✅ |
提示範本格式
撰寫提示時,Semantic Kernel 提供各種不同的範本語言,可讓您內嵌變數和叫用函式。 下表顯示每個語言都支援哪些範本語言。
| 格式 | C# | Python | JAVA | 備註 |
|---|---|---|---|---|
| 語意核心範本語言 | ✅ | ✅ | ✅ | |
| 把手 | ✅ | ✅ | ✅ | |
| Liquid | ✅ | ❌ | ❌ | |
| Jinja2 | ❌ | ✅ | ❌ |
提示串行化格式
建立提示之後,您可以將其串行化,以便跨小組儲存或共用。 下表顯示每個語言都支援哪些串行化格式。
| 格式 | C# | Python | JAVA | 備註 |
|---|---|---|---|---|
| YAML | ✅ | ✅ | ✅ | |
| Prompty | ✅ | ❌ | ❌ |
AI 服務形式
| 服務 | C# | Python | JAVA | 備註 |
|---|---|---|---|---|
| 文字產生 | ✅ | ✅ | ✅ | 範例:Text-Davinci-003 |
| 聊天完成 | ✅ | ✅ | ✅ | 範例:GPT4、Chat-GPT |
| 文字內嵌 (實驗性) | ✅ | ✅ | ✅ | 範例:Text-Embeddings-Ada-002 |
| 文字到影像 (實驗性) | ✅ | ✅ | ❌ | 範例:Dall-E |
| 圖片到文字 (實驗性) | ✅ | ❌ | ❌ | 範例:Pix2Struct |
| 文字到音訊 (實驗性) | ✅ | ✅ | ❌ | 範例:文字到語音轉換 |
| 音訊轉換文字 (實驗性) | ✅ | ✅ | ❌ | 範例:低聲 |
AI 服務連接器
| 端點 | C# | Python | JAVA | 備註 |
|---|---|---|---|---|
| 亞馬遜基岩 | ✅ | ✅ | ❌ | |
| 人類 | ✅ | ✅ | ❌ | |
| Azure AI 推論 | ✅ | ✅ | ❌ | |
| Azure OpenAI | ✅ | ✅ | ✅ | |
| 谷歌 | ✅ | ✅ | ✅ | |
| 擁抱臉部推斷 API | ✅ | ✅ | ❌ | |
| 米斯特拉爾 | ✅ | ✅ | ❌ | |
| Ollama | ✅ | ✅ | ❌ | |
| ONNX | ✅ | ✅ | ❌ | |
| OpenAI | ✅ | ✅ | ✅ | |
| 支援 OpenAI API 的其他端點 | ✅ | ✅ | ✅ | 包括 LLM Studio 等。 |
向量存放區連接器 (實驗性)
警告
語意核心向量存放區功能目前處於預覽階段,且在發行前的某些有限情況下,可能仍需進行重大變更以實現改善。
如需現用向量存放區連接器的清單,以及每個連接器的語言支援,請參閱 現用連接器。
記憶體存放區連接器 (舊版)
重要
記憶體存放區連接器是舊版,且已由向量存放區連接器取代。 如需詳細資訊,請參閱 舊版記憶體存放區。
| 記憶體連接器 | C# | Python | JAVA | 備註 |
|---|---|---|---|---|
| Azure AI 搜尋服務 | ✅ | ✅ | ✅ | |
| Chroma | ✅ | ✅ | ❌ | |
| DuckDB | ✅ | ❌ | ❌ | |
| Milvus | ✅ | ✅ | ❌ | |
| Pinecone | ✅ | ✅ | ❌ | |
| Postgres | ✅ | ✅ | ❌ | |
| Qdrant | ✅ | ✅ | ❌ | |
| Redis | ✅ | ✅ | ❌ | |
| Sqlite | ✅ | ❌ | 🔄 | |
| Weaviate | ✅ | ✅ | ❌ |