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-vectordb

    wenn 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.

Lokaler Pfad (für lokale Benutzer)
<lokaler_pfad_zum_index_ordner>

Azure Blob URL-Format (mit installiertem [azure]-Extra)
https://<account_name>.blob.core.windows.net/<container_name>/<pfad_und_ordnername>.

AML-Datenspeicher URL-Format (mit installiertem [azure]-Extra)
azureml://subscriptions/<ihre_subscription>/resourcegroups/<ihre_resource_group>/workspaces/<ihr_workspace>/data/<daten_pfad>

Öffentliche HTTP/HTTPS URL (für öffentliche Demonstrationen)
http(s)://<pfad_und_ordnername>

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
  }
]