So konfigurieren Sie Abfragen und die Antwortgenerierung und passen diese an - Amazon Bedrock

So konfigurieren Sie Abfragen und die Antwortgenerierung und passen diese an

Sie können den Abruf und die Generierung von Antworten konfigurieren und anpassen und so die Relevanz der Antworten weiter verbessern. Beispielsweise können Sie Filter auf Felder/Attribute von Dokumentmetadaten anwenden, um die zuletzt aktualisierten Dokumente oder Dokumente mit den letzten Änderungszeiten zu verwenden.

Anmerkung

Alle folgenden Konfigurationen, mit Ausnahme von Orchestrierung und Generierung sind nur auf unstrukturierte Datenquellen anwendbar.

Wählen Sie eines der folgenden Themen aus, um mehr über diese Konfigurationen in der Konsole oder API zu erfahren:

Wenn Sie eine Wissensdatenbank abfragen, gibt Amazon Bedrock standardmäßig bis zu fünf Ergebnisse in der Antwort zurück. Jedes Ergebnis entspricht einem Quellblock.

Anmerkung

Die tatsächliche Anzahl der Ergebnisse in der Antwort kann unter dem angegebenen numberOfResults-Wert liegen, da dieser Parameter die maximale Anzahl der zurückzugebenden Ergebnisse festlegt. Wenn Sie hierarchisches Chunking für Ihre Chunking-Strategie konfiguriert haben, entspricht der Parameter numberOfResults der Anzahl der untergeordneten Blöcke, die die Wissensdatenbank abrufen wird. Da untergeordnete Blöcke, die denselben übergeordneten Block teilen, in der endgültigen Antwort durch den übergeordneten Block ersetzt werden, kann die Anzahl der zurückgegebenen Ergebnisse geringer sein als die angeforderte Menge.

Wählen Sie die Registerkarte mit Ihrer bevorzugten Methode aus und gehen Sie dann wie folgt vor, um die maximale Anzahl zurückzugebender Ergebnisse zu modifizieren:

Console

Folgen Sie den Konsolenschritten unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Erweitern Sie im Bereich Konfigurationen den Abschnitt Quellblöcke und geben Sie die maximale Anzahl an Quellblöcken ein, die zurückgegeben werden sollen.

API

Wenn Sie eine Retrieve- oder RetrieveAndGenerate-Anfrage stellen, schließen Sie zusätzlich ein retrievalConfiguration-Feld ein, das einem KnowledgeBaseRetrievalConfiguration-Objekt zugeordnet ist. Um die Position dieses Feldes zu sehen, konsultieren Sie die Anfragekörper von Retrieve und RetrieveAndGenerate in der API-Referenz.

Das folgende JSON-Objekt zeigt die Felder, die im KnowledgeBaseRetrievalConfiguration-Objekt als Minimum erforderlich sind, um die maximale Anzahl zurückzugebender Ergebnisse festzulegen:

"retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": number } }

Geben Sie die maximale Anzahl der abzurufenden Ergebnisse an (siehe auch das Feld numberOfResults in KnowledgeBaseRetrievalConfiguration für den Bereich zulässiger Werte), die im Feld numberOfResults zurückgegeben werden sollen.

Der Suchtyp definiert, wie Datenquellen in der Wissensdatenbank abgefragt werden. Mögliche Suchtypen:

Anmerkung

Die Hybridsuche wird nur für Vektorspeicher in Amazon RDS, Amazon OpenSearch Serverless und MongoDB unterstützt, die ein filterbares Textfeld enthalten. Wenn Sie einen anderen Vektorspeicher verwenden oder Ihr Vektorspeicher kein filterbares Textfeld enthält, verwendet die Abfrage eine semantische Suche.

  • Standard – Amazon Bedrock wählt die Suchstrategie für Sie aus.

  • Hybrid – Hier werden Vektoreinbettungen (semantische Suche) in Kombination mit Rohtext durchsucht.

  • Semantisch – Durchsucht ausschließlich Vektoreinbettungen.

Wählen Sie die Registerkarte mit Ihrer bevorzugten Methode aus und führen Sie dann die Schritte aus, um zu erfahren, wie Sie den Suchtyp definieren:

Console

Folgen Sie den Konsolenschritten unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Wenn Sie den Bereich Konfigurationen öffnen, erweitern Sie den Abschnitt Suchtyp, aktivieren dann die Option Überschreiben der Standardsuche und wählen eine Option aus.

API

