Używanie łącznika Volatile (w pamięci) (wersja zapoznawcza)
Ostrzeżenie
C# VolatileVectorStore jest przestarzały i został zastąpiony nowym pakietem. Zobacz Łącznik InMemory
Ostrzeżenie
Funkcja semantycznego magazynu wektorów jądra jest dostępna w wersji zapoznawczej, a ulepszenia wymagające zmian powodujących niezgodność mogą nadal występować w ograniczonych okolicznościach przed wydaniem.
Ostrzeżenie
Funkcja semantycznego magazynu wektorów jądra jest dostępna w wersji zapoznawczej, a ulepszenia wymagające zmian powodujących niezgodność mogą nadal występować w ograniczonych okolicznościach przed wydaniem.
Omówienie
Łącznik Volatile Vector Store to implementacja magazynu wektorów zapewniana przez jądro semantyczne, które nie używa zewnętrznej bazy danych i przechowuje dane w pamięci. Ten magazyn wektorów jest przydatny w przypadku scenariuszy tworzenia prototypów lub gdy wymagane są szybkie operacje w pamięci.
Łącznik ma następujące cechy.
Obszar funkcji | Pomoc techniczna |
---|---|
Mapowania kolekcji na | Słownik w pamięci |
Obsługiwane typy właściwości kluczy | Dowolny typ, który można porównać |
Obsługiwane typy właściwości danych | Dowolny typ |
Obsługiwane typy właściwości wektorów | ReadOnlyMemory<float> |
Obsługiwane typy indeksów | Nie dotyczy |
Obsługiwane funkcje odległości | Nie dotyczy |
Obsługuje wiele wektorów w rekordzie | Tak |
Czy filtrowanie jest obsługiwane? | Tak |
Czy jest obsługiwany element IsFullTextSearchable? | Tak |
Obsługiwana nazwa_właściwości_magazynu? | Nie, ponieważ magazyn jest niestabilny, a ponowne użycie danych nie jest możliwe, niestandardowe nazewnictwo nie jest przydatne i nie jest obsługiwane. |
Wprowadzenie
Dodaj pakiet nuget jądra semantycznego core do projektu.
dotnet add package Microsoft.SemanticKernel.Core
Magazyn wektorów można dodać do kontenera iniekcji zależności dostępnego w KernelBuilder
kontenerze iniekcji zależności lub IServiceCollection
przy użyciu metod rozszerzeń udostępnianych przez jądro semantyczne.
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();
Wystąpienie magazynu wektorów lotnych można skonstruować bezpośrednio.
using Microsoft.SemanticKernel.Data;
var vectorStore = new VolatileVectorStore();
Istnieje możliwość utworzenia bezpośredniego odwołania do nazwanej kolekcji.
using Microsoft.SemanticKernel.Data;
var collection = new VolatileVectorStoreRecordCollection<string, Hotel>("skhotels");
Wprowadzenie
Zainstaluj jądro semantyczne.
pip install semantic-kernel
Następnie można utworzyć wystąpienie magazynu wektorów VolatileStore
przy użyciu klasy .
from semantic_kernel.connectors.memory.volatile import VolatileStore
vector_store = VolatileStore()
Możesz również utworzyć kolekcję bezpośrednio.
from semantic_kernel.connectors.memory.volatile import VolatileCollection
collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel)
Serializacja
Ponieważ łącznik Volatile ma prosty dykt jako mechanizm magazynu wewnętrznego, może przechowywać dowolny model danych, który można serializować do dyktowania.
Aby uzyskać więcej informacji na temat tej koncepcji, zobacz dokumentację serializacji.
Wprowadzenie
Dołącz najnowszą wersję interfejsu API jądra semantycznego w projekcie Maven, dodaj następującą zależność do elementu pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
<version>[LATEST]</version>
</dependency>
Następnie można utworzyć wystąpienie magazynu wektorów VolatileVectorStore
przy użyciu klasy .
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();
}
}
Możesz również utworzyć kolekcję bezpośrednio.
var collection = new VolatileVectorStoreRecordCollection<>("skhotels",
VolatileVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build());