次の方法で共有


サポートされているセマンティック カーネル言語

セマンティック カーネルは、次の言語のサポートを提供することを計画しています。

  • 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 Google モデルのコネクタ (例: Gemini)
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 には、セマンティック カーネルの使用を開始するために必要なものがすべて含まれる 1 つのパッケージがあります。 パッケージをインストールするには、次のコマンドを使用します。

pip install semantic-kernel

PyPI ではProvides-Extra追加の追加機能も一覧表示され、使用すると、その特定のコネクタまたはサービスで SK を使用するために必要なパッケージをインストールする場合は、次のように角かっこ構文を使用してインストールできます。

pip install semantic-kernel[azure]

これにより、セマンティック カーネルと、 azure-ai-inferenceazure-search-documentsazure-coreazure-identityazure-cosmosmsgraph-sdk (およびこれらのパッケージの依存関係) の特定のテスト済みバージョンがインストールされます。 同様に、追加の hugging_facetransformerssentence-transformersをインストールします。

Java パッケージ

Java の場合、セマンティック カーネルには次のパッケージがあります。すべてがグループ ID 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 プラグインを読み込む方法を示すサンプルがあります
関数の自動呼び出し
テレメトリ ログを開く 🔄
フックとフィルター

プロンプト テンプレートの形式

プロンプトを作成するときに、セマンティック カーネルには、変数を埋め込んで関数を呼び出すさまざまなテンプレート言語が用意されています。 次の表に、各言語でサポートされているテンプレート言語を示します。

形式 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
OpenAI API をサポートするその他のエンドポイント Ollama、LLM Studio、Azure サービスとしてのモデルなどが含まれます。
Face Inference API の抱き合い 🔄 Python に近日公開予定です。すべてのシナリオが .NET でカバーされるわけではありません

メモリ コネクタ (試験段階)

重要

既存のすべてのメモリ コネクタは現在試験段階であり、Vector Store コネクタに置き換えられます。 これらは、更新された抽象化レイヤーを介してより多くの機能を提供します。

メモリ コネクタ C# Python Java メモ
Azure AI Search
Chroma
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate

ベクター ストア コネクタ (試験段階)

重要

既存のすべての Vector Store コネクタは現在試験段階にあり、それらを使用するエクスペリエンスを向上させるために積極的な開発を行っています。 最新の提案に関するフィードバックを提供するには、アクティブな Search および Memory Connector ADR を参照してください。

既定のベクター ストア コネクタの一覧と、それぞれの言語サポートについては、 アウト オブ ザ ボックス コネクタを参照してください