次の方法で共有


Volatile (メモリ内) コネクタの使用 (プレビュー)

警告

C# VolatileVectorStore は廃止され、新しいパッケージに置き換えられました。 InMemory コネクタを参照してください

警告

セマンティック カーネル ベクター ストア機能はプレビュー段階であり、破壊的変更を必要とする機能強化は、リリース前の限られた状況で引き続き発生する可能性があります。

警告

セマンティック カーネル ベクター ストア機能はプレビュー段階であり、破壊的変更を必要とする機能強化は、リリース前の限られた状況で引き続き発生する可能性があります。

概要

Volatile Vector Store コネクタは、外部データベースを使用せず、メモリにデータを格納するセマンティック カーネルによって提供されるベクター ストア実装です。 このベクター ストアは、プロトタイプ作成のシナリオや、高速なメモリ内操作が必要な場合に役立ちます。

コネクタには次の特性があります。

機能領域 サポート
コレクションのマップ メモリ内ディクショナリ
サポートされているキー プロパティの種類 比較できる任意の型
サポートされているデータ プロパティ型 任意の型
サポートされているベクター プロパティ型 ReadOnlyMemory<float>
サポートされているインデックスの種類 該当なし
サポートされている距離関数 該当なし
レコード内の複数のベクターをサポートします はい
IsFilterable がサポートされていますか? はい
IsFullTextSearchable がサポートされていますか? はい
StoragePropertyName がサポートされていますか? いいえ。ストレージは揮発性であり、データの再利用は不可能であるため、カスタムの名前付けは役に立たないため、サポートされていません。

作業の開始

セマンティック カーネル コア nuget パッケージをプロジェクトに追加します。

dotnet add package Microsoft.SemanticKernel.Core

セマンティック カーネルによって提供される拡張メソッドを使用して、 KernelBuilder で使用できる依存関係挿入コンテナーまたは IServiceCollection 依存関係挿入コンテナーにベクター ストアを追加できます。

using Microsoft.SemanticKernel;

// Using Kernel Builder.
var kernelBuilder = Kernel
    .CreateBuilder()
    .AddVolatileVectorStore();
using Microsoft.SemanticKernel;

// Using IServiceCollection with ASP.NET Core.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddVolatileVectorStore();

揮発性ベクター ストア インスタンスを直接構築できます。

using Microsoft.SemanticKernel.Data;

var vectorStore = new VolatileVectorStore();

名前付きコレクションへの直接参照を構築できます。

using Microsoft.SemanticKernel.Data;

var collection = new VolatileVectorStoreRecordCollection<string, Hotel>("skhotels");

作業の開始

セマンティック カーネルをインストールします。

pip install semantic-kernel

その後、 VolatileStore クラスを使用してベクター ストア インスタンスを作成できます。


from semantic_kernel.connectors.memory.volatile import VolatileStore

vector_store = VolatileStore()

コレクションを直接作成することもできます。

from semantic_kernel.connectors.memory.volatile import VolatileCollection

collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel)

シリアル化

Volatile コネクタには、内部ストレージ メカニズムとして単純なディクテーションがあるため、ディクテーションにシリアル化できる任意のデータ モデルを格納できます。

この概念の詳細については、 erialization のドキュメントを参照してください

作業の開始

Maven プロジェクトにセマンティック カーネル API の最新バージョンを含め、次の依存関係を pom.xmlに追加します。

<dependency>
    <groupId>com.microsoft.semantic-kernel</groupId>
    <artifactId>semantickernel-api</artifactId>
    <version>[LATEST]</version>
</dependency>

その後、 VolatileVectorStore クラスを使用してベクター ストア インスタンスを作成できます。

import com.microsoft.semantickernel.data.VolatileVectorStore;
import com.microsoft.semantickernel.data.VolatileVectorStoreRecordCollection;
import com.microsoft.semantickernel.data.VolatileVectorStoreRecordCollectionOptions;

public class Main {
    public static void main(String[] args) {
        // Build an Azure AI Search Vector Store
        var vectorStore = new VolatileVectorStore();
    }
}

コレクションを直接作成することもできます。

var collection = new VolatileVectorStoreRecordCollection<>("skhotels",
        VolatileVectorStoreRecordCollectionOptions.<Hotel>builder()
                .withRecordClass(Hotel.class)
                .build());