Integracje bazy wektorowej

Magazyny vector przechowują dane i ich wektorowe osadzanie razem, aby aplikacje mogły znaleźć rekordy według podobieństwa semantycznego. W aplikacjach Agent Framework można używać magazynów wektorowych do pobierania danych źródłowych na potrzeby generowania wspomaganego wyszukiwaniem (RAG) lub do przechowywania informacji, do których agent może później sięgnąć.

Abstrakcje magazynów wektorowych zapewniają typowe operacje dla kolekcji i rekordów, dzięki czemu logika aplikacji jest oddzielona od implementacji określonego magazynu wektorów. Możesz na przykład zacząć od lokalnej implementacji i przejść do usługi zarządzanej z minimalnymi zmianami.

Jak działają integracje z bazą wektorową

Typowy przepływ pracy magazynu wektorów obejmuje następujące kroki:

  1. Zdefiniuj model danych, który identyfikuje klucz rekordu, pola danych i pola wektorów.
  2. Skonfiguruj generator osadzania, jeśli magazyn wektorów nie generuje osadzania.
  3. Połącz się z magazynem wektorów i wybierz lub utwórz kolekcję.
  4. Wygeneruj embeddingi i wykonaj operację upsert na rekordach do kolekcji.
  5. Wyszukaj kolekcję przy użyciu tekstu lub wektora, w zależności od możliwości implementacji.
  6. Przekaż odpowiednie wyniki wyszukiwania agentowi jako kontekst lub udostępnij wyszukiwanie jako narzędzie dla agenta.

Obsługa magazynu wektorów .NET

Struktura agenta używa autonomicznych abstrakcji ekosystemu sztucznej inteligencji .NET:

  • Microsoft.Extensions.VectorData udostępnia wspólne interfejsy API magazynu wektorów, kolekcji, rekordów i wyszukiwania.
  • Microsoft.Extensions.AI zapewnia abstrakcje, takie jak IEmbeddingGenerator, do generowania osadzeń niezależnie od konkretnego dostawcy modelu.

Jeśli składnik Agent Framework akceptuje magazyn wektorowy, można podać zgodną implementację Microsoft.Extensions.VectorData. Każda implementacja bazy danych jest dystrybuowana oddzielnie od pakietu abstrakcji.

Podstawowe abstrakcje

Abstrakcja Purpose
VectorStore Udostępnia operacje między kolekcjami i tworzy typizowane wystąpienia kolekcji.
VectorStoreCollection<TKey, TRecord> Tworzy lub usuwa kolekcję oraz aktualizuje lub wstawia, pobiera albo usuwa jej rekordy.
IVectorSearchable<TRecord> Wyszukuje rekordy za pomocą wektora lub tekstu, gdy dostępny jest generator osadzeń albo możliwość generowania osadzeń po stronie bazy danych.

Dostępne implementacje magazynu wektorów

Poniższe implementacje używają typowych abstrakcji magazynu wektorów .NET. Przejrzyj dokumentację poszczególnych implementacji dla wersji pakietów, obsługiwanych typów danych i ograniczeń specyficznych dla usługi.

Implementation Availability Używa oficjalnie obsługiwanego zestawu SDK bazy danych Konserwator lub sprzedawca
Wyszukiwanie AI platformy Azure Available Yes Microsoft
Azure Cosmos DB for MongoDB vCore Available Yes Microsoft
Azure Cosmos DB dla baz danych NoSQL Available Yes Microsoft
Couchbase Available Yes Couchbase
Elasticsearch Available Yes Elastic
Chroma Zaplanowane Nie dotyczy Nie dotyczy
W pamięci Available Nie dotyczy Microsoft
Milvus Zaplanowane Nie dotyczy Nie dotyczy
MongoDB Available Yes Microsoft
Neon Serverless Postgres Korzystanie z implementacji bazy danych Postgres Yes Microsoft
Oracle Available Yes Oracle
Pinecone Available No Microsoft
Postgres Available Yes Microsoft
Qdrant Available Yes Microsoft
Redis Available Yes Microsoft
SQL Server Available Yes Microsoft
SQLite Available Yes Microsoft
Nietrwałe w pamięci Przestarzałe; użyj implementacji w pamięci Nie dotyczy Microsoft
Weaviate Available Yes Microsoft

Ważna

Implementacje magazynów wektorowych są rozwijane przez różnych opiekunów. Przed użyciem należy ocenić jakość, licencjonowanie, zasady pomocy technicznej i zgodność wersji każdej implementacji. Niektóre implementacje używają zestawów SDK baz danych, których dostawca bazy danych nie obsługuje oficjalnie.

