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());