Použití konektoru Volatile (In-Memory) (Preview)
Upozorňující
C# VolatileVectorStore je zastaralý a byl nahrazen novým balíčkem. Viz Konektor InMemory
Upozorňující
Funkce sémantického úložiště vektorů jádra je ve verzi Preview a vylepšení, která vyžadují zásadní změny, se můžou vyskytovat za omezených okolností před vydáním.
Upozorňující
Funkce sémantického úložiště vektorů jádra je ve verzi Preview a vylepšení, která vyžadují zásadní změny, se můžou vyskytovat za omezených okolností před vydáním.
Přehled
Konektor Volatile Vector Store je implementace vektorového úložiště, kterou poskytuje sémantické jádro, které nepoužívá žádnou externí databázi a ukládá data do paměti. Toto úložiště vektorů je užitečné pro scénáře vytváření prototypů nebo pro vysokorychlostní operace v paměti.
Konektor má následující charakteristiky.
Oblast funkcí | Technická podpora |
---|---|
Kolekce map na | Slovník v paměti |
Podporované typy vlastností klíče | Libovolný typ, který lze porovnat |
Podporované typy datových vlastností | Libovolný typ |
Podporované typy vektorových vlastností | ReadOnlyMemory<float> |
Podporované typy indexů | – |
Podporované funkce vzdálenosti | – |
Podporuje více vektorů v záznamu. | Ano |
Je podporováno Filtrování? | Ano |
Podporuje se IsFullTextSearchable? | Ano |
StoragePropertyName se podporuje? | Ne, protože úložiště je nestálé a opakované použití dat proto není možné, vlastní pojmenování není užitečné a nepodporuje se. |
Začínáme
Přidejte do projektu balíček NuGet Jádra Semantic Core.
dotnet add package Microsoft.SemanticKernel.Core
Vektorové úložiště můžete přidat do kontejneru injektáže závislostí dostupného IServiceCollection
v KernelBuilder
kontejneru injektáže závislostí nebo do kontejneru injektáže závislostí pomocí rozšiřujících metod poskytovaných sémantickým jádrem.
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();
Instanci Volatile Vector Store můžete vytvořit přímo.
using Microsoft.SemanticKernel.Data;
var vectorStore = new VolatileVectorStore();
Je možné vytvořit přímý odkaz na pojmenovanou kolekci.
using Microsoft.SemanticKernel.Data;
var collection = new VolatileVectorStoreRecordCollection<string, Hotel>("skhotels");
Začínáme
Nainstalujte sémantické jádro.
pip install semantic-kernel
Pak můžete vytvořit instanci vektorového úložiště pomocí VolatileStore
třídy.
from semantic_kernel.connectors.memory.volatile import VolatileStore
vector_store = VolatileStore()
Kolekci můžete vytvořit také přímo.
from semantic_kernel.connectors.memory.volatile import VolatileCollection
collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel)
Serializace
Vzhledem k tomu, že konektor Volatile má jednoduchý dikt jako interní mechanismus úložiště, může ukládat jakýkoli datový model, který lze serializovat do diktování.
Další podrobnosti o tomto konceptu najdete v dokumentaci k serializaci.
Začínáme
Přidejte do projektu Maven nejnovější verzi rozhraní API sémantického jádra a přidejte do svého pom.xml
projektu následující závislost:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
<version>[LATEST]</version>
</dependency>
Pak můžete vytvořit instanci vektorového úložiště pomocí VolatileVectorStore
třídy.
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();
}
}
Kolekci můžete vytvořit také přímo.
var collection = new VolatileVectorStoreRecordCollection<>("skhotels",
VolatileVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build());