Wenn Sie eine Retrieve- oder RetrieveAndGenerate-Anfrage stellen, schließen Sie zusätzlich ein retrievalConfiguration-Feld ein, das einem KnowledgeBaseRetrievalConfiguration-Objekt zugeordnet ist. Um die Position dieses Feldes zu sehen, konsultieren Sie die Anfragekörper von Retrieve und RetrieveAndGenerate in der API-Referenz.

Das folgende JSON-Objekt zeigt die Felder, die im KnowledgeBaseRetrievalConfiguration-Objekt als Minimum erforderlich sind, um Suchtypenkonfigurationen festzulegen:

"retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC" } }

Geben Sie den Suchtyp im Feld overrideSearchType an. Ihnen stehen folgende Optionen zur Verfügung:

  • Wenn Sie keinen Wert angeben, entscheidet Amazon Bedrock, welche Suchstrategie am besten für Ihre Vektorspeicherkonfiguration geeignet ist.

  • HYBRID – Amazon Bedrock fragt die Wissensdatenbank sowohl anhand der Vektoreinbettungen als auch anhand des Rohtextes ab.

  • SEMANTISCH – Amazon Bedrock fragt die Wissensdatenbank anhand ihrer Vektoreinbettungen ab.

Console

Folgen Sie den Konsolenschritten unter So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Wenn Sie den Bereich Konfigurationen öffnen, erweitern Sie den Abschnitt Bevorzugtes Streaming und aktivieren Sie Stream-Antwort.

API

Verwenden Sie die RetrieveAndGenerateStream-API, um Antworten zu streamen. Weitere Informationen zum Ausfüllen der Felder finden Sie auf der Registerkarte API unter So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten.

Sie können Filteroperatoren auf Dokumentfelder/Attribute anwenden, um die Relevanz der Antworten weiter zu verbessern. Ihre Datenquellen können Dokumentmetadatenattribute/Felder enthalten, nach denen gefiltert werden soll, und angeben, welche Felder in die Einbettungen aufgenommen werden sollen.

Beispielsweise steht „epoch_modification_time“ für die Zeit in Sekunden seit dem 1. Januar 1970 (UTC), als das Dokument zuletzt aktualisiert wurde. Sie können nach den neuesten Daten filtern, wobei „epoch_modification_time“ größer als eine bestimmte Zahl ist. Diese neuesten Dokumente können für die Abfrage verwendet werden.

Überprüfen Sie, ob Ihre Wissensdatenbank die folgenden Anforderungen erfüllt, um bei der Abfrage einer Wissensdatenbank Filter zu verwenden:

  • Bei der Konfiguration Ihres Datenquellen-Connectors crawlen die meisten Connectors durch die wichtigsten Metadatenfelder Ihrer Dokumente. Wenn Sie einen Amazon-S3-Bucket als Datenquelle verwenden, muss der Bucket mindestens einen fileName.extension.metadata.json enthalten, der der jeweiligen Datei oder dem Dokument zugeordnet ist. Weitere Informationen zur Konfiguration der Metadatendatei finden Sie in Konfiguration der Verbindung unter Dokumentmetadatenfelder.

  • Wenn sich der Vektorindex für Ihre Wissensdatenbank in einem Vektorspeicher von Amazon OpenSearch Serverless befindet, überprüfen Sie, ob der Vektorindex mit der faiss-Engine konfiguriert ist. Wenn der Vektorindex mit der nmslib-Engine konfiguriert ist, müssen Sie einen der folgenden Prozesse ausführen:

  • Wenn Ihre Wissensdatenbank einen Vektorindex in einem S3-Vektor-Bucket verwendet, können Sie die Filter stringContains und startsWith nicht verwenden.

  • Wenn Sie Metadaten zu einem bestehenden Vektorindex in einem Datenbank-Cluster unter Amazon Aurora hinzufügen, empfehlen wir, den Feldnamen der benutzerdefinierten Metadatenspalte anzugeben, um alle Ihre Metadaten in einer einzigen Spalte zu speichern. Diese Spalte wird während der Datenerfassung mit allen in den Metadatendateien enthaltenen Informationen aus Ihren Datenquellen gefüllt. Wenn Sie entscheiden, dieses Feld anzugeben, müssen Sie einen Index für diese Spalte erstellen.

    • Wenn Sie in der Konsole eine neue Wissensdatenbank erstellen und Amazon Bedrock Ihre Amazon-Aurora-Datenbank konfigurieren lassen, wird automatisch eine einzelne Spalte erstellt und mit den Informationen aus Ihren Metadatendateien befüllt.

    • Wenn Sie entscheiden, einen weiteren Vektorindex im Vektorspeicher zu erstellen, müssen Sie den Namen des benutzerdefinierten Metadatenfeldes angeben, um Informationen aus Ihren Metadatendateien zu speichern. Wenn Sie diesen Feldnamen nicht angeben, müssen Sie für jedes Metadatenattribut in Ihren Dateien eine Spalte erstellen und den Datentyp (Text, Zahl oder boolescher Wert) angeben. Wenn das Attribut genre beispielsweise in Ihrer Datenquelle vorhanden ist, würden Sie eine Spalte mit dem Namen genre und der Angabe text als Datentyp hinzufügen. Während der Aufnahme werden diese separaten Spalten mit den entsprechenden Attributwerten gefüllt.

