Verwenden der Converse-API - 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.

Verwenden der Converse-API

Um die Converse-API zu verwenden, rufen Sie die Operationen Converse oder ConverseStream auf, um Nachrichten an ein Modell zu senden. Für den Aufruf von Converse ist die Berechtigung für die Operation bedrock:InvokeModel erforderlich. Für den Aufruf von ConverseStream ist die Berechtigung für die Operation bedrock:InvokeModelWithResponseStream erforderlich.

Anforderung

Wenn Sie eine Converse-Anfrage mit einem Runtime-Endpunkt von Amazon-Bedrock stellen, können Sie die folgenden Felder einbeziehen:

  • modelId – Ein erforderlicher Parameter im Header, mit dem Sie die Ressource angeben können, die für Inferenzen verwendet werden soll.

  • Mit den folgenden Feldern können Sie den Prompt anpassen:

    • message – Wird verwendet, um den Inhalt und die Rolle des Prompts festzulegen.

    • system – Dient der Angabe von System-Prompts, die Anweisungen oder den Kontext für das Modell definieren.

    • inferenceConfig – Dient der Angabe von Inferenzparametern, die allen Modellen gemeinsam sind. Inferenzparameter beeinflussen die Antwortgenerierung.

    • additionalModelRequestFelder — Dient zur Angabe von Inferenzparametern, die für das Modell spezifisch sind, mit dem Sie die Inferenz ausführen.

    • promptVariables – (Wenn Sie einen Prompt aus dem Prompt-Management verwenden) Verwenden Sie dieses Feld, um die Variablen im Prompt und ihre jeweiligen Werte zu definieren.

  • Mit den folgenden Feldern können Sie anpassen, wie die Antwort zurückgegeben wird:

    • guardrailConfig – Verwenden Sie dieses Feld, um einen Integritätsschutz einzufügen, der auf den gesamten Prompt angewendet werden soll.

    • toolConfig – Verwenden Sie dieses Feld, um ein Tool einzufügen, das einem Modell bei der Generierung von Antworten hilft.

    • additionalModelResponseFieldPaths— Verwenden Sie dieses Feld, um Felder anzugeben, die als JSON-Zeigerobjekt zurückgegeben werden sollen.

    • ServiceTier — Verwenden Sie dieses Feld, um die Serviceebene für eine bestimmte Anfrage anzugeben

  • requestMetadata – Verwenden Sie dieses Feld, um Metadaten einzuschließen, nach denen bei der Verwendung von Aufrufprotokollen gefiltert werden kann.

Anmerkung

Die folgenden Einschränkungen gelten, wenn Sie einen Prompt aus dem Prompt-Management mit Converse oder ConverseStream verwenden:

  • Die Felder additionalModelRequestFields, inferenceConfig, system oder toolConfig können nicht einbezogen werden.

  • Wenn Sie das Feld messages einbeziehen, werden die Nachrichten nach den im Prompt definierten Nachrichten angehängt.

  • Wenn Sie das Feld guardrailConfig einbeziehen, wird der Integritätsschutz auf den gesamten Prompt angewendet. Wenn Sie guardContent Blöcke in das ContentBlockFeld aufnehmen, wird die Leitplanke nur auf diese Blöcke angewendet.

Blenden Sie einen Abschnitt ein, um mehr über ein Feld im Text der Converse-Anfrage erfahren:

Das Feld messages ist ein Array von Message-Objekten, die jeweils eine Nachricht zwischen dem Benutzer und dem Modell definieren. Ein Message-Objekt enthält die folgenden Felder:

  • role – Definiert, ob die Nachricht von user (dem an das Modell gesendeten Prompt) oder assistant (der Antwort des Modells) stammt.

  • content – Definiert den Inhalt des Prompts.

    Anmerkung

    Amazon Bedrock speichert keine Texte, Bilder oder Dokumente, die Sie als Inhalt bereitstellen. Die Daten werden nur verwendet, um die Antwort zu generieren.

Sie können den Konversationskontext beibehalten, indem Sie alle Nachrichten der Konversation in nachfolgende Converse-Anfragen einbeziehen und im Feld role angeben, ob die Nachricht vom Benutzer oder vom Modell stammt.

Das content Feld ist einer Reihe von ContentBlockObjekten zugeordnet. In jedem ContentBlockFeld können Sie eines der folgenden Felder angeben (Informationen darüber, welche Modelle welche Blöcke unterstützen, finden Sie unterUnterstützte Modelle und Modellfeatures):

text

