Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Waarschuwing
De Semantische Kernel Vector Store-functionaliteit is in preview en verbeteringen waarvoor wijzigingen die fouten veroorzaken, kunnen nog steeds in beperkte omstandigheden optreden voordat ze worden uitgebracht.
End-to-end RAG-voorbeeld met Vector Stores
Dit voorbeeld is een zelfstandige consoletoepassing die RAG laat zien met behulp van Semantische kernel. Het voorbeeld heeft de volgende kenmerken:
- Hiermee kunt u kiezen uit chat- en insluitingsservices
- Hiermee kunt u een keuze maken uit vectordatabases
- Leest de inhoud van een of meer PDF-bestanden en maakt een segment voor elke sectie
- Hiermee genereert u embeddings voor elk tekstgedeelte en voegt deze toe aan de gekozen vectordatabase.
- Registreert de Vector Store als een invoegtoepassing voor tekst zoeken met de kernel
- Roept de invoegtoepassing aan om de prompt voor het AI-model met meer context te verbeteren
Eenvoudige gegevensopname en vectorzoekopdrachten
Voor twee zeer eenvoudige voorbeelden van het uitvoeren van gegevensopname in een vectorarchief en het uitvoeren van vectorzoekopdrachten, bekijkt u deze twee voorbeelden, die gebruikmaken van Qdrant- en InMemory-vectorarchieven om hun gebruik te demonstreren.
Algemene code met meerdere winkels
Vectorarchieven kunnen in bepaalde aspecten verschillen, bijvoorbeeld met betrekking tot de typen sleutels of de typen velden die elk ondersteunen. Toch is het mogelijk om code te schrijven die agnostisch is voor deze verschillen.
Zie voor een voorbeeld van gegevensopname dat dit laat zien:
Zie de volgende voorbeelden voor een voorbeeld van vectorzoekopdrachten waarin hetzelfde concept wordt gedemonstreerd. Elk van deze voorbeelden verwijst naar dezelfde algemene code en verschilt alleen van het type vectorarchief dat ze maken voor gebruik met de algemene code.
- Azure AI Search vectorzoekopdrachten met gemeenschappelijke code
- InMemory vector zoeken met algemene code
- Postgres vectorzoekopdracht met algemene code
- Qdrant vector zoeken met algemene code
- Redis vector search with common code (Redis Vector Search met algemene code)
Ondersteuning van meerdere vectoren in dezelfde record
De Vector Store-abstracties ondersteunen meerdere vectoren in dezelfde record, voor vectordatabases die dit ondersteunen. In het volgende voorbeeld ziet u hoe u enkele records met meerdere vectoren maakt en de gewenste doelvector kiest wanneer u een vectorzoekopdracht uitvoert.
Vector zoeken met paginering
Wanneer u vectorzoekopdrachten uitvoert met de Vector Store-abstracties, kunt u de parameters Top en Skip gebruiken om paging te ondersteunen, waarbij u bijvoorbeeld een service moet bouwen die reageert met een kleine set resultaten per aanvraag.
Waarschuwing
Niet alle vectordatabases ondersteunen systeemeigen skip-functionaliteit voor vectorzoekopdrachten, dus sommige connectors moeten mogelijk Skip + Top-records ophalen en overslaan aan de clientzijde om dit gedrag te simuleren.
Het algemene gegevensmodel gebruiken versus een aangepast gegevensmodel gebruiken
Het is mogelijk om de Vector Store-abstracties te gebruiken zonder een gegevensmodel te definiëren en uw schema te definiëren via een recorddefinitie. In dit voorbeeld ziet u hoe u een vectorarchief kunt maken met behulp van een aangepast model en kunt lezen met behulp van het algemene gegevensmodel of omgekeerd.
Aanbeveling
Raadpleeg voor meer informatie over het gebruik van het algemene gegevensmodel het gebruik van Vector Store-abstracties zonder uw eigen gegevensmodel te definiëren.
Verzamelingen gebruiken die zijn gemaakt en opgenomen met Langchain
Het is mogelijk om de Vector Store-abstracties te gebruiken voor toegang tot verzamelingen die zijn gemaakt en opgenomen met behulp van een ander systeem, bijvoorbeeld Langchain. Er zijn meerdere benaderingen die kunnen worden gevolgd om de interoperabiliteit correct te laten werken. Bijvoorbeeld.
- Een gegevensmodel maken dat overeenkomt met het opslagschema dat door de Langchain-implementatie wordt gebruikt.
- Een recorddefinitie gebruiken met speciale namen van opslageigenschappen voor velden.
In het volgende voorbeeld laten we zien hoe we deze methoden kunnen gebruiken om compatibele Vector Store-implementaties van Langchain te maken.
Voor elk vectorarchief is er een fabrieksklasse die laat zien hoe u de compatibele Vector Store van Langchain bouwt. Zie bijvoorbeeld
End-to-end RAG-voorbeeld met Azure AI Search Vector Store
Dit voorbeeld is een set van twee scripts, de eerste met de basisbeginselen van het instellen van de Azure AI Search Vector Store en de tweede die laat zien hoe u een invoegtoepassing maakt en dat gebruikt om RAG uit te voeren.
- Explicatie van het gegevensmodel en het instellen van Azure AI Search voor dit voorbeeld
- Records maken, vectoren toevoegen en bijwerken of invoegen van records in Azure AI Search
- Gebruik hetzelfde verbindings- en gegevensmodel om aangepaste functies te maken die vervolgens kunnen worden gebruikt met automatische functieaanroepen voor geavanceerde RAG
Eenvoudige gegevensopname en vectorzoekopdrachten
We hebben ook een voorbeeld dat de basisbeginselen toont van het maken van de verzameling, tot het toevoegen van records en om uiteindelijk te zoeken. Dit kan worden gestart met verschillende vectoropslagen.
Eenvoudige gegevensopname en vectorzoekopdrachten
Voor eenvoudige voorbeelden van het uitvoeren van gegevensopname in een vectorarchief en vectorzoekopdrachten, bekijkt u deze voorbeelden, die gebruikmaken van Azure AI Search, JDBC met PostgreSQL, Redis en In Memory Vector Stores.