Wenn sich PDF-Dokumente in Ihrer Datenquelle befinden und Sie Amazon OpenSearch Serverless als Vektorspeicher verwenden, generieren die Amazon-Bedrock-Wissensdatenbanken Dokumentseitennummern und speichern diese in einem Metadatenfeld bzw. Attribut namens x-amz-bedrock-kb-document-page-number. Beachten Sie, dass Seitenzahlen, die in einem Metadatenfeld gespeichert sind, nicht unterstützt werden, wenn Sie für Ihre Dokumente kein Chunking auswählen.

Sie können die folgenden Filteroperatoren verwenden, um bei der Abfrage die Ergebnisse zu filtern:

Filtern von Operatoren
Operator Konsole API-Filtername Unterstützte Attributdatentypen Gefilterte Ergebnisse
Gleichheitszeichen = equals Zeichenfolge, Zahl, boolescher Wert Das Attribut entspricht dem von Ihnen angegebenen Wert
Ungleich != notEquals Zeichenfolge, Zahl, boolescher Wert Das Attribut entspricht nicht dem von Ihnen angegebenen Wert
Größer als > greaterThan Zahl Das Attribut ist größer als der von Ihnen angegebene Wert
Größer als oder gleich >= greaterThanOrEquals Zahl Das Attribut ist größer als oder gleich dem von Ihnen angegebenen Wert
Kleiner als < lessThan Zahl Das Attribut ist kleiner als der von Ihnen angegebene Wert
Kleiner als oder gleich <= lessThanOrEquals Zahl Das Attribut ist kleiner als der oder gleich dem von Ihnen angegebenen Wert
In : in Zeichenfolgenliste Das Attribut ist in der von Ihnen angegebenen Liste enthalten (wird derzeit am besten für Vektorspeicher in Amazon OpenSearch Serverless und Neptune Analytics GraphRAG unterstützt)
NOT IN !: notIn Zeichenfolgenliste Das Attribut ist nicht in der von Ihnen angegebenen Liste enthalten (wird derzeit am besten für Vektorspeicher in Amazon OpenSearch Serverless und Neptune Analytics GraphRAG unterstützt)
Zeichenfolge enthält Nicht verfügbar stringContains Zeichenfolge Das Attribut muss eine Zeichenfolge sein. Der Attributname stimmt mit dem Schlüssel überein, und dessen Wert ist entweder eine Zeichenfolge, die den von Ihnen angegebenen Wert als Teilzeichenfolge enthält, oder eine Liste mit einem Element, das den angegebenen Wert als Teilzeichenfolge enthält (derzeit am besten unterstützt durch den Vektorspeicher in Amazon OpenSearch Serverless. Der Vektorspeicher in Neptune Analytics GraphRAG unterstützt zwar die Zeichenfolgenvariante, jedoch nicht die Listenvariante dieses Filters).
Liste enthält Nicht verfügbar listContains Zeichenfolge Das Attribut muss eine Zeichenfolgenliste sein. Der Attributname stimmt mit dem Schlüssel überein, und dessen Wert ist eine Liste, die den von Ihnen angegebenen Wert als eines ihrer Elemente enthält (derzeit am besten unterstützt durch Vektorspeicher in Amazon OpenSearch Serverless).

Sie können die folgenden logischen Operatoren verwenden, um Filteroperatoren zu kombinieren:

Logische Operatoren
Operator Konsole API-Filterfeldname Gefilterte Ergebnisse
And and andAll Die Ergebnisse erfüllen alle Filterausdrücke in der Gruppe
Oder or orAll Die Ergebnisse erfüllen mindestens einen der Filterausdrücke in der Gruppe

Wählen Sie den Tab für Ihre bevorzugte Methode aus und führen Sie dann die Schritte aus, um zu erfahren, wie Sie Ergebnisse mithilfe von Metadaten filtern:

