Udostępnij za pośrednictwem


Przykłady kodu magazynu wektorów jądra semantycznego (wersja testowa)

Ostrzeżenie

Funkcjonalność semantycznego magazynu wektorów jądra jest dostępna w wersji zapoznawczej, a ulepszenia wymagające wprowadzenia niekompatybilnych zmian mogą nadal występować w ograniczonych okolicznościach przed wydaniem.

Kompleksowy przykład RAG z wykorzystaniem magazynów wektorowych

Ten przykład to autonomiczna aplikacja konsolowa, która demonstruje RAG przy użyciu jądra semantycznego. Przykład ma następujące cechy:

  1. Umożliwia wybór pomiędzy usługami czatu i osadzania
  2. Umożliwia wybór wektorowych baz danych
  3. Odczytuje zawartość co najmniej jednego pliku PDF i tworzy fragmenty dla każdej sekcji
  4. Generuje reprezentacje dla każdego fragmentu tekstu i aktualizuje lub dodaje je do wybranej wektorowej bazy danych.
  5. Rejestruje magazyn wektorów jako wtyczkę wyszukiwania tekstu za pomocą jądra
  6. Wywołuje wtyczkę w celu rozszerzenia wiadomości dostarczonej do modelu AI, dostarczając więcej kontekstu.

Aby zapoznać się z dwoma bardzo prostymi przykładami sposobu pozyskiwania danych do magazynu wektorów i wyszukiwania wektorów, zapoznaj się z tymi dwoma przykładami, które używają magazynów wektorów Qdrant i InMemory w celu zademonstrowania ich użycia.

Wspólny kod z wieloma sklepami

Magazyny wektorowe mogą się różnić w niektórych aspektach, np. w odniesieniu do typów ich kluczy lub typów pól, które obsługują. Mimo to można napisać kod niezależny od tych różnic.

Aby zapoznać się z przykładem pozyskiwania danych, który pokazuje to, zobacz:

Przykład wyszukiwania wektorowego demonstrujący tę samą koncepcję można znaleźć w poniższych przykładach. Każdy z tych przykładów odwołuje się do tego samego kodu, a różnią się jedynie rodzajem magazynu wektorów, który tworzą do użycia z tym kodem.

Obsługa wielu wektorów w tym samym rekordzie

Abstrakcje magazynu wektorów obsługują wiele wektorów w tym samym rekordzie dla baz danych wektorów, które obsługują tę obsługę. W poniższym przykładzie pokazano, jak utworzyć kilka rekordów z wieloma wektorami i wybrać żądany wektor docelowy podczas wyszukiwania wektorowego.

Wyszukiwanie wektorowe z stronicowaniem

Podczas przeszukiwania wektorów przy użyciu abstrakcji magazynu wektorów można użyć parametrów Top i Skip do obsługi stronicowania, gdzie np. należy utworzyć usługę, która odpowiada za pomocą małego zestawu wyników na żądanie.

Ostrzeżenie

Nie wszystkie bazy danych wektorowych obsługują funkcję Skip natywnie dla wyszukiwań wektorowych, więc niektóre łączniki mogą wymagać pobrania rekordów Skip i Top oraz pomijania na poziomie klienta, aby symulować to zachowanie.

Używanie ogólnego modelu danych a użycie niestandardowego modelu danych

Można użyć abstrakcji magazynu wektorów bez definiowania modelu danych i definiowania schematu za pomocą definicji rekordu. W tym przykładzie pokazano, jak utworzyć magazyn wektorów przy użyciu modelu niestandardowego i odczytać go przy użyciu ogólnego modelu danych lub odwrotnie.

Napiwek

Aby uzyskać więcej informacji na temat korzystania z ogólnego modelu danych, zapoznaj się z tematem Używanie abstrakcji magazynu wektorów bez definiowania własnego modelu danych.

Używanie kolekcji, które zostały utworzone i pozyskane przy użyciu pakietu Langchain

W celu uzyskania dostępu do kolekcji utworzonych i pozyskanych przy użyciu innego systemu, np. Langchain, można użyć abstrakcji magazynu wektorów. Istnieje wiele metod, które można zastosować, aby współdziałanie działało poprawnie. Np.

  1. Tworzenie modelu danych zgodnego ze schematem magazynu używanym przez implementację Langchain.
  2. Używanie definicji rekordu ze specjalnymi nazwami właściwości przechowywania dla pól.

W poniższym przykładzie pokazano, jak używać tych podejść do konstruowania implementacji magazynu wektorów zgodnych ze standardem Langchain.

Dla każdego magazynu wektorów istnieje klasa fabryki, która pokazuje, jak utworzyć magazyn wektorów zgodny z Langchain. Zobacz np.

Kompleksowa próbka RAG z Azure AI Search Vector Store

Ten przykład to zestaw dwóch skryptów, pierwszy pokazujący podstawy konfigurowania magazynu wektorów wyszukiwania sztucznej inteligencji platformy Azure, a drugi pokazujący, jak utworzyć wtyczkę i użyć jej do wykonania funkcji RAG.

  1. Explication modelu danych i sposobu konfigurowania usługi Azure AI Search dla tego przykładu
  2. Tworzenie rekordów, dodawanie wektorów i upserting rekordów w usłudze Azure AI Search
  3. Użyj tego samego połączenia i modelu danych, aby utworzyć funkcje niestandardowe, które następnie mogą być używane przy automatycznym wywoływaniu funkcji dla zaawansowanego RAG

Proste pozyskiwanie danych i wyszukiwanie wektorów

Mamy również przykład pokazujący podstawy tworzenia kolekcji, dodawania rekordów w celu ostatecznego wyszukiwania. Można to rozpocząć od różnych magazynów wektorów.

Proste pozyskiwanie danych i wyszukiwanie wektorów

Aby zapoznać się z prostymi przykładami sposobu pozyskiwania danych do magazynu wektorów i wyszukiwania wektorów, zapoznaj się z tymi przykładami, które korzystają z usługi Azure AI Search, JDBC z magazynami wektorów PostgreSQL, Redis i In Memory.