支援的語意核心語言
語意核心計劃提供下列語言的支援:
- C#
- Python
- Java
雖然核心的整體架構在所有語言中都是一致的,但我們確定每個語言的 SDK 都遵循每個語言的通用範例和樣式,讓它感覺原生且容易使用。
可用的 SDK 套件
C# 套件
在 C# 中,有數個套件可協助您確保只需要匯入專案所需的功能。 下表顯示 C# 中的可用套件。
封裝名稱 | 描述 |
---|---|
Microsoft.SemanticKernel |
包含開始使用所有專案的主要套件 |
Microsoft.SemanticKernel.Core |
提供實作的核心套件 Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
語意核心的基底抽象概念 |
Microsoft.SemanticKernel.Connectors.OpenAI |
OpenAI 的連接器 |
Microsoft.SemanticKernel.Connectors.HuggingFace |
擁抱臉部模型的連接器 |
Microsoft.SemanticKernel.Connectors.Google |
谷歌模型的連接器(例如雙子座) |
Microsoft.SemanticKernel.Connectors.MistralAI |
Mistral AI 模型的連接器 |
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-documents
azure-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 |
Chat Completion | ✅ | ✅ | ✅ | 範例:GPT4、Chat-GPT |
文字內嵌 (實驗性) | ✅ | ✅ | ✅ | 範例:Text-Embeddings-Ada-002 |
文字到影像 (實驗性) | ✅ | ✅ | ❌ | 範例:Dall-E |
圖片到文字 (實驗性) | ✅ | ✅ | ❌ | 範例:Pix2Struct |
文字到音訊 (實驗性) | ✅ | ❌ | ❌ | 範例:文字到語音轉換 |
音訊轉換文字 (實驗性) | ✅ | ❌ | ❌ | 範例:低聲 |
AI 服務連接器
端點 | C# | Python | Java | 備註 |
---|---|---|---|---|
OpenAI | ✅ | ✅ | ✅ | |
Azure OpenAI | ✅ | ✅ | ✅ | |
suppoprt OpenAI API 的其他端點 | ✅ | ✅ | ✅ | 包括 Ollama、LLM Studio、Azure 模型即服務等。 |
擁抱臉部推斷 API | 🔄 | ❌ | ❌ | 即將推出 Python,並非所有案例都涵蓋在 .NET |
記憶體連接器 (實驗性)
重要
所有現有的記憶體連接器目前都是實驗性的,且將由向量存放區連接器取代。 這些會透過更新的抽象層提供更多功能。
記憶體連接器 | C# | Python | Java | 備註 |
---|---|---|---|---|
Azure AI 搜尋服務 | ✅ | ✅ | ✅ | |
Chroma | ✅ | ✅ | ❌ | |
DuckDB | ✅ | ❌ | ❌ | |
Milvus | 🔄 | ✅ | ❌ | |
Pinecone | ✅ | ✅ | ❌ | |
Postgres | ✅ | ✅ | ❌ | |
Qdrant | ✅ | 🔄 | ❌ | |
Redis | ✅ | 🔄 | ❌ | |
Sqlite | ✅ | ❌ | 🔄 | |
Weaviate | ✅ | ✅ | ❌ |
向量存放區連接器 (實驗性)
如需現用向量存放區連接器的清單,以及每個連接器的語言支援,請參閱 現用連接器。