支援的語意核心語言

語意核心計劃提供下列語言的支援:

  • 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

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 備註
OpenAI
Azure OpenAI
suppoprt OpenAI API 的其他端點 包括 Ollama、LLM Studio、Azure 模型即服務等。
擁抱臉部推斷 API 🔄 即將推出 Python,並非所有案例都涵蓋在 .NET

記憶體連接器 (實驗性)

重要

所有現有的記憶體連接器目前都是實驗性的,目前正在進行積極開發,以改善使用這些連接器的體驗。 若要提供有關最新提案的意見反應,請參閱使用 中的搜尋記憶體連接器 ADR。

記憶體連接器 C# Python Java 備註
Azure AI 搜尋服務
色度
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate