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.
Command-Modelle von Cohere
Mit InvokeModel oder InvokeModelWithResponseStream (Streaming) nehmen Sie Inferenzanforderungen an Command-Modelle von Cohere vor. Sie benötigen die Modell-ID für das Modell, das Sie verwenden möchten. Informationen zum Abrufen der Modell-ID finden Sie unter Unterstützte Basismodelle in Amazon Bedrock.
Anforderung und Antwort
- Request
-
Die Cohere-Command-Modelle haben die folgenden Inferenzparameter.
{
"prompt": string,
"temperature": float,
"p": float,
"k": float,
"max_tokens": int,
"stop_sequences": [string],
"return_likelihoods": "GENERATION|ALL|NONE",
"stream": boolean,
"num_generations": int,
"logit_bias": {token_id: bias},
"truncate": "NONE|START|END"
}
Die folgenden Parameter sind erforderlich.
-
prompt – (erforderlich) Der Eingabetext, der als Ausgangspunkt für die Generierung der Antwort dient.
Im Folgenden sind Text pro Aufruf und Zeichenbeschränkungen aufgeführt.
Texte pro Aufruf
| Minimum |
Maximum |
|
0 Texte
|
96 Texte
|
Zeichen
| Minimum |
Maximum |
|
0 Zeichen
|
2048 Zeichen
|
Die folgenden Parameter sind optional.
-
return_likelihoods – Geben Sie an, wie und ob die Token-Wahrscheinlichkeiten zusammen mit der Antwort zurückgegeben werden. Sie können die folgenden Optionen angeben:
-
GENERATION – Gibt nur Wahrscheinlichkeiten für generierte Token zurück.
-
ALL – Gibt Wahrscheinlichkeiten für alle Token zurück.
-
NONE – (Standard) gibt keine Wahrscheinlichkeiten zurück.
-
stream – (erforderlich, um Streaming zu unterstützen) Mit true wird die Antwort Stück für Stück in Echtzeit und mit false vollständig nach Abschluss des Vorgangs zurückgegeben.
-
logit_bias – Dieser Wert verhindert, dass das Modell unerwünschte Token generiert, oder bietet Anreize für das Modell, die gewünschten Token einzubeziehen. Das Format lautet {token_id: bias}, wobei „bias“ eine Gleitkommazahl zwischen -10 und 10 ist. Token können mithilfe eines beliebigen Tokenisierungsdienstes, z. B. mit dem Tokenize-Endpunkt von Cohere, aus Text abgerufen werden. Weitere Informationen finden Sie in der Cohere-Dokumentation.
| Standard |
Minimum |
Maximum |
|
N/A
|
-10 (für einen Token-Bias)
|
10 (für einen Token-Bias)
|
-
num_generations – Die maximale Anzahl der Generierungen, die das Modell zurückgeben soll
| Standard |
Minimum |
Maximum |
|
1
|
1
|
5
|
-
truncate (kürzen) – Gibt an, wie die API Eingaben verarbeitet, die die maximale Token-Länge überschreiten. Nutzen Sie einen der Folgenden:
-
NONE – Gibt einen Fehler zurück, wenn die Eingabe die maximale Länge des Eingabe-Tokens überschreitet.
-
START – Verwirft den Anfang der Eingabe.
-
END – (Standard) verwirft das Ende der Eingabe.
Wenn Sie START oder END angeben, verwirft das Modell die Eingabe, bis die verbleibende Eingabe genau der maximalen Länge des Eingabe-Tokens für das Modell entspricht.
-
Temperatur – Verwenden Sie einen niedrigeren Wert, um die Zufälligkeit der Antwort zu verringern.
| Standard |
Minimum |
Maximum |
|
0.9
|
0
|
5
|
-
p – Verwenden Sie einen niedrigeren Wert, um weniger wahrscheinliche Optionen zu ignorieren. Legen Sie den Wert auf 0 oder 1,0 fest, um den Parameter zu deaktivieren. Wenn p sowohl als auch k aktiviert sind, wird p nach k aktiv.
| Standard |
Minimum |
Maximum |
|
0.75
|
0
|
1
|
-
k – Geben Sie die Anzahl der Token-Optionen an, die das Modell zur Generierung des nächsten Tokens verwendet. Wenn p sowohl als auch k aktiviert sind, wird p nach k aktiv.
| Standard |
Minimum |
Maximum |
|
0
|
0
|
500
|
-
max_tokens – Geben Sie die maximale Anzahl von Token an, die in der generierten Antwort verwendet werden soll.
| Standard |
Minimum |
Maximum |
|
20
|
1
|
4096
|
-
stop_sequences – Konfigurieren Sie bis zu vier Sequenzen, die das Modell erkennt. Nach einer Stoppsequenz stoppt das Modell die Generierung weiterer Token. Der zurückgegebene Text enthält keine Stoppsequenz.
- Response
-
Die Antwort enthält folgende mögliche Felder:
{
"generations": [
{
"finish_reason": "COMPLETE | MAX_TOKENS | ERROR | ERROR_TOXIC",
"id": string,
"text": string,
"likelihood" : float,
"token_likelihoods" : [{"token" : string, "likelihood": float}],
"is_finished" : true | false,
"index" : integer
}
],
"id": string,
"prompt": string
}
generations – Eine Liste der generierten Ergebnisse zusammen mit den Wahrscheinlichkeiten für die angeforderten Token. (Immer zurückgegeben) Jedes Generierungsobjekt in der Liste umfasst die folgenden Felder.
id – Eine Kennung für die Generation. (Immer zurückgegeben)
likelihood – Die Wahrscheinlichkeit der Ausgabe. Der Wert ist der Durchschnitt der Token-Wahrscheinlichkeiten in token_likelihoods. Wird zurückgegeben, wenn Sie den Eingabeparameter return_likelihoods angeben.
token_likelihoods – Ein Array von Wahrscheinlichkeiten pro Token. Wird zurückgegeben, wenn Sie den Eingabeparameter return_likelihoods angeben.
-
finish_reason – Hiermit wird der Grund angegeben, warum das Modell die Token-Generierung abgeschlossen hat. COMPLETE – Das Modell hat eine fertige Antwort zurückgesendet. MAX_TOKENS – Die Antwort wurde gekürzt, weil das Modell die maximale Anzahl von Token für seine Kontextlänge erreicht hatte. ERROR
– Bei der Generierung der Antwort ist ein Fehler aufgetreten. ERROR_TOXIC – Das Modell generierte eine Antwort, die als toxisch eingestuft wurde. finish_reason wird nur zurückgegeben, wenn is_finished = true ist. (Nicht immer zurückgegeben)
is_finished – Ein boolesches Feld, das nur verwendet wird, wenn stream gleich true ist. Es gibt an, ob zusätzliche Token im Rahmen der Streaming-Antwort generiert werden oder nicht. (Nicht immer zurückgegeben)
text – Der generierte Text.
-
index – Wird in einer Streaming-Antwort verwendet, um festzustellen, zu welcher Generation ein bestimmtes Token gehört. Wenn nur eine Antwort gestreamt wird, gehören alle Token derselben Generation an und der Index wird nicht zurückgegeben. index wird daher nur in einer Streaming-Anfrage zurückgegeben, deren Wert für num_generations größer als eins ist.
prompt – Der Prompt aus der Eingabeanforderung (wird immer zurückgegeben).
id – Eine Kennung für die Anforderung (immer zurückgegeben).
Weitere Informationen finden Sie unter Generieren in der Cohere-Dokumentation.
Codebeispiel
Dieses Beispiel zeigt, wie das Modell Cohere Command aufgerufen wird.
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
"""
Shows how to generate text using a Cohere model.
"""
import json
import logging
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
def generate_text(model_id, body):
"""
Generate text using a Cohere model.
Args:
model_id (str): The model ID to use.
body (str) : The reqest body to use.
Returns:
dict: The response from the model.
"""
logger.info("Generating text with Cohere model %s", model_id)
accept = 'application/json'
content_type = 'application/json'
bedrock = boto3.client(service_name='bedrock-runtime')
response = bedrock.invoke_model(
body=body,
modelId=model_id,
accept=accept,
contentType=content_type
)
logger.info("Successfully generated text with Cohere model %s", model_id)
return response
def main():
"""
Entrypoint for Cohere example.
"""
logging.basicConfig(level=logging.INFO,
format="%(levelname)s: %(message)s")
model_id = 'cohere.command-text-v14'
prompt = """Summarize this dialogue:
"Customer: Please connect me with a support agent.
AI: Hi there, how can I assist you today?
Customer: I forgot my password and lost access to the email affiliated to my account. Can you please help me?
AI: Yes of course. First I'll need to confirm your identity and then I can connect you with one of our support agents.
"""
try:
body = json.dumps({
"prompt": prompt,
"max_tokens": 200,
"temperature": 0.6,
"p": 1,
"k": 0,
"num_generations": 2,
"return_likelihoods": "GENERATION"
})
response = generate_text(model_id=model_id,
body=body)
response_body = json.loads(response.get('body').read())
generations = response_body.get('generations')
for index, generation in enumerate(generations):
print(f"Generation {index + 1}\n------------")
print(f"Text:\n {generation['text']}\n")
if 'likelihood' in generation:
print(f"Likelihood:\n {generation['likelihood']}\n")
print(f"Reason: {generation['finish_reason']}\n\n")
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " +
format(message))
else:
print(f"Finished generating text with Cohere model {model_id}.")
if __name__ == "__main__":
main()