Das Feld text ist einer Zeichenfolge zugeordnet, die den Prompt angibt. Das text Feld wird zusammen mit anderen Feldern interpretiert, die in demselben Feld angegeben sind ContentBlock.

Das Folgende zeigt ein Message-Objekt mit einem content Array, das nur einen Text enthält ContentBlock:

{ "role": "user", "content": [ { "text": "string" } ] }
image

Das image Feld ist einem zugeordnet ImageBlock. Übergeben Sie die base64-codierten Rohbytes für ein Bild im Feld bytes. Wenn Sie ein AWS SDK verwenden, müssen Sie die Bytes nicht in Base64 codieren.

Wenn Sie das Feld text ausschließen, beschreibt das Modell das Bild.

Im Folgenden wird ein Beispiel für ein Message-Objekt mit einem content Array gezeigt, das nur ein Bild enthält: ContentBlock

{ "role": "user", "content": [ { "image": { "format": "png", "source": { "bytes": "image in bytes" } } } ] }

Sie können auch eine Amazon-S3-URI angeben, anstatt die Bytes direkt im Anforderungstext zu übergeben. Im Folgenden wird ein Message-Beispielobjekt mit einem Inhaltsarray gezeigt, das die Quelle enthält, die über einen Amazon-S3-URI übergeben wurde.

