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.
Lambda-Funktionen so konfigurieren, dass sie Informationen senden, die ein Amazon Bedrock-Agent dem Benutzer entnimmt
Sie können eine Lambda-Funktion definieren, um die Geschäftslogik für eine Aktionsgruppe zu programmieren. Nachdem ein Amazon Bedrock-Agent den API-Vorgang ermittelt hat, den er in einer Aktionsgruppe aufrufen muss, sendet er Informationen aus dem API-Schema zusammen mit relevanten Metadaten als Eingabeereignis an die Lambda-Funktion. Um Ihre Funktion zu schreiben, müssen Sie die folgenden Komponenten der Lambda-Funktion verstehen:
-
Eingabeereignis — Enthält relevante Metadaten und ausgefüllte Felder aus dem Anforderungstext des API-Vorgangs oder die Funktionsparameter für die Aktion, von der der Agent feststellt, dass sie aufgerufen werden muss.
-
Antwort — Enthält relevante Metadaten und ausgefüllte Felder für den Antworttext, der von der API-Operation oder der Funktion zurückgegeben wurde.
Sie schreiben Ihre Lambda-Funktion, um zu definieren, wie mit einer Aktionsgruppe umgegangen werden soll, und um anzupassen, wie die API-Antwort zurückgegeben werden soll. Sie verwenden die Variablen aus dem Eingabeereignis, um Ihre Funktionen zu definieren und eine Antwort an den Agenten zurückzugeben.
Anmerkung
Eine Aktionsgruppe kann bis zu 11 API-Operationen enthalten, aber Sie können nur eine Lambda-Funktion schreiben. Da die Lambda-Funktion nur ein Eingabeereignis empfangen und eine Antwort für jeweils eine API-Operation zurückgeben kann, sollten Sie die Funktion unter Berücksichtigung der verschiedenen API-Operationen schreiben, die aufgerufen werden können.
Damit Ihr Agent eine Lambda-Funktion verwenden kann, müssen Sie der Funktion eine ressourcenbasierte Richtlinie hinzufügen, um Berechtigungen für den Agenten bereitzustellen. Folgen Sie den Schritten unter, um weitere Informationen zu erhalten. Ressourcenbasierte Richtlinie, die es Amazon Bedrock ermöglicht, eine Lambda-Funktion für Aktionsgruppen aufzurufen Weitere Informationen zu ressourcenbasierten Richtlinien in Lambda finden Sie unter Using Resource Based Policies for Lambda im Developer Guide. AWS Lambda
Informationen zum Definieren einer Funktion bei der Erstellung der Aktionsgruppe finden Sie unter. Fügen Sie Ihrem Agenten in Amazon Bedrock eine Aktionsgruppe hinzu
Themen
Lambda-Eingabeereignis von Amazon Bedrock
Wenn eine Aktionsgruppe aufgerufen wird, die eine Lambda-Funktion verwendet, sendet Amazon Bedrock ein Lambda-Eingabeereignis im folgenden allgemeinen Format. Sie können Ihre Lambda-Funktion so definieren, dass sie jedes der Eingabeereignisfelder verwendet, um die Geschäftslogik innerhalb der Funktion so zu manipulieren, dass die Aktion erfolgreich ausgeführt wird. Weitere Informationen zu Lambda-Funktionen finden Sie unter Event-driven invocation im Developer Guide. AWS Lambda
Das Eingabeereignisformat hängt davon ab, ob Sie die Aktionsgruppe mit einem API-Schema oder mit Funktionsdetails definiert haben:
-
Wenn Sie die Aktionsgruppe mit einem API-Schema definiert haben, lautet das Eingabeereignisformat wie folgt:
{ "messageVersion": "1.0", "agent": { "name": "string", "id": "string", "alias": "string", "version": "string" }, "inputText": "string", "sessionId": "string", "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { "content": { "
<content_type>
": { "properties": [ { "name": "string", "type": "string", "value": "string" }, ... ] } } }, "sessionAttributes": { "string
": "string", }, "promptSessionAttributes": { "string
": "string" } } -
Wenn Sie die Aktionsgruppe mit Funktionsdetails definiert haben, lautet das Eingabeereignisformat wie folgt:
{ "messageVersion": "1.0", "agent": { "name": "string", "id": "string", "alias": "string", "version": "string" }, "inputText": "string", "sessionId": "string", "actionGroup": "string", "function": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "sessionAttributes": { "
string
": "string", }, "promptSessionAttributes": { "string
": "string" } }
In der folgenden Liste werden die Eingabeereignisfelder beschrieben;
-
messageVersion
: Die Version der Mitteilung, die das Format der Ereignisdaten, die in die Lambda-Funktion eingehen, und das erwartete Format der Antwort von einer Lambda-Funktion identifiziert. Amazon Bedrock unterstützt nur die Version 1.0. -
agent
: Enthält Informationen über den Namen, die ID, den Alias und die Version des Agenten, dem die Aktionsgruppe angehört. -
inputText
: Die Benutzereingabe für den Gesprächsabschnitt. -
sessionId
: Die eindeutige Kennung für die Sitzung des Agenten. -
actionGroup
: Der Name der Aktionsgruppe. -
parameters
: Enthält eine Liste von Objekten. Jedes Objekt enthält den Namen, den Typ und den Wert eines Parameters in der API-Operation, wie im OpenAPI Schema oder in der Funktion definiert. -
Wenn Sie die Aktionsgruppe mit einem API-Schema definiert haben, enthält das Eingabeereignis die folgenden Felder:
-
apiPath
— Der Pfad zur API-Operation, wie im OpenAPI Schema definiert. -
httpMethod
— Die Methode der API-Operation, wie im OpenAPI Schema definiert. -
requestBody
— Enthält den Hauptteil der Anfrage und seine Eigenschaften, wie im OpenAPI Schema für die Aktionsgruppe definiert.
-
-
Wenn Sie die Aktionsgruppe mit Funktionsdetails definiert haben, enthält das Eingabeereignis das folgende Feld:
-
function
— Der Name der Funktion, wie er in den Funktionsdetails für die Aktionsgruppe definiert ist.
-
-
sessionAttributes
— Enthält Sitzungsattribute und ihre Werte. Diese Attribute werden während einer Sitzung gespeichert und stellen den Kontext für den Agenten bereit. -
promptSessionAttributes
— Enthält Sitzungsattribute für Eingabeaufforderungen und deren Werte. Diese Attribute werden nacheinander gespeichert und stellen den Kontext für den Agenten bereit.
Lambda-Antwortereignis auf Amazon Bedrock
Amazon Bedrock erwartet eine Antwort Ihrer Lambda-Funktion im folgenden Format. Die Antwort besteht aus Parametern, die von der API-Operation zurückgegeben wurden. Der Agent kann die Antwort der Lambda-Funktion für die weitere Orchestrierung verwenden oder ihr helfen, eine Antwort an den Kunden zurückzugeben.
Anmerkung
Die maximale Größe der Payload-Antwort entspricht der maximalen Größe einer synchronen Antwort aus der Lambda-Funktion. Weitere Informationen finden Sie im Developer Guide unter dem Ressourcenkontingent für die Payload Invocation. AWS Lambda
Das Format des Eingabeereignisses hängt davon ab, ob Sie die Aktionsgruppe mit einem API-Schema oder mit Funktionsdetails definiert haben:
-
Wenn Sie die Aktionsgruppe mit einem API-Schema definiert haben, lautet das Antwortformat wie folgt:
{ "messageVersion": "1.0", "response": { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": number, "responseBody": { "
<contentType>
": { "body": "JSON-formatted string" } } }, "sessionAttributes": { "string
": "string", ... }, "promptSessionAttributes": { "string
": "string", ... }, "knowledgeBasesConfiguration": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": int, "overrideSearchType": "HYBRID | SEMANTIC", "filter": RetrievalFilter object } } }, ... ] } -
Wenn Sie die Aktionsgruppe mit Funktionsdetails definiert haben, lautet das Antwortformat wie folgt:
{ "messageVersion": "1.0", "response": { "actionGroup": "string", "function": "string", "functionResponse": { "responseState": "FAILURE | REPROMPT", "responseBody": { "
<functionContentType>
": { "body": "JSON-formatted string" } } } }, "sessionAttributes": { "string
": "string", }, "promptSessionAttributes": { "string
": "string" }, "knowledgeBasesConfiguration": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "numberOfResults": int, "filter": { RetrievalFilter object } } } }, ... ] }
In der folgenden Liste werden die Antwortfelder beschrieben:
-
messageVersion
: Die Version der Mitteilung, die das Format der Ereignisdaten, die in die Lambda-Funktion eingehen, und das erwartete Format der Antwort von einer Lambda-Funktion identifiziert. Amazon Bedrock unterstützt nur die Version 1.0. -
response
: Enthält die folgenden Informationen über die API-Antwort.-
actionGroup
: Der Name der Aktionsgruppe. -
Wenn Sie die Aktionsgruppe mit einem API-Schema definiert haben, können die folgenden Felder in der Antwort enthalten sein:
-
apiPath
— Der Pfad zur API-Operation, wie im OpenAPI Schema definiert. -
httpMethod
— Die Methode der API-Operation, wie im OpenAPI Schema definiert. -
httpStatusCode
— Der vom API-Vorgang zurückgegebene HTTP-Statuscode. -
responseBody
— Enthält den Antworttext, wie im OpenAPI Schema definiert.
-
-
Wenn Sie die Aktionsgruppe mit Funktionsdetails definiert haben, können die folgenden Felder in der Antwort enthalten sein:
-
responseState
(Optional) — Legen Sie einen der folgenden Status fest, um das Verhalten des Agenten nach der Verarbeitung der Aktion zu definieren:-
FEHLER — Der Agent gibt
DependencyFailedException
für die aktuelle Sitzung einen aus. Gilt, wenn die Funktionsausführung aufgrund eines Abhängigkeitsfehlers fehlschlägt. -
REPROMPT — Der Agent übergibt eine Antwortzeichenfolge an das Modell, um es erneut aufzufordern. Gilt, wenn die Funktionsausführung aufgrund einer ungültigen Eingabe fehlschlägt.
-
-
responseBody
— Enthält ein Objekt, das die Antwort auf die Ausführung der Funktion definiert. Der Schlüssel ist der Inhaltstyp (TEXT
wird derzeit nur unterstützt) und der Wert ist ein Objekt, dasbody
die Antwort enthält.
-
-
-
(Optional)
sessionAttributes
: Enthält Sitzungsattribute und ihre Werte. Weitere Informationen finden Sie unter Sitzungsattribute für Sitzung und Eingabeaufforderung. -
(Optional)
promptSessionAttributes
: Enthält Prompt-Attribute und ihre Werte. Weitere Informationen finden Sie unter Sitzungsattribute für Sitzung und Eingabeaufforderung. -
(Optional)
knowledgeBasesConfiguration
— Enthält eine Liste von Abfragekonfigurationen für Wissensdatenbanken, die an den Agenten angehängt sind. Weitere Informationen finden Sie unter Konfigurationen für den Abruf der Wissensdatenbank.
Beispiel für eine Aktionsgruppe mit Lambda-Funktionen
Das Folgende ist ein minimales Beispiel dafür, wie die Lambda-Funktion in Python definiert werden kann. Wählen Sie die Registerkarte aus, die der Angabe entspricht, ob Sie die Aktionsgruppe mit einem OpenAPI Schema oder mit Funktionsdetails definiert haben: