Ukázky kódu sémantického úložiště vektorů jádra (Preview)

Varování

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.

Konec ke konci RAG vzoru s Vektorovými Obchody

Tento příklad je samostatná konzolová aplikace, která demonstruje RAG pomocí sémantického jádra. Ukázka má následující charakteristiky:

  1. Umožňuje výběr chatu a vkládání služeb.
  2. Umožňuje výběr vektorových databází.
  3. Přečte obsah jednoho nebo více souborů PDF a vytvoří bloky dat pro každý oddíl.
  4. Generuje vkládání pro každý blok textu a upsertuje je do zvolené vektorové databáze.
  5. Zaregistruje vektorové úložiště jako modul plug-in pro vyhledávání textu v jádru.
  6. Vyvolá modul plug-in pro rozšíření výzvy poskytnuté modelu AI o další kontext.

Pro dva velmi jednoduché příklady, jak ingestovat data do úložiště vektorů a provádět vektorové vyhledávání, podívejte se na tyto dva příklady, které používají úložiště vektorů Qdrant a InMemory k předvedení jejich použití.

Běžný kód s více úložišti

Úložiště vektorů se mohou v určitých aspektech lišit, například pokud jde o typy jejich klíčů nebo typy polí, které podporují. I tak je možné napsat kód, který je nezávislý na těchto rozdílech.

Ukázku příjmu dat, která to demonstruje, viz:

Ukázku vektorového vyhledávání, která demonstruje stejný koncept, najdete v následujících ukázkách. Každá z těchto ukázek odkazuje na stejný společný kód a liší se pouze u typu úložiště vektorů, které vytvoří pro použití se společným kódem.

Podpora více vektorů ve stejném záznamu

Abstrakce Vector Store podporují více vektorů ve stejném záznamu pro vektorové databáze, které to podporují. Následující ukázka ukazuje, jak vytvořit některé záznamy s více vektory a vybrat požadovaný cílový vektor při hledání vektorů.

Vektorové vyhledávání se stránkováním

Při hledání vektorů pomocí abstrakcí vektorového úložiště je možné použít parametry Top a Skip pro podporu stránkování, kde například potřebujete vytvořit službu, která odpovídá malou sadou výsledků na požadavek.

Varování

Ne všechny vektorové databáze nativně podporují funkci Skip pro vektorové vyhledávání, takže některé konektory můžou muset načíst skip + top záznamy a přeskočit na straně klienta, aby simulovaly toto chování.

Použití obecného datového modelu vs. vlastního datového modelu

Abstrakce vektorového úložiště je možné použít bez definování datového modelu a definování schématu prostřednictvím definice záznamu. Tento příklad ukazuje, jak můžete vytvořit vektorové úložiště pomocí vlastního modelu a číst pomocí obecného datového modelu nebo naopak.

Návod

Další informace o použití obecného datového modelu najdete v abstrakcích vektorového úložiště bez definování vlastního datového modelu.

Použití kolekcí vytvořených a zpracovaných pomocí Langchain

Abstrakce vektorového úložiště je možné použít pro přístup k kolekcím vytvořeným a přijatým pomocí jiného systému, například langchainu. Existuje několik přístupů, které je možné dodržovat, aby interoperabilita fungovala správně. Např.

  1. Vytvoření datového modelu, který odpovídá schématu úložiště použitému implementaci Langchain.
  2. Použití definice záznamu se speciálními názvy vlastností úložiště pro pole

V následující ukázce si ukážeme, jak tyto přístupy použít k vytvoření implementací vektorového úložiště kompatibilních s jazykem Langchain.

Pro každý vektorový úložiště existuje tovární třída, která demonstruje, jak sestavit vektorové úložiště kompatibilní s Langchainem. Viz např.

Ukázka RAG od začátku do konce s využitím Azure AI Search Vector Store

Tento příklad je sada dvou skriptů, první znázorňující základy nastavení azure AI Search Vector Store a druhý ukazuje, jak z něj vytvořit modul plug-in a použít ho k provedení RAG.

  1. Duplikace datového modelu a nastavení služby Azure AI Search pro tuto ukázku
  2. Vytváření záznamů, přidávání vektorů a upsertování záznamů ve službě Azure AI Search
  3. Použijte stejné připojení a datový model k vytvoření vlastních funkcí, které lze poté využít s automatickým voláním funkcí pro pokročilé RAG

Jednoduché ingestování dat a vektorové vyhledávání

Máme také ukázku, která ukazuje základy vytváření kolekce, přidávání záznamů a nakonec hledání, to může být zahájeno s různými vektorovými úložišti.

Jednoduché ingestování dat a vektorové vyhledávání

Jednoduché příklady příjmu dat do úložiště vektorů a vyhledávání vektorů najdete v těchto příkladech, které využívají Azure AI Search, JDBC s úložišti vektorů PostgreSQL, Redis a In Memory Vector.