Generieren einer Abfrage für strukturierte Daten - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Generieren einer Abfrage für strukturierte Daten

Wenn Sie einen strukturierten Datenspeicher mit Ihrer Wissensdatenbank verbinden, kann Ihre Wissensdatenbank ihn abfragen, indem sie die vom Benutzer bereitgestellte Abfrage in natürlicher Sprache in eine SQL-Abfrage konvertiert, die auf der Struktur der abgefragten Datenquelle basiert. Wenn Sie Folgendes verwenden:

  • Retrieve: Die Antwort gibt das Ergebnis der Ausführung der SQL-Abfrage zurück.

  • RetrieveAndGenerate: Die generierte Antwort basiert auf dem Ergebnis der Ausführung der SQL-Abfrage.

  • GenerateQuery: Amazon Bedrock Knowledge Bases entkoppelt die Konvertierung der Abfrage vom Abrufprozess. Sie können diese API-Operation verwenden, um eine Abfrage in SQL umzuwandeln.

Verwenden der GenerateQuery-API

Sie können die Antwort aus der API-Operation GenerateQuery mit einer nachfolgenden Retrieve- oder RetrieveAndGenerate-Aktion verwenden oder sie in andere Workflows einfügen. GenerateQuery ermöglicht es Ihnen, Abfragen effizient in SQL-Abfragen umzuwandeln, indem die Struktur der Datenquelle Ihrer Wissensdatenbank berücksichtigt wird.

Um eine Abfrage in natürlicher Sprache in eine SQL-Abfrage umzuwandeln, reichen Sie eine GenerateQueryAnfrage mit einem Runtime-Endpunkt von Agents for Amazon Bedrock ein. Die GenerateQuery-Anfrage enthält die folgenden Felder:

  • queryGenerationInput — Geben Sie TEXT als an type und fügen Sie die Abfrage in das text Feld ein.

    Anmerkung

    Abfragen müssen in englischer Sprache verfasst werden.

  • transformationConfiguration – Geben Sie TEXT_TO_SQL als mode an. Geben Sie die Rolle im Feld textToSqlConfiguration KNOWLEDGE_BASE als type an. Geben Sie dann den ARN der Wissensdatenbank an.

Die Antwort gibt ein Array zurück, GeneratedQuerydas ein Objekt im queries Feld enthält. Das Objekt enthält eine SQL-Abfrage für die Abfrage im Feld sql.

Wesentliche Überlegungen

Im Folgenden sind einige wichtige Überlegungen beim Generieren einer Abfrage mithilfe strukturierter Daten aufgeführt.

  • Regionsübergreifende Inferenz und Abruf strukturierter Daten

    Beim strukturierten Datenabruf werden regionsübergreifende Inferenzen verwendet, um das Optimum AWS-Region innerhalb Ihrer Region für die Verarbeitung Ihrer Inferenzanfrage auszuwählen. Dies verursacht keine zusätzlichen Kosten und verbessert das Kundenerlebnis, indem die verfügbaren Ressourcen und die Modellverfügbarkeit maximiert werden.

    Querschlussanfragen werden innerhalb der Regionen gespeichert, die Teil der Region sindAWS-Regionen, in der sich die Daten ursprünglich befinden. Ihre Daten bleiben in der Quellregion gespeichert, aber die Eingabe-Prompts und Ausgabeergebnisse werden möglicherweise außerhalb dieser Region abgelegt. Alle Daten werden bei der Übertragung über das sichere Netzwerk von Amazon verschlüsselt.

    Weitere Informationen finden Sie unter Erhöhen des Durchsatzes mit regionenübergreifender Inferenz.

  • Genauigkeit der generierten SQL-Abfragen

    Die Genauigkeit einer generierten SQL-Abfrage kann je nach Kontext, Tabellenschemas und Absicht einer Benutzerabfrage variieren. Bewerten Sie die generierten Abfragen, um sicherzustellen, dass sie Ihrem Anwendungsfall entsprechen, bevor Sie sie in Ihrem Workload verwenden.

  • Anzahl der abgerufenen Ergebnisse

    Die folgenden Einschränkungen gelten bei der Generierung der Antwort.

    • Bei Nutzung der API-Operationen InvokeAgent, RetrieveAndGenerate und RetrieveAndGenerateStream werden zur Generierung der Antwort nur 10 abgerufene Ergebnisse verwendet.

    • Wenn bei Verwendung der InvokeAgent-API mehr als 10 Zeilen mit abgerufenen Ergebnissen vorhanden sind, wird die Gesamtzahl der abgerufenen Zeilen nicht zur Generierung der Antwort an den Agenten weitergegeben. Wenn Sie stattdessen die RetrieveAndGenerate-API verwenden, ist die Gesamtzahl der Zeilen zur Generierung der endgültigen Antwort im Prompt enthalten.

  • GenerateQuery-API-Kontingent

    Die GenerateQuery API hat ein Kontingent von 2 Anfragen pro Sekunde.

Gewähren einer Rollenberechtigung für den Zugriff auf generierte Abfragen

Wenn Sie für Ihre Wissensdatenbank, die mit einer strukturierten Datenquelle verbunden ist, einige zusätzliche Operationen mit den generierten Abfragen ausführen möchten, müssen Sie Berechtigungen zum Ausführen der GenerateQuery-API-Aktion erteilen. Damit Ihre IAM-Rolle eine Wissensdatenbank abfragen kann, die mit einem strukturierten Datenspeicher verbunden ist, fügen Sie der Rolle die folgende Richtlinie an:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "GetKB", "Effect": "Allow", "Action": [ "bedrock:GetKnowledgeBase" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId" ] }, { "Sid": "GenerateQueryAccess", "Effect": "Allow", "Action": [ "bedrock:GenerateQuery", "sqlworkbench:GetSqlRecommendations" ], "Resource": "*" }, { "Sid": "Retrieve", "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId" ] }, { "Sid": "RetrieveAndGenerate", "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": [ "*" ] } ] }

Sie können Anweisungen entfernen, die Sie je nach Anwendungsfall nicht benötigen:

  • Die GenerateQuery Anweisungen GetKB und müssen aufgerufen werden, GenerateQueryum SQL-Abfragen zu generieren, die Benutzeranfragen und Ihre verbundene Datenquelle berücksichtigen.

  • Die Anweisung Retrieve muss Retrieve aufrufen, um Daten aus Ihrem strukturierten Datenspeicher abzurufen.

  • Die Anweisung RetrieveAndGenerate muss RetrieveAndGenerate aufrufen, um Daten aus Ihrem strukturierten Datenspeicher abzurufen und Antworten basierend auf den Daten zu generieren.