共用方式為


支援的語意核心語言

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

  • 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

PyPIProvides-Extra ,您可以安裝的額外額外專案也會列出,而且在使用時,將安裝搭配該特定連接器或服務使用 SK 所需的套件時,您可以安裝具有方括弧語法的套件,例如:

pip install semantic-kernel[azure]

這會安裝 Semantic Kernel,以及特定測試版本的:azure-ai-inference、、azure-search-documentsazure-coreazure-identityazure-cosmosmsgraph-sdk (以及這些套件的任何相依性)。 同樣地,額外的 hugging_face 會安裝 transformerssentence-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