次の方法で共有


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

警告

In-Memory Vector Store の機能はプレビュー段階であり、破壊的変更を必要とする機能強化は、リリース前の限られた状況で引き続き発生する可能性があります。

警告

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

警告

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

概要

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

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

特徴エリア サポート
コレクションをマッピングする メモリ内ディクショナリ
サポートされているキー プロパティの種類 比較できる任意の型
サポートされているデータ プロパティ型 任意の型
サポートされているベクター プロパティ型
  • 読み取り専用メモリ<float>
  • 埋め込み<float>
  • float[]
サポートされているインデックスの種類 平ら
サポートされている距離関数
  • コサイン類似度
  • CosineDistance
  • ドットプロダクトシミラリティ
  • EuclideanDistance
サポートされているフィルター句
  • AnyTagEqualTo
  • EqualTo
レコード内の複数のベクターをサポートします はい
IsIndexed はサポートされていますか? はい
IsFullTextIndexed がサポートされていますか? はい
StorageName がサポートされていますか? いいえ。ストレージはメモリ内にあり、データの再利用は不可能であるため、カスタムの名前付けは適用されません。
HybridSearch はサポートされていますか? いいえ

作業の開始

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

dotnet add package Microsoft.SemanticKernel.Connectors.InMemory --prerelease

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

using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;

// Using Kernel Builder.
var kernelBuilder = Kernel
    .CreateBuilder();
kernelBuilder.Services
    .AddInMemoryVectorStore();
using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;

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

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

using Microsoft.SemanticKernel.Connectors.InMemory;

var vectorStore = new InMemoryVectorStore();

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

using Microsoft.SemanticKernel.Connectors.InMemory;

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

概要

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

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

特徴エリア サポート
コレクションをマッピングする メモリ内ディクショナリ
サポートされているキー プロパティの種類 dict キーであることが可能であるものについては、詳細について python のドキュメントを参照してください こちら で確認してください。
サポートされているデータ プロパティ型 任意の型
サポートされているベクター プロパティ型 list[float | int] | numpy 配列
サポートされているインデックスの種類 平ら
サポートされている距離関数
  • コサインの類似性
  • コサイン距離
  • ドット積の類似性
  • ユークリッド距離
  • ユークリッド二乗距離
  • マンハッタン距離
  • ハミング距離
レコード内の複数のベクターをサポートします はい
is_filterableサポートされていますか? はい
is_full_text_searchableはサポートされていますか? はい

作業の開始

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

pip install semantic-kernel

そこからストアとコレクションを作成することも、コレクションを直接作成することもできます。

次のスニペットでは、"DataModel" という名前のデータ モデル クラスが定義されていることを前提としています。

from semantic_kernel.connectors.in_memory import InMemoryVectorStore

vector_store = InMemoryVectorStore()
vector_collection = vector_store.get_collection(record_type=DataModel, collection_name="collection_name")

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

from semantic_kernel.connectors.in_memory import InMemoryCollection

vector_collection = InMemoryCollection(record_type=DataModel, collection_name="collection_name")

近日公開

詳細については、近日公開予定です。