Console

Folgen Sie den Konsolenschritten unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Wenn Sie den Bereich Konfigurationen öffnen, wird ein Filterabschnitt angezeigt. Die folgenden Verfahren beschreiben verschiedene Anwendungsfälle:

  • Um einen Filter hinzuzufügen, erstellen Sie einen Filterausdruck, indem Sie ein Metadatenattribut, einen Filteroperator und einen Wert in das Feld eingeben. Trennen Sie die einzelnen Teile des Ausdrucks mit Leerzeichen. Drücken Sie die Eingabetaste, um den Filter hinzuzufügen.

    Eine Liste der akzeptierten Filteroperatoren finden Sie in der Tabelle mit den Filteroperatoren oben. Sie können auch eine Liste der Filteroperatoren anzeigen, indem Sie nach dem Metadatenattribut ein Leerzeichen hinzufügen.

    Anmerkung

    Sie müssen Zeichenfolgen in Anführungszeichen setzen.

    Sie können beispielsweise nach Ergebnissen aus Quelldokumenten filtern, die ein genre-Metadatenattribut enthalten, dessen Wert "entertainment" ist, indem Sie den folgenden Filter hinzufügen: genre = "entertainment".

    So fügen Sie einen einzelnen Filter hinzu.
  • Um einen weiteren Filter hinzuzufügen, geben Sie einen weiteren Filterausdruck in das Feld ein und drücken die Eingabetaste. Sie können bis zu 5 Filter zu der Gruppe hinzufügen.

    So fügen Sie einen weiteren Filter hinzu.
  • Standardmäßig gibt die Abfrage Ergebnisse zurück, die alle von Ihnen angegebenen Filterausdrücke erfüllen. Um Ergebnisse zurückzugeben, die mindestens einen der Filterausdrücke erfüllen, klicken Sie auf das Dropdownmenü AND zwischen zwei beliebigen Filtervorgängen und klicken Sie dann auf OR.

    So ändern Sie die logische Operation zwischen Filtern.
  • Um verschiedene logische Operatoren zu kombinieren, wählen Sie + Gruppe hinzufügen aus, um eine Filtergruppe hinzuzufügen. Geben Sie Filterausdrücke in die neue Gruppe ein. Sie können bis zu 5 Filtergruppen hinzufügen.

    Fügen Sie eine Filtergruppe hinzu, um verschiedene logische Operatoren zu kombinieren.
  • Um den logischen Operator zu ändern, der zwischen allen Filtergruppen verwendet wird, wählen Sie das AND-Dropdown-Menü zwischen zwei beliebigen Filtergruppen aus und wählen dann OR aus.

    So ändern Sie die logische Operation zwischen Filtergruppen.
  • Um einen Filter zu bearbeiten, wählen Sie ihn aus, modifizieren den Filtervorgang und klicken dann auf Anwenden.

    Bearbeiten Sie einen Filter.
  • Um eine Filtergruppe zu entfernen, klicken Sie auf das Papierkorbsymbol ( Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family. ) neben der Gruppe. Um einen Filter zu entfernen, klicken Sie auf das Löschsymbol ( Close or cancel icon represented by an "X" symbol. ) neben dem Filter.

    So löschen Sie einen Filter oder eine Filtergruppe.

In der folgenden Abbildung sehen Sie ein Beispiel für eine Filterkonfiguration, mit der alle Dokumente zurückgegeben werden, die nach 2018 geschrieben wurden und deren Genre "entertainment" ist sowie Dokumente, deren Genre "cooking" oder "sports" ist und deren Autor mit"C" beginnt.

Beispiel für eine Filterkonfiguration.
API

Wenn Sie eine Retrieve- oder RetrieveAndGenerate-Anfrage stellen, schließen Sie zusätzlich ein retrievalConfiguration-Feld ein, das einem KnowledgeBaseRetrievalConfiguration-Objekt zugeordnet ist. Um die Position dieses Feldes zu sehen, konsultieren Sie die Anfragekörper von Retrieve und RetrieveAndGenerate in der API-Referenz.

