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.
Verwenden Sie die Converse API
Sie können die Amazon Bedrock Converse API verwenden, um Konversationsanwendungen zu erstellen, die Nachrichten an und von einem Amazon Bedrock-Modell senden und empfangen. Sie können beispielsweise einen Chat-Bot erstellen, der eine Konversation über viele Runden führt und eine Persona- oder Tonanpassung verwendet, die auf Ihre Bedürfnisse zugeschnitten ist, z. B. einen hilfreichen Assistenten für den technischen Support.
Um die Converse-API zu verwenden, verwenden Sie die Operationen Converse oder ConverseStream(für Streaming-Antworten), um Nachrichten an ein Model zu senden. Es ist möglich, die vorhandenen Inferenzoperationen (InvokeModeloder InvokeModelWithResponseStream) für Konversationsanwendungen zu verwenden. Wir empfehlen jedoch, die Converse-API zu verwenden, da sie eine konsistente API bietet, die mit allen Amazon Bedrock-Modellen funktioniert, die Nachrichten unterstützen. Das bedeutet, dass Sie Code einmal schreiben und ihn mit verschiedenen Modellen verwenden können. Sollte ein Modell eindeutige Inferenzparameter haben, können Sie mit der Converse-API diese eindeutigen Parameter auch in einer modellspezifischen Struktur übergeben.
Sie können die Converse-API verwenden, um die Verwendung von Tools und Leitplanken in Ihren Anwendungen zu implementieren.
Anmerkung
Bei Mistral AI Meta Open-Source-Modellen bettet die Converse-API deine Eingaben in eine modellspezifische Eingabeaufforderungsvorlage ein, die Konversationen ermöglicht.
Unterstützte Modelle und Modellfunktionen
Die Converse-API unterstützt die folgenden Amazon Bedrock-Modelle und Modellfunktionen. Die Converse-API unterstützt keine Einbettungsmodelle (wieTitan Embeddings G1 - Text) oder Modelle zur Bilderzeugung (wie). Stability AI
Modell | Converse | ConverseStream | Systemaufforderungen | Chat mit Dokumenten | Vision | Verwendung des Tools | Verwendung des Streaming-Tools | Leitlinien |
---|---|---|---|---|---|---|---|---|
AI21 Jamba-Instruct |
Ja |
Nein |
Ja |
Nein |
Nein |
Nein |
Nein |
Nein |
AI21 LabsJurassic-2(Text) |
Begrenzt. Keine Chat-Unterstützung. |
Nein |
Nein |
Nein |
Nein |
Nein |
Nein |
Ja |
TitanAmazon-Modelle |
Ja |
Ja |
Nein |
Ja (außerTitan Text Premier) |
Nein |
Nein |
Nein |
Ja |
AnthropicClaude2 und früher |
Ja |
Ja |
Ja |
Ja |
Nein |
Nein |
Nein |
Ja |
AnthropicClaude3 |
Ja |
Ja |
Ja |
Ja |
Ja |
Ja |
Ja |
Ja |
AnthropicClaude3.5 |
Ja |
Ja |
Ja |
Nein |
Ja |
Ja |
Ja |
Ja |
Cohere Command |
Begrenzt. Keine Chat-Unterstützung. |
Begrenzt. Keine Chat-Unterstützung. |
Nein |
Ja |
Nein |
Nein |
Nein |
Ja |
Cohere Command Light |
Begrenzt. Keine Chat-Unterstützung. |
Begrenzt. Keine Chat-Unterstützung. |
Nein |
Nein |
Nein |
Nein |
Nein |
Ja |
Cohere und Command R Command R+ |
Ja |
Ja |
Ja |
Ja |
Nein |
Ja |
Nein |
Nein |
Meta und Llama 2 Llama 3 |
Ja |
Ja |
Ja |
Ja |
Nein |
Nein |
Nein |
Ja |
Mistral AI Instruct |
Ja |
Ja |
Nein |
Ja |
Nein |
Nein |
Nein |
Ja |
Mistral Large |
Ja |
Ja |
Ja |
Ja |
Nein |
Ja |
Nein |
Ja |
Mistral Small | Ja | Ja | Ja | Nein | Nein | Ja | Nein | Ja |
Anmerkung
CohereCommand(Text) und AI21 Labs Jurassic-2 (Text) unterstützen keinen Chat mit der Converse-API. Die Modelle können jeweils nur eine Benutzernachricht bearbeiten und den Verlauf einer Konversation nicht verwalten. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, mehr als eine Nachricht weiterzuleiten.
Verwenden der Converse-API
Um die Converse-API zu verwenden, rufen Sie die ConverseStream
Operationen Converse
oder auf, um Nachrichten an ein Modell zu senden. Zum Aufrufen Converse
benötigen Sie eine Genehmigung für den bedrock:InvokeModel
Vorgang. Um anzurufenConverseStream
, benötigen Sie eine Genehmigung für den bedrock:InvokeModelWithResponseStream
Vorgang.
Themen
Anforderung
Sie geben das Modell an, das Sie verwenden möchten, indem Sie das modelId
Feld festlegen. Eine Liste der Modell-IDs, die Amazon Bedrock unterstützt, finden Sie unterModell-IDs von Amazon Bedrock.
Eine Konversation besteht aus einer Reihe von Nachrichten zwischen dem Benutzer und dem Modell. Sie beginnen eine Konversation, indem Sie als Benutzer (Benutzerrolle) eine Nachricht an das Modell senden. Das Modell, das als Assistent (Assistentenrolle) fungiert, generiert dann eine Antwort, die es in einer Nachricht zurückgibt. Falls gewünscht, können Sie die Konversation fortsetzen, indem Sie weitere Benutzerrollennachrichten an das Modell senden. Um den Konversationskontext beizubehalten, stellen Sie sicher, dass Sie alle Nachrichten, die Sie vom Modell für die Assistentenrolle erhalten, in nachfolgende Anfragen mit einbeziehen. Beispielcode finden Sie unter Converse API-Beispiele.
Sie geben die Nachrichten, die Sie an ein Modell übergeben möchten, in dem messages
Feld ein, das einer Reihe von Message-Objekten zugeordnet ist. Jede Nachricht enthält den Inhalt der Nachricht und die Rolle, die die Nachricht in der Konversation spielt.
Anmerkung
Amazon Bedrock speichert keine Texte, Bilder oder Dokumente, die Sie als Inhalt bereitstellen. Die Daten werden nur zur Generierung der Antwort verwendet.
Sie speichern den Inhalt der Nachricht in dem content
Feld, das einer Reihe von ContentBlockObjekten zugeordnet ist. In jedem ContentBlockFeld können Sie eines der folgenden Felder angeben (Informationen darüber, welche Modelle welche Modalitäten unterstützen, finden Sie unterUnterstützte Modelle und Modellfunktionen):
Die anderen Felder in ContentBlock
sind für die Verwendung mit Tools vorgesehen.
Sie geben die Rolle in dem role
Feld an. Die Rolle kann eine der folgenden sein:
-
user — Der Mensch, der Nachrichten an das Modell sendet.
-
assistant — Das Modell, das Nachrichten an den menschlichen Benutzer zurücksendet.
Anmerkung
Die folgenden Einschränkungen gelten für das content
Feld:
-
Sie können bis zu 20 Bilder hinzufügen. Die Größe, Höhe und Breite jedes Bilds dürfen jeweils nicht mehr als 3,75 MB, 8.000 Pixel und 8.000 Pixel betragen.
-
Sie können bis zu fünf Dokumente hinzufügen. Die Größe jedes Dokuments darf nicht mehr als 4,5 MB betragen.
-
Sie können nur Bilder und Dokumente hinzufügen, wenn dies der Fall
role
istuser
.
Im folgenden messages
Beispiel fragt der Benutzer nach einer Liste mit drei Popsongs, und das Modell generiert eine Liste von Songs.
[ { "role": "user", "content": [ { "text": "Create a list of 3 pop songs." } ] }, { "role": "assistant", "content": [ { "text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"As It Was\" by Harry Styles\n2. \"Easy On Me\" by Adele\n3. \"Unholy\" by Sam Smith and Kim Petras" } ] } ]
Eine Systemaufforderung ist eine Art von Aufforderung, die dem Modell Anweisungen oder Kontext zu der Aufgabe, die es ausführen soll, oder zu der Person, die es während der Konversation annehmen soll, bereitstellt. Sie können im Feld system
(SystemContentBlock) eine Liste von Systemaufforderungen für die Anforderung angeben, wie im folgenden Beispiel gezeigt.
[ { "text": "You are an app that creates playlists for a radio station that plays rock and pop music. Only return song names and the artist. " } ]
Inferenzparameter
Die Converse-API unterstützt einen Basissatz von Inferenzparametern, die Sie im inferenceConfig
Feld () festlegen. InferenceConfiguration Der Basissatz von Inferenzparametern ist:
maxTokens — Die maximale Anzahl von Token, die in der generierten Antwort zulässig sind.
stopSequences — Eine Liste von Stoppsequenzen. Eine Stoppsequenz ist eine Folge von Zeichen, die dazu führt, dass das Modell die Generierung der Antwort beendet.
Temperatur — Die Wahrscheinlichkeit, dass das Modell beim Generieren einer Antwort Optionen mit höherer Wahrscheinlichkeit auswählt.
TopP — Der Prozentsatz der wahrscheinlichsten Kandidaten, die das Modell für das nächste Token berücksichtigt.
Weitere Informationen finden Sie unter Inferenzparameter.
Im folgenden JSON-Beispiel wird der temperature
Inferenzparameter festgelegt.
{"temperature": 0.5}
Wenn das von Ihnen verwendete Modell über zusätzliche Inferenzparameter verfügt, können Sie diese Parameter festlegen, indem Sie sie im additionalModelRequestFields
Feld als JSON angeben. Das folgende JSON-Beispiel zeigttop_k
, wie festgelegt wird. Dieser Parameter ist zwar in Anthropic Claude Modellen verfügbar, aber kein grundlegender Inferenzparameter in der Nachrichten-API.
{"top_k": 200}
Sie können die Pfade für zusätzliche Modellparameter in dem additionalModelResponseFieldPaths
Feld angeben, wie im folgenden Beispiel gezeigt.
[ "/stop_sequence" ]
Die API gibt die zusätzlichen Felder zurück, die Sie in dem additionalModelResponseFields
Feld anfordern.
Antwort
Die Antwort, die Sie von der Converse-API erhalten, hängt davon ab, welche Operation Sie aufrufen, Converse
oderConverseStream
.
Antwort von Converse
In der Antwort von Converse
enthält das output
Feld (ConverseOutput) die Nachricht (Message), die das Modell generiert. Der Nachrichteninhalt befindet sich im Feld content
(ContentBlock) und die Rolle (user
oderassistant
), der die Nachricht entspricht, befindet sich im role
Feld.
Das metrics
Feld (ConverseMetrics) enthält Metriken für den Anruf. Überprüfen Sie das stopReason
Feld, um festzustellen, warum das Modell keine Inhalte mehr generiert hat. Sie können Informationen über die in der Anfrage an das Modell übergebenen Token und die in der Antwort generierten Token abrufen, indem Sie das usage
Feld (TokenUsage) überprüfen. Wenn Sie in der Anfrage zusätzliche Antwortfelder angegeben haben, gibt die API sie im additionalModelResponseFields
Feld als JSON zurück.
Das folgende Beispiel zeigt die AntwortConverse
, wenn Sie die unter beschriebene Aufforderung übergebenAnforderung.
{ "output": { "message": { "role": "assistant", "content": [ { "text": "Here is a list of 3 pop songs by artists from the United Kingdom:\n\n1. \"Wannabe\" by Spice Girls\n2. \"Bitter Sweet Symphony\" by The Verve \n3. \"Don't Look Back in Anger\" by Oasis" } ] } }, "stopReason": "end_turn", "usage": { "inputTokens": 125, "outputTokens": 60, "totalTokens": 185 }, "metrics": { "latencyMs": 1175 } }
ConverseStream Antwort
Wenn Sie aufrufenConverseStream
, um die Antwort von einem Modell zu streamen, wird der Stream im stream
Antwortfeld zurückgegeben. Der Stream gibt die folgenden Ereignisse in der folgenden Reihenfolge aus.
-
messageStart
(MessageStartEvent). Das Startereignis für eine Nachricht. Beinhaltet die Rolle für die Nachricht. -
contentBlockStart
(ContentBlockStartEvent). Ein Startereignis für Inhaltsblöcke. Nur zur Verwendung des Tools. -
contentBlockDelta
(ContentBlockDeltaEvent). Ein Delta-Ereignis für Inhaltsblöcke. Beinhaltet den Teiltext, den das Modell generiert, oder den Teil der JSON-Eingabe für die Verwendung mit dem Werkzeug. -
contentBlockStop
(ContentBlockStopEvent). Ein Ereignis zum Stoppen eines Inhaltsblocks. -
messageStop
(MessageStopEvent). Das Stopp-Ereignis für die Nachricht. Beinhaltet den Grund, warum das Modell keine Ausgabe mehr generiert hat. -
metadata
(ConverseStreamMetadataEvent). Metadaten für die Anfrage. Die Metadaten umfassen die Token-Verwendung inusage
(TokenUsage) und Metriken für den Aufruf inmetrics
(ConverseStreamMetadataEvent).
ConverseStream streamt einen kompletten Inhaltsblock als ContentBlockStartEvent
Ereignis, ein oder mehrere ContentBlockDeltaEvent
Ereignisse und ein ContentBlockStopEvent
Ereignis. Verwenden Sie das contentBlockIndex
Feld als Index, um die Ereignisse zu korrelieren, aus denen ein Inhaltsblock besteht.
Das folgende Beispiel ist eine teilweise Antwort vonConverseStream
.
{'messageStart': {'role': 'assistant'}} {'contentBlockDelta': {'delta': {'text': ''}, 'contentBlockIndex': 0}} {'contentBlockDelta': {'delta': {'text': ' Title'}, 'contentBlockIndex': 0}} {'contentBlockDelta': {'delta': {'text': ':'}, 'contentBlockIndex': 0}} . . . {'contentBlockDelta': {'delta': {'text': ' The'}, 'contentBlockIndex': 0}} {'messageStop': {'stopReason': 'max_tokens'}} {'metadata': {'usage': {'inputTokens': 47, 'outputTokens': 20, 'totalTokens': 67}, 'metrics': {'latencyMs': 100.0}}}
Converse API-Beispiele
Die folgenden Beispiele zeigen Ihnen, wie Sie die ConverseStream
Operationen Converse
und verwenden.