{ "role": "user", "content": [ { "image": { "format": "png", "source": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/myImage", "bucketOwner": "111122223333" } } } } ] }
document

Das document Feld ist einem zugeordnet DocumentBlock. Wenn Sie einen DocumentBlock angeben, überprüfen Sie, ob Ihre Anfrage den folgenden Einschränkungen unterliegt:

  • In das Feld content des Message-Objekts müssen Sie auch ein text-Feld mit einem Prompt aufnehmen, der sich auf das Dokument bezieht.

  • Übergeben Sie die base64-codierten Rohbytes für ein Dokument im Feld bytes. Wenn Sie ein AWS SDK verwenden, müssen die Dokument-Bytes nicht base64-codiert werden.

  • Das Feld name darf folgende Zeichen enthalten:

    • Alphanumerische Zeichen

    • Leerzeichen (maximal eines hintereinander)

    • Bindestriche

    • Klammern

    • Eckige Klammern

    Anmerkung

    Das Feld name ist anfällig für Promptinjektionen, da das Modell es versehentlich als Anweisungen interpretieren könnte. Daher wird empfohlen, dass Sie einen neutralen Namen angeben.

Wenn Sie ein Dokument verwenden, können Sie das Tag citations aktivieren, das bei der Antwort auf den API-Aufruf dokumentspezifische Quellenangaben bereitstellt. Weitere Informationen finden Sie in der DocumentBlockAPI.

Im Folgenden wird ein Beispiel für ein Message-Objekt mit einem content Array gezeigt, das nur ein Dokument ContentBlockund den erforderlichen Begleittext enthält ContentBlock.

{ "role": "user", "content": [ { "text": "string" }, { "document": { "format": "pdf", "name": "MyDocument", "source": { "bytes": "document in bytes" } } } ] }

Sie können auch eine Amazon-S3-URI angeben, anstatt die Bytes direkt im Anforderungstext zu übergeben. Im Folgenden wird ein Message-Beispielobjekt mit einem Inhaltsarray gezeigt, das die Quelle enthält, die über einen Amazon-S3-URI übergeben wurde.

{ "role": "user", "content": [ { "text": "string" }, { "document": { "format": "pdf", "name": "MyDocument", "source": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/myDocument", "bucketOwner": "111122223333" } } } } ] }
video

Das video Feld ist einem VideoBlockObjekt zugeordnet. Übergeben Sie die base64-codierten Rohbytes im Feld bytes. Wenn Sie das AWS SDK verwenden, müssen Sie die Bytes nicht in Base64 codieren.

Wenn Sie das Feld text nicht angeben, wird das Video durch das Modell beschrieben.

Im Folgenden wird ein Beispiel für ein Message-Objekt mit einem content Array gezeigt, das nur ein Video enthält. ContentBlock

{ "role": "user", "content": [ { "video": { "format": "mp4", "source": { "bytes": "video in bytes" } } } ] }

Sie können auch eine Amazon-S3-URI angeben, anstatt die Bytes direkt im Anforderungstext zu übergeben. Im Folgenden wird ein Message-Beispielobjekt mit einem Inhaltsarray gezeigt, das die Quelle enthält, die über einen Amazon-S3-URI übergeben wurde.

{ "role": "user", "content": [ { "video": { "format": "mp4", "source": { "s3Location": { "uri": "s3://amzn-s3-demo-bucket/myVideo", "bucketOwner": "111122223333" } } } } ] }
Anmerkung

Die übernommene Rolle muss über die Berechtigung s3:GetObject für die Amazon-S3-URI verfügen. Das Feld bucketOwner ist optional, muss aber angegeben werden, wenn das Konto, das die Anfrage stellt, nicht Eigentümer des Buckets ist, in dem sich der Amazon-S3-URI befindet. Weitere Informationen finden Sie unter Konfigurieren des Zugriffs auf Amazon-S3-Buckets.

cachePoint

Sie können Cache-Prüfpunkte als Block in einer Nachricht zusammen mit einem zugehörigen Prompt hinzufügen, indem Sie cachePoint-Felder verwenden, um das Prompt-Caching zu nutzen. Das Prompt-Caching ist ein Feature, mit dem Sie beginnen können, den Kontext von Konversationen zwischenzuspeichern, um Kosten und Latenz zu sparen. Weitere Informationen finden Sie unter Prompt-Caching für schnellere Modellinferenz.

Im Folgenden wird ein Beispiel für ein Message-Objekt mit einem content Array gezeigt, das ein Dokument ContentBlockund einen erforderlichen Begleittext enthält ContentBlock, sowie einen CachePoint, der sowohl den Dokument- als auch den Textinhalt zum Cache hinzufügt.

{ "role": "user", "content": [ { "text": "string" }, { "document": { "format": "pdf", "name": "string", "source": { "bytes": "document in bytes" } } }, { "cachePoint": { "type": "default" } } ] }
guardContent

Das guardContent Feld ist einem GuardrailConverseContentBlockObjekt zugeordnet. Sie mit diesem Feld eine Eingabe als Ziel verwenden, die anhand des im Feld guardrailConfig definierten Integritätsschutzes ausgewertet werden soll. Wenn Sie dieses Feld nicht angeben, wertet der Integritätsschutz alle Nachrichten im Anforderungstext aus. Sie können die folgenden Inhaltstypen an einen GuardBlock übergeben:

  • text — Im Folgenden wird ein Beispiel für ein Message-Objekt mit einem content Array gezeigt, das nur einen Text enthält GuardrailConverseContentBlock:

    { "role": "user", "content": [ { "text": "Tell me what stocks to buy.", "qualifiers": [ "guard_content" ] } ] }

    Sie definieren den auszuwertenden Text und schließen alle Qualifizierer ein, die für die kontextuelle Begründung verwendet werden sollen.

  • image — Das Folgende zeigt ein Message-Objekt mit einem content Array, das nur ein Bild enthält GuardrailConverseContentBlock:

    { "role": "user", "content": [ { "format": "png", "source": { "bytes": "image in bytes" } } ] }

    Sie geben das Format des Bildes an und definieren das Bild in Byte.

Weitere Informationen zum Integritätsschutz finden Sie unter So erkennen und filtern Sie schädliche Inhalte mithilfe vom Integritätsschutz für Amazon Bedrock.

reasoningContent

Das reasoningContent Feld ist einem zugeordnet ReasoningContentBlock. Dieser Block enthält Inhalte zu den Argumenten, die vom Modell zur Generierung der Antwort im zugehörigen ContentBlock verwendet wurden.

Im Folgenden wird ein Message-Objekt mit einem content-Array dargestellt, das nur einen ReasoningContentBlock und einen zugehörigen ContentBlock im Textformat enthält.

{ "role": "user", "content": [ { "text": "string" }, { "reasoningContent": { "reasoningText": { "text": "string", "signature": "string" } "redactedContent": "base64-encoded binary data object" } } ] }

Der ReasoningContentBlock enthält die Argumentation, die zur Generierung des zugehörigen Inhalts im Feld reasoningText verwendet wurde, sowie alle Inhalte der Argumentation, die vom Modellanbieter aus Gründen der Vertraulichkeit und der Sicherheit im Feld redactedContent verschlüsselt wurden.

Innerhalb des Feldes reasoningText beschreiben die text-Felder die Argumentation. Das Feld signature ist ein Hash aller Nachrichten in der Konversation und schützt vor Manipulation der im Modell verwendeten Argumentation. Sie müssen die Signatur und alle vorherigen Nachrichten in nachfolgende Converse-Anfragen einbeziehen. Wenn eine der Nachrichten geändert wird, gibt die Antwort einen Fehler aus.

toolUse

Enthält Informationen zu einem Tool, das für das Modell verwendet werden soll. Weitere Informationen finden Sie unter Verwenden eines Tools, um eine Amazon-Bedrock-Modellantwort zu vervollständigen.

toolResult

Enthält Informationen über das Ergebnis, das mit dem Modell unter Verwendung eines Werkzeugs erzielt wurde. Weitere Informationen finden Sie unter Verwenden eines Tools, um eine Amazon-Bedrock-Modellantwort zu vervollständigen.

Anmerkung

Für das Feld content gelten die folgenden Einschränkungen:

  • Sie können bis zu 20 Bilder aufnehmen. Größe, Höhe und Breite jedes Bilds dürfen 3,75 MB, 8 000 Pixel bzw. 8 000 Pixel nicht überschreiten.

  • Sie können bis zu fünf Dokumente einschließen. Die Größe jedes Dokuments darf nicht mehr als 4,5 MB betragen.

  • Es können nur Bilder und Dokumente eingeschlossen werden, wenn role den Wert user aufweist.

Im folgenden messages-Beispiel fragt der Benutzer nach einer Liste mit drei Popsongs, und das Modell generiert eine Liste von Liedern.

[ { "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" } ] } ]

Ein System-Prompt ist eine Art von Prompt, die dem Modell Anweisungen oder Kontext zu der Aufgabe, die es ausführen soll, oder zu der Persönlichkeit, 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 play lists for a radio station that plays rock and pop music. Only return song names and the artist. " } ]

Die Converse API unterstützt einen Basissatz von Inferenzparametern, die Sie im inferenceConfig Feld () InferenceConfigurationfestlegen. Der Basissatz von Inferenzparametern lautet:

  • 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 bewirkt, dass das Modell die Generierung der Antwort stoppt.

  • temperature – Die Wahrscheinlichkeit, dass das Modell beim Generieren einer Antwortvariablen Optionen mit höherer Wahrscheinlichkeit auswählt

  • topP – Der Prozentsatz der wahrscheinlichsten Kandidaten, die das Modell für das nächste Token in Betracht zieht.

Weitere Informationen finden Sie unter So beeinflussen Sie die Antwortgenerierung mit Inferenzparametern.

Das folgende JSON-Beispiel legt den Inferenzparameter temperature fest.

{"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 Feld additionalModelRequestFields als JSON angeben. Das folgende JSON-Beispiel zeigt, wie man den Wert top_k festlegt, der in Anthropic-Claude-Modellen verfügbar ist, aber keinen Basisinferenzparameter in der Messages API darstellt.

{"top_k": 200}

Wenn Sie einen Prompt aus dem Prompt-Management in der modelId als Ressource angeben, für die Inferenz ausgeführt werden soll, verwenden Sie dieses Feld, um die Prompt-Variablen mit tatsächlichen Werten auszufüllen. Das Feld promptVariables ist einem JSON-Objekt mit Schlüsseln zugeordnet, die den in den Prompts definierten Variablen sowie den Werten entsprechen, durch die die Variablen ersetzt werden sollen.

Angenommen, Sie haben folgenden Prompt: Make me a {{genre}} playlist consisting of the following number of songs: {{number}}.. Die ID des Prompts lautet PROMPT12345 und ihre Version ist 1. Sie könnten die folgende Converse-Anfrage senden, um die Variablen zu ersetzen:

POST /model/arn:aws:bedrock:us-east-1:111122223333:prompt/PROMPT12345:1/converse HTTP/1.1 Content-type: application/json { "promptVariables": { "genre" : "pop", "number": 3 } }

Sie können einen Integritätsschutz anwenden, den Sie mit dem Integritätsschutz für Amazon Bedrock erstellt haben, indem Sie dieses Feld einbeziehen. Um die Leitplanke auf eine bestimmte Nachricht in der Konversation anzuwenden, fügen Sie die Nachricht in eine ein. GuardrailConverseContentBlock Wenn Sie keine GuardrailConverseContentBlock in den Anforderungstext aufnehmen, wird der Integritätsschutz auf alle Nachrichten im Feld messages angewendet. Ein Beispiel finden Sie unter So fügen Sie der Converse-API einen Integritätsschutz hinzu .

In diesem Feld können Sie ein Tool definieren, mit dem das Modell eine Antwort generieren kann. Weitere Informationen finden Sie unter Verwenden eines Tools, um eine Amazon-Bedrock-Modellantwort zu vervollständigen.

Sie können die Pfade für zusätzliche Modellparameter im Feld additionalModelResponseFieldPaths angeben, wie im folgenden Beispiel gezeigt.

[ "/stop_sequence" ]

Die API gibt die zusätzlichen Felder zurück, die Sie im Feld additionalModelResponseFields anfordern.

Dieses Feld ist einem JSON-Objekt zugeordnet. Sie können Metadatenschlüssel und Werte angeben, denen sie innerhalb dieses Objekts zugeordnet werden. Sie können Modellaufrufprotokolle mithilfe von Anforderungsmetadaten filtern.

Dieses Feld ist einem JSON-Objekt zugeordnet. Sie können die Servicestufe für eine bestimmte Anfrage angeben.

Das folgende Beispiel zeigt die serviceTier Struktur:

"serviceTier": { "type": "reserved" | "priority" | "default" | "flex" }

Ausführliche Informationen zu den Servicestufen, einschließlich Preis- und Leistungsmerkmalen, finden Sie unterServicestufen zur Optimierung von Leistung und Kosten.

Je nach verwendetem Modell können Sie optional auch Cache-Prüfpunkte zu den Feldern system oder tools hinzufügen, um das Prompt-Caching zu verwenden. Weitere Informationen finden Sie unter Prompt-Caching für schnellere Modellinferenz.

Antwort

Die Antwort, die Sie von der Converse-API erhalten, hängt davon ab, welche Operation Sie aufrufen, Converse oder ConverseStream.

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 (useroderassistant), der die Nachricht entspricht, befindet sich im role Feld.

Wenn Sie Prompt-Caching verwendet haben, geben Sie im Verwendungsfeld cacheReadInputTokensCount und cacheWriteInputTokensCount an, wie viele Token insgesamt aus dem Cache gelesen bzw. in den Cache geschrieben wurden.

Wenn Sie Serviceebenen verwendet haben, service tier würde ich Ihnen im Antwortfeld mitteilen, welche Servicestufe für die Anfrage verwendet wurde.

Das metrics Feld (ConverseMetrics) enthält Metriken für den Anruf. Überprüfen Sie das Feld stopReason, 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 Feld additionalModelResponseFields als JSON zurück.

Das folgende Beispiel zeigt die Antwort von Converse nach der Übergabe des unter Anforderung beschriebenen Prompts.

{ "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 ConverseStream aufrufen, um die Antwort von einem Modell zu streamen, wird der Stream im Antwortfeld stream zurückgegeben. Der Stream gibt die folgenden Ereignisse in der folgenden Reihenfolge aus.

  1. messageStart(MessageStartEvent). Das Startereignis für eine Nachricht. Beinhaltet die Rolle für die Nachricht.

  2. contentBlockStart(ContentBlockStartEvent). Ein Startereignis für Inhaltsblöcke. Nur bei Verwendung des Tools.

  3. contentBlockDelta(ContentBlockDeltaEvent). Ein Delta-Ereignis für Inhaltsblöcke. Beinhaltet einen der folgenden Bestandteile:

    • text – Den Teiltext, den das Modell generiert.

    • reasoningContent – Die teilweise Argumentation, die das Modell zur Generierung der Antwort durchgeführt hat. Sie müssen in nachfolgenden Converse-Anfragen zusätzlich zu allen vorherigen Nachrichten die zurückgegebene signature senden. Wenn eine der Nachrichten geändert wird, gibt die Antwort einen Fehler aus.

    • toolUse – Das teilweise eingegebene JSON-Objekt für die Verwendung mit dem Tool.

  4. contentBlockStop(ContentBlockStopEvent). Ein Ereignis zum Stoppen eines Inhaltsblocks.

  5. messageStop(MessageStopEvent). Das Stopp-Ereignis für die Nachricht. Beinhaltet den Grund, aus dem die Erzeugung der Ausgabe durch das Modell gestoppt wurde.

  6. metadata(ConverseStreamMetadataEvent). Metadaten für die Anfrage. Die Metadaten umfassen die Token-Verwendung in usage (TokenUsage) und Metriken für den Aufruf in metrics (ConverseStreamMetadataEvent).

ConverseStream streamt einen kompletten Inhaltsblock als ContentBlockStartEvent Ereignis, ein oder mehrere ContentBlockDeltaEvent Ereignisse und ein ContentBlockStopEvent Ereignis. Verwenden Sie das Feld contentBlockIndex als Index, um die Ereignisse zu korrelieren, aus denen ein Inhaltsblock besteht.

Das folgende Beispiel ist ein Teil einer Antwort von ConverseStream.

{'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}}}