Das folgende JSON-Objekt zeigt die Felder, die im KnowledgeBaseRetrievalConfiguration-Objekt als Minimum erforderlich sind, um Filter für verschiedene Anwendungsfälle festzulegen:

  1. So verwenden Sie einen einzelnen Filteroperator (siehe Tabelle mit Filteroperatoren oben).

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } } } }
  2. Verwenden Sie einen logischen Operator (siehe Tabelle mit logischen Operatoren oben), um bis zu 5 Operatoren zu kombinieren.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] } } }
  3. Verwenden Sie einen logischen Operator, um bis zu 5 Filteroperatoren zu einer Filtergruppe zu kombinieren, und einen zweiten logischen Operator, um diese Filtergruppe mit einem anderen Filteroperator zu kombinieren.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] } ] } } }
  4. So kombinieren Sie bis zu 5 Filtergruppen, indem Sie sie in einen anderen logischen Operator einbetten. Sie können eine Einbettungsstufe erstellen.

    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] ] } } }

In der folgenden Tabelle werden die möglichen Filtertypen beschrieben:

Feld Unterstützte Wertdatentypen Gefilterte Ergebnisse
equals Zeichenfolge, Zahl, boolescher Wert Das Attribut entspricht dem von Ihnen angegebenen Wert
notEquals Zeichenfolge, Zahl, boolescher Wert Das Attribut entspricht nicht dem von Ihnen angegebenen Wert
greaterThan Zahl Das Attribut ist größer als der von Ihnen angegebene Wert
greaterThanOrEquals Zahl Das Attribut ist größer als oder gleich dem von Ihnen angegebenen Wert
lessThan Zahl Das Attribut ist kleiner als der von Ihnen angegebene Wert
lessThanOrEquals Zahl Das Attribut ist kleiner als der oder gleich dem von Ihnen angegebenen Wert
in Liste von Zeichenfolgen Das Attribut ist in der von Ihnen bereitgestellten Liste
notIn Liste von Zeichenfolgen Das Attribut ist nicht in der von Ihnen bereitgestellten Liste
startsWith Zeichenfolge Das Attribut beginnt mit der von Ihnen bereitgestellten Zeichenfolge (wird nur für Vektorspeicher von Amazon OpenSearch Serverless unterstützt)

Sie können die folgenden logischen Operatoren verwenden, um Filtertypen zu kombinieren:

Feld Zugeordnet zu Gefilterte Ergebnisse
andAll Liste mit bis zu 5 Filtertypen Die Ergebnisse erfüllen alle Filterausdrücke in der Gruppe
orAll Liste mit bis zu 5 Filtertypen Die Ergebnisse erfüllen mindestens einen der Filterausdrücke in der Gruppe

Beispiele finden Sie unter Senden einer Abfrage und Filter einschließen (Retrieve) und Senden einer Abfrage und Filter einschließen (RetrieveAndGenerate).

Amazon Bedrock Knowledge Base generiert einen Abruffilter und wendet diesen anhand der Benutzerabfrage und eines Metadatenschemas an.

Anmerkung

Dieses Feature funktioniert derzeit nur mit Anthropic Claude 3.5 Sonnet.

Die implicitFilterConfiguration ist im Hauptteil der vectorSearchConfiguration in der Retrieve-Anfrage angegeben. Schließen Sie die folgenden Felder mit ein:

  • metadataAttributes – Geben Sie in diesem Array Schemas an, die Metadatenattribute beschreiben, für die das Modell einen Filter generiert.

  • modelArn – Der ARN des zu verwendenden Modells.

Im Folgenden wird ein Beispiel für Metadatenschemas gezeigt, die Sie dem Array unter metadataAttributes hinzufügen können.

[ { "key": "company", "type": "STRING", "description": "The full name of the company. E.g. `Amazon.com, Inc.`, `Alphabet Inc.`, etc" }, { "key": "ticker", "type": "STRING", "description": "The ticker name of a company in the stock market, e.g. AMZN, AAPL" }, { "key": "pe_ratio", "type": "NUMBER", "description": "The price to earning ratio of the company. This is a measure of valuation of a company. The lower the pe ratio, the company stock is considered chearper." }, { "key": "is_us_company", "type": "BOOLEAN", "description": "Indicates whether the company is a US company." }, { "key": "tags", "type": "STRING_LIST", "description": "Tags of the company, indicating its main business. E.g. `E-commerce`, `Search engine`, `Artificial intelligence`, `Cloud computing`, etc" } ]

Sie können für Ihre Wissensdatenbank Schutzmaßnahmen für Ihre Anwendungsfälle und verantwortungsvolle KI-Richtlinien implementieren. Sie können mehrere Integritätsschutzmaßnahmen treffen, die auf verschiedene Anwendungsfälle zugeschnitten sind, und sie auf mehrere Anfrage- und Antwortbedingungen anwenden, um eine konsistente Benutzerumgebung zu gewährleisten und die Sicherheitskontrollen in Ihrer gesamten Wissensdatenbank zu standardisieren. Sie können abgelehnte Themen so konfigurieren, dass unerwünschte Themen und Inhaltsfilter schädliche Inhalte in Modelleingaben und -antworten blockieren. Weitere Informationen finden Sie unter So erkennen und filtern Sie schädliche Inhalte mithilfe vom Integritätsschutz für Amazon Bedrock.

