Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Zdefiniuj model danych, który identyfikuje klucz rekordu, pola danych i pola wektorów.
- Skonfiguruj generator osadzania, jeśli magazyn wektorów nie generuje osadzania.
- Połącz się z magazynem wektorów i wybierz lub utwórz kolekcję.
- Wygeneruj embeddingi i wykonaj operację upsert na rekordach do kolekcji.
- Wyszukaj kolekcję przy użyciu tekstu lub wektora, w zależności od możliwości implementacji.
- 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.VectorDataudostępnia wspólne interfejsy API magazynu wektorów, kolekcji, rekordów i wyszukiwania. -
Microsoft.Extensions.AIzapewnia abstrakcje, takie jakIEmbeddingGenerator, 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
- Dodaj
Microsoft.Extensions.VectorData.Abstractionspakiet oraz pakiet dla wybranej implementacji bazy wektorowej. - Zdefiniuj typ rekordu i zidentyfikuj jego klucz, dane i właściwości wektora.
- Skonfiguruj
IEmbeddingGenerator, jeśli implementacja wymaga osadzeń generowanych przez aplikację. - Utwórz implementację
VectorStore, a następnie pobierz silnie typizowanyVectorStoreCollection<TKey, TRecord>. - Upewnij się, że kolekcja istnieje, wstaw lub zaktualizuj rekordy i wywołaj
SearchAsyncz 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
- Zainstaluj
semantic-kerneli zależności wymagane przez wybraną implementację. - Zdefiniuj model za pomocą dekoratora
@vectorstoremodeli określ jego klucz, dane oraz pola wektorowe. - Utwórz kolekcję specyficzną dla implementacji dla tego modelu.
- Upewnij się, że kolekcja istnieje, a następnie wstaw lub zaktualizuj rekordy.
- 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.
Powiązane scenariusze struktury agentów
- Dodaj aplikację RAG do agenta.
- Dodaj pamięć historii czatów semantycznych.
- Wybierz integrację dostawcy kontekstu.