Wprowadzenie

  1. Dodaj Microsoft.Extensions.VectorData.Abstractions pakiet oraz pakiet dla wybranej implementacji bazy wektorowej.
  2. Zdefiniuj typ rekordu i zidentyfikuj jego klucz, dane i właściwości wektora.
  3. Skonfiguruj IEmbeddingGenerator, jeśli implementacja wymaga osadzeń generowanych przez aplikację.
  4. Utwórz implementację VectorStore, a następnie pobierz silnie typizowany VectorStoreCollection<TKey, TRecord>.
  5. Upewnij się, że kolekcja istnieje, wstaw lub zaktualizuj rekordy i wywołaj SearchAsync z tekstem lub wektorem.

Aby uzyskać pełne wprowadzenie do modeli danych, pozyskiwania, osadzania i wyszukiwania, zobacz Vector databases for .NET AI apps (Bazy danych wektorów dla aplikacji sztucznej inteligencji).

Obsługa magazynu wektorowego w języku Python

Platforma agentów używa abstrakcji i implementacji magazynu wektorowego z biblioteki Semantic Kernel dla języka Python. Kolekcje Semantic Kernel udostępniają typowe operacje tworzenia kolekcji, dodawania lub aktualizowania oraz pobierania rekordów, a także przeprowadzania wyszukiwania wektorowego, wyszukiwania według słów kluczowych lub wyszukiwania hybrydowego, jeśli wybrana implementacja je obsługuje.

Warning

Funkcjonalność magazynu wektorowego w Semantic Kernel dla języka Python ma status wersji kandydującej. Przed ogólną dostępnością mogą wystąpić ograniczone zmiany powodujące niekompatybilność.

Dostępne implementacje magazynu wektorów

Implementation Availability Używa oficjalnie obsługiwanego zestawu SDK bazy danych Konserwator lub sprzedawca
Wyszukiwanie AI platformy Azure Available Yes projekt Microsoft Semantic Kernel
Azure Cosmos DB for MongoDB vCore Available Yes projekt Microsoft Semantic Kernel
Azure Cosmos DB dla baz danych NoSQL Available Yes projekt Microsoft Semantic Kernel
Chroma Available Yes projekt Microsoft Semantic Kernel
Elasticsearch Zaplanowane Nie dotyczy Nie dotyczy
Faiss Available Yes projekt Microsoft Semantic Kernel
W pamięci Available Nie dotyczy projekt Microsoft Semantic Kernel
MongoDB Available Yes projekt Microsoft Semantic Kernel
Neon Serverless Postgres Korzystanie z implementacji bazy danych Postgres Yes projekt Microsoft Semantic Kernel
Oracle Available Yes Oracle
Pinecone Available Yes projekt Microsoft Semantic Kernel
Postgres Available Yes projekt Microsoft Semantic Kernel
Qdrant Available Yes projekt Microsoft Semantic Kernel
Redis Available Yes projekt Microsoft Semantic Kernel
SQL Server Available pyodbc projekt Microsoft Semantic Kernel
SQLite Zaplanowane Nie dotyczy projekt Microsoft Semantic Kernel
Weaviate Available Yes projekt Microsoft Semantic Kernel

Ważna

Implementacje magazynów wektorowych są rozwijane przez różnych opiekunów. Przed użyciem należy ocenić jakość, licencjonowanie, zasady pomocy technicznej i zgodność wersji każdej implementacji.

Wprowadzenie

  1. Zainstaluj semantic-kernel i zależności wymagane przez wybraną implementację.
  2. Zdefiniuj model za pomocą dekoratora @vectorstoremodel i określ jego klucz, dane oraz pola wektorowe.
  3. Utwórz kolekcję specyficzną dla implementacji dla tego modelu.
  4. Upewnij się, że kolekcja istnieje, a następnie wstaw lub zaktualizuj rekordy.
  5. Użyj interfejsów API wyszukiwania kolekcji, aby pobrać rekordy dla aplikacji.

Aby zapoznać się z konfiguracją implementacji i kompletnymi przykładami, zobacz Semantic Kernel Vector Stores (Magazyny wektorów Semantic Kernel).

Obsługa magazynu wektorów dla Go

Integracja magazynu wektorowego nie jest jeszcze dostępna w programie Agent Framework for Go. Aktualny status znajdziesz w repozytorium Agent Framework dla Go.

Następne kroki