Anmerkung

Die Verwendung eines Integritätsschutzes mit kontextueller Begründungsprüfung für Wissensdatenbanken wird aktuell in Claude 3 Sonnet und Haiku nicht unterstützt.

Allgemeine Leitfäden zum Prompt-Engineering finden Sie unter Prompt-Engineering-Konzepte.

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie die angegebenen Schritte:

Console

Folgen Sie den Konsolenschritten unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Aktivieren Sie im Testfenster die Option Antworten generieren. Erweitern Sie dann im Bereich Konfigurationen den Abschnitt Integritätsschutz.

  1. Wählen Sie im Abschnitt Integritätsschutz den Namen und die Version Ihres Integritätsschutzes aus. Wenn Sie die Details für Ihren ausgewählten Integritätsschutz und die Version anzeigen möchten, klicken Sie auf Anzeigen.

    Alternativ können Sie eine neue Rolle erstellen, indem Sie den Link Integritätsschutz auswählen.

  2. Wenn Sie mit der Bearbeitung fertig sind, wählen Sie Save changes (Änderungen speichern). Wenn Sie den Bildschirm verlassen möchten, ohne Änderungen zu speichern, klicken Sie auf Änderungen verwerfen.

API

Wenn Sie eine RetrieveAndGenerate-Anfrage stellen, fügen Sie das Feld guardrailConfiguration innerhalb der generationConfiguration ein, um Ihren Integritätsschutz mit der Anfrage zu verwenden. Um die Position dieses Feldes zu sehen, konsultieren Sie die Anfragekörper RetrieveAndGenerate in der API-Referenz.

Das folgende JSON-Objekt zeigt die Felder, die im GenerationConfiguration-Objekt als Minimum erforderlich sind, um die guardrailConfiguration festzulegen:

"generationConfiguration": { "guardrailConfiguration": { "guardrailId": "string", "guardrailVersion": "string" } }

Geben Sie die guardrailId und guardrailVersion Ihres ausgewählten Integritätsschutzes an.

Sie können ein Reranker-Modell verwenden, um Ergebnisse aus einer Wissensdatenbankabfrage neu einzustufen. Folgen Sie den Konsolenschritten unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Wenn Sie den Bereich Konfigurationen öffnen, erweitern Sie den Abschnitt Neueinstufung. Wählen Sie ein Reranker-Modell aus, aktualisieren Sie die Berechtigungen falls erforderlich und modifizieren Sie bei Bedarf weitere Optionen. Geben Sie einen Prompt ein und klicken Sie auf Ausführen, um die Ergebnisse nach der Neueinstufung zu testen.

Die Abfragezerlegung wird verwendet, um komplexe Abfragen in kleinere, einfacher zu handhabende Unterabfragen aufzuteilen. Dieser Ansatz kann dabei helfen, genauere und relevantere Informationen abzurufen – insbesondere dann, wenn die ursprüngliche Abfrage vielschichtig oder zu allgemein formuliert ist. Die Aktivierung dieser Option kann dazu führen, dass mehrere Abfragen in Ihrer Wissensdatenbank ausgeführt werden, was zu einer genaueren endgültigen Antwort beitragen kann.

Beispielsweise kann bei einer Frage wie „Wer hat mehr Tore bei der FIFA-Weltmeisterschaft 2022 geschossen – Argentinien oder Frankreich?“ könnte Wissensdatenbanken für Amazon Bedrock zunächst die folgenden Teilabfragen generieren, bevor eine endgültige Antwort erstellt wird:

  1. Wie viele Tore hat Argentinien im Finale der FIFA-Weltmeisterschaft 2022 geschossen?

  2. Wie viele Tore hat Frankreich im Finale der FIFA-Weltmeisterschaft 2022 geschossen?

Console
  1. So erstellen und synchronisieren Sie eine Datenquelle oder verwenden eine vorhandene Wissensdatenbank.

  2. Navigieren Sie zum Testfenster und öffnen Sie den Konfigurationsbereich.

  3. Aktivieren Sie die Zerlegung von Abfragen.

