Faiss Index Lookup#
Faiss Index Lookup ist ein Tool, das speziell für die Abfrage innerhalb eines vom Benutzer bereitgestellten Faiss-basierten Vektor-Speichers entwickelt wurde. In Kombination mit unserem Large Language Model (LLM)-Tool ermöglicht es Benutzern, kontextbezogene Informationen aus einer Domänen-Wissensbasis zu extrahieren.
Anforderungen#
Für AzureML-Benutzer ist das Tool im Standard-Image installiert. Sie können das Tool ohne zusätzliche Installation verwenden.
Für lokale Benutzer, wenn Ihr Index in einem lokalen Pfad gespeichert ist,
pip install promptflow-vectordbwenn Ihr Index in Azure Storage gespeichert ist,
pip install promptflow-vectordb[azure]
Voraussetzungen#
Für AzureML-Benutzer,#
Schritt 1. Bereiten Sie einen zugänglichen Pfad auf Azure Blob Storage vor. Hier ist die Anleitung, falls ein neues Speicherkonto erstellt werden muss: Azure Storage Account.
Schritt 2. Erstellen Sie entsprechende Faiss-basierte Indexdateien auf Azure Blob Storage. Wir unterstützen das LangChain-Format (index.faiss + index.pkl) für die Indexdateien, die entweder durch die Verwendung unseres promptflow-vectordb SDK oder durch Befolgen der Schnell-Anleitung aus der LangChain-Dokumentation vorbereitet werden können. Bitte beachten Sie die Anweisungen unter Ein Beispielcode zur Erstellung eines Faiss-Index zum Erstellen des Index mit dem promptflow-vectordb SDK.
Schritt 3. Abhängig davon, wo Sie Ihre eigenen Indexdateien ablegen, sollte die vom Promptflow-Runtime verwendete Identität mit bestimmten Rollen berechtigt sein. Bitte beachten Sie Schritte zur Zuweisung einer Azure-Rolle
Location
Rolle
Workspace-Datenspeicher oder Standard-Blob des Workspace
AzureML Data Scientist
andere Blobs
Storage Blob Data Reader
Für lokale Benutzer,#
Erstellen Sie Faiss-basierte Indexdateien im lokalen Pfad, indem Sie nur Schritt 2 oben ausführen.
Eingaben#
Das Tool akzeptiert die folgenden Eingaben
Name |
Typ |
Beschreibung |
Erforderlich |
|---|---|---|---|
Pfad |
string |
URL oder Pfad zum Vektor-Speicher. |
Ja |
Vektor |
list[float] |
Der Zielvektor, der abgefragt werden soll und der vom LLM-Tool generiert werden kann. |
Ja |
top_k |
integer |
Die Anzahl der zurückzugebenden Top-Score-Entitäten. Der Standardwert ist 3. |
Nein |
Ausgaben#
Das Folgende ist ein Beispiel für eine JSON-Format-Antwort, die vom Tool zurückgegeben wird und die Top-K-bewerteten Entitäten enthält. Die Entität folgt einem generischen Schema für Vektorsuchergebnisse, das von unserem promptflow-vectordb SDK bereitgestellt wird. Für die Faiss Index Suche werden die folgenden Felder befüllt:
Feldname |
Typ |
Beschreibung |
|---|---|---|
text |
string |
Text der Entität |
Score |
float |
Abstand zwischen der Entität und dem Abfragevektor |
metadata |
dict |
Benutzerdefinierte Schlüssel-Wert-Paare, die vom Benutzer beim Erstellen des Index bereitgestellt wurden |
Ausgabe
[
{
"metadata": {
"link": "http://sample_link_0",
"title": "title0"
},
"original_entity": null,
"score": 0,
"text": "sample text #0",
"vector": null
},
{
"metadata": {
"link": "http://sample_link_1",
"title": "title1"
},
"original_entity": null,
"score": 0.05000000447034836,
"text": "sample text #1",
"vector": null
},
{
"metadata": {
"link": "http://sample_link_2",
"title": "title2"
},
"original_entity": null,
"score": 0.20000001788139343,
"text": "sample text #2",
"vector": null
}
]