API
POST /retrieveAndGenerate HTTP/1.1 Content-type: application/json { "input": { "text": "string" }, "retrieveAndGenerateConfiguration": { "knowledgeBaseConfiguration": { "orchestrationConfiguration": { // Query decomposition "queryTransformationConfiguration": { "type": "string" // enum of QUERY_DECOMPOSITION } }, ...} }

Beim Generieren von Antworten auf Grundlage abgerufener Informationen können Sie Inferenzparameter verwenden, um mehr Kontrolle über das Verhalten des Modells während der Inferenz zu erhalten und dessen Ausgaben gezielt zu beeinflussen.

Wählen Sie den Tab für Ihre bevorzugte Methode aus und führen Sie dann die Schritte aus, um zu erfahren, wie Sie die Inferenzparameter modifizieren können:

Console

So modifizieren Sie Inferenzparameter bei der Abfrage einer Wissensdatenbank – folgen Sie den Konsolenanweisungen unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Wenn Sie den Bereich Konfigurationen öffnen, wird ein Inferenzparameterabschnitt angezeigt. Ändern Sie die Parameter nach Bedarf.

So modifizieren Sie die Inferenzparameter beim Chatten mit Ihrem Dokument – Folgen Sie den Schritten unter So chatten Sie mit Ihrem Dokument, ohne dass eine Wissensdatenbank konfiguriert ist. Erweitern Sie im Bereich Konfigurationen den Abschnitt Inferenzparameter und modifizieren Sie die Parameter nach Bedarf.

API

Die Modellparameter geben Sie im Aufruf an die RetrieveAndGenerate-API an. Sie können das Modell anpassen, indem Sie Inferenzparameter entweder im inferenceConfig Feld der knowledgeBaseConfiguration (falls Sie eine Wissensdatenbank abfragen) oder im Feld externalSourcesConfiguration (wenn Sie mit Ihrem Dokument chatten) angeben.

Innerhalb des inferenceConfig-Felds gibt es ein textInferenceConfig-Feld, das die folgenden Parameter enthält, die Sie verwenden können:

  • temperature

  • topP

  • maxTokenCount

  • stopSequences

Sie können das Modell anpassen, indem Sie die folgenden Parameter im inferenceConfig-Feld von externalSourcesConfiguration und knowledgeBaseConfiguration verwenden:

  • temperature

  • topP

  • maxTokenCount

  • stopSequences

Eine ausführliche Erläuterung der Funktion der einzelnen Parameter finden Sie unter So beeinflussen Sie die Antwortgenerierung mit Inferenzparametern.

Darüber hinaus können Sie benutzerdefinierte Parameter angeben, die nicht von textInferenceConfig über die additionalModelRequestFields-Zuweisung unterstützt werden. Mit diesem Argument können Sie für bestimmte Modelle eindeutige Parameter angeben. Informationen zu den eindeutigen Parametern finden Sie unter Inferenzanforderungsparameter und Antwortfelder für Basismodelle.

Wenn ein Parameter bei textInferenceConfig ausgelassen wird, wird ein Standardwert verwendet. Alle Parameter werden ignoriert, die unter textInferneceConfig nicht erkannt werden, während alle Parameter unter AdditionalModelRequestFields nicht erkannt werden, eine Ausnahme auslösen.

Eine Validierungsausnahme wird ausgelöst, wenn derselbe Parameter unter additionalModelRequestFields und TextInferenceConfig vorhanden ist.

So verwenden Sie Modellparameter unter RetrieveAndGenerate

Im Folgenden finden Sie ein Beispiel für die Struktur von inferenceConfig und additionalModelRequestFields unter der generationConfiguration im Anforderungstext RetrieveAndGenerate:

"inferenceConfig": { "textInferenceConfig": { "temperature": 0.5, "topP": 0.5, "maxTokens": 2048, "stopSequences": ["\nObservation"] } }, "additionalModelRequestFields": { "top_k": 50 }

Im folgenden Beispiel wird ein temperature-Wert von 0,5, ein top_p-Wert von 0,5 und ein maxTokens-Wert von 2 048 festgelegt. Die Generierung wird beendet, wenn die Zeichenfolge „\nObservation“ in der generierten Antwort erscheint, und übergibt einen benutzerdefinierten top_k-Wert von 50.

Wenn Sie eine Wissensdatenbank abfragen und die Generierung einer Antwort anfordern, verwendet Amazon Bedrock eine Prompt-Vorlage, die Anweisungen und Kontext mit der Benutzerabfrage kombiniert, um den Prompt zur Generierung zu erstellen, der an das Modell zur Antworterstellung gesendet wird. Sie können auch den Orchestrierungs-Prompt anpassen, der den Benutzer-Prompt in eine Suchabfrage umwandelt. Sie können die Prompt-Vorlagen mit den folgenden Tools gestalten:

  • Prompt-Platzhalter – Vordefinierte Variablen in Wissensdatenbanken für Amazon Bedrock, die zur Laufzeit während einer Wissensdatenbankabfrage dynamisch befüllt werden. Im System-Prompt sehen Sie diese Platzhalter, die von dem Symbol $ umgeben sind. In der folgenden Liste werden die Platzhalter beschrieben, die Sie verwenden können:

    Anmerkung

    Der Platzhalter $output_format_instructions$ ist ein Pflichtfeld, damit Zitate in der Antwort angezeigt werden können.

    Variable Prompt-Vorlage Ersetzt durch Modell Erforderlich?
    $query$ Orchestrierung, Generierung Die an die Wissensdatenbank gesendete Benutzerabfrage. Anthropic Claude Instant, Anthropic Claude v2.x Ja
    Anthropic Claude 3 Sonnet Nein (automatisch in der Modelleingabe enthalten)
    $search_results$ Generation Die für die Benutzerabfrage abgerufenen Ergebnisse. Alle Ja
    $output_format_instructions$ Orchestrierung Zugrunde liegende Anweisungen zur Formatierung der Antwortgenerierung und der Zitate. Unterscheidet sich je nach Modell. Wenn Sie Ihre eigenen Formatierungsanweisungen definieren, empfehlen wir Ihnen, diesen Platzhalter zu entfernen. Ohne diesen Platzhalter enthält die Antwort keine Zitate. Alle Ja
    $current_time$ Orchestrierung, Generierung Die aktuelle Uhrzeit. Alle Nein
  • XML-Tags – Anthropic-Modelle unterstützen die Verwendung von XML-Tags zur Strukturierung und Abgrenzung Ihrer Prompts. Verwenden Sie aussagekräftige Tag-Namen, um optimale Ergebnisse zu erzielen. Beispielsweise sehen Sie im Standardsystem-Prompt das <database>-Tag, das verwendet wird, um eine Datenbank zuvor gestellter Fragen abzugrenzen. Weitere Informationen finden Sie im Anthropic-Benutzerhandbuch unter Verwenden von XML-Tags.

Allgemeine Leitfäden zum Prompt-Engineering finden Sie unter Prompt-Engineering-Konzepte.

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie die angegebenen Schritte:

Console

Folgen Sie den Konsolenschritten unter Abrufen einer Wissensdatenbank und Datenabruf oder So fragen Sie eine Wissensdatenbank ab und generieren Antworten auf Grundlage der abgerufenen Daten. Aktivieren Sie im Testfenster die Option Antworten generieren. Erweitern Sie dann im Bereich Konfigurationen den Abschnitt Wissensdatenbank-Promptvorlage.

  1. Klicken Sie auf Bearbeiten.

  2. Bearbeiten Sie den System-Prompt im Texteditor, einschließlich der Prompt-Platzhalter und XML-Tags, falls erforderlich. Klicken Sie auf Auf Standard zurücksetzen, um zur Standard-Prompt-Vorlage zurückzukehren.

  3. Wenn Sie mit der Bearbeitung fertig sind, wählen Sie Save changes (Änderungen speichern). Klicken Sie auf Änderungen verwerfen, um den System-Prompt zu verlassen, ohne die Änderungen zu speichern.

API

Wenn Sie eine RetrieveAndGenerate-Anfrage stellen, fügen Sie ein generationConfiguration-Feld hinzu, das einem GenerationConfiguration-Objekt zugeordnet ist. Um die Position dieses Feldes zu sehen, konsultieren Sie die Anfragekörper RetrieveAndGenerate in der API-Referenz.

Das folgende JSON-Objekt zeigt die Felder, die im GenerationConfiguration-Objekt als Minimum erforderlich sind, um die maximale Anzahl der zurückzugebenden abgerufenen Ergebnisse festzulegen:

"generationConfiguration": { "promptTemplate": { "textPromptTemplate": "string" } }

Geben Sie Ihre benutzerdefinierte Prompt-Vorlage in das Feld textPromptTemplate ein, einschließlich der Prompt-Platzhalter und XML-Tags, falls erforderlich. Die maximale Anzahl zulässiger Zeichen im System-Prompt finden Sie im Feld textPromptTemplate unter GenerationConfiguration.