Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di Converse API
Per utilizzare nuovamente il plugin Converse API, si chiamano le ConverseStream
operazioni Converse
o per inviare messaggi a un modello. Per chiamareConverse
, è necessaria l'autorizzazione per l'bedrock:InvokeModel
operazione. Per chiamareConverseStream
, è necessaria l'autorizzazione per l'bedrock:InvokeModelWithResponseStream
operazione.
Richiesta
Quando effettui una richiesta Converse con un endpoint di runtime Amazon Bedrock, puoi includere i seguenti campi:
-
modelID — Un parametro obbligatorio nell'intestazione che consente di specificare la risorsa da utilizzare per l'inferenza.
-
I seguenti campi consentono di personalizzare il prompt:
-
messaggi: consente di specificare il contenuto e il ruolo dei prompt.
-
sistema: da utilizzare per specificare i prompt di sistema, che definiscono le istruzioni o il contesto per il modello.
-
InferenceConfig — Utilizzato per specificare i parametri di inferenza comuni a tutti i modelli. I parametri di inferenza influenzano la generazione della risposta.
-
additionalmodelRequestFields— Da utilizzare per specificare i parametri di inferenza specifici del modello con cui si esegue l'inferenza.
-
PromptVariables — (Se si utilizza un prompt di Prompt management) Utilizzate questo campo per definire le variabili da compilare nel prompt e i valori con cui riempirle.
-
-
I seguenti campi consentono di personalizzare la modalità di restituzione della risposta:
-
GuardrailConfig: utilizzate questo campo per includere un guardrail da applicare all'intero prompt.
-
ToolConfig — Utilizzate questo campo per includere uno strumento che aiuti un modello a generare risposte.
-
additionalModelResponseFieldPaths— Utilizzate questo campo per specificare i campi da restituire come oggetto puntatore JSON.
-
-
RequestMetadata: utilizzate questo campo per includere metadati che possono essere filtrati quando si utilizzano i log di chiamata.
Nota
Le seguenti restrizioni si applicano quando si utilizza un prompt di gestione dei prompt con o: Converse
ConverseStream
-
Non puoi includere i campi
additionalModelRequestFields
,inferenceConfig
system
, otoolConfig
. -
Se si include il
messages
campo, i messaggi vengono aggiunti dopo i messaggi definiti nel prompt. -
Se si include il
guardrailConfig
campo, il guardrail viene applicato all'intero prompt. Se includiguardContent
blocchi nel ContentBlockcampo, il guardrail verrà applicato solo a quei blocchi.
Espandi una sezione per saperne di più su un campo nel corpo della Converse
richiesta:
Il messages
campo è una matrice di oggetti Message, ognuno dei quali definisce un messaggio tra l'utente e il modello. Un Message
oggetto contiene i seguenti campi:
-
role — Definisce se il messaggio proviene da
user
(il prompt inviato al modello) oassistant
(la risposta del modello). -
content: definisce il contenuto del prompt.
Nota
Amazon Bedrock non memorizza testo, immagini o documenti che fornisci come contenuto. I dati vengono utilizzati solo per generare la risposta.
È possibile mantenere il contesto della conversazione includendo tutti i messaggi della conversazione nelle Converse
richieste successive e utilizzando il role
campo per specificare se il messaggio proviene dall'utente o dal modello.
Il content
campo è mappato su una serie di ContentBlockoggetti. All'interno di ciascuno ContentBlock, puoi specificare uno dei seguenti campi (per vedere quali modelli supportano quali modalità, vediModelli e caratteristiche del modello supportati):
Nota
Le seguenti restrizioni riguardano il content
campo:
-
Puoi includere fino a 20 immagini. Le dimensioni, l'altezza e la larghezza di ogni immagine non devono superare rispettivamente 3,75 MB, 8.000 px e 8.000 px.
-
Puoi includere fino a cinque documenti. Le dimensioni di ogni documento non devono superare i 4,5 MB.
-
Puoi includere immagini e documenti solo se lo
role
èuser
.
Nell'messages
esempio seguente, l'utente richiede un elenco di tre brani pop e il modello genera un elenco di brani.
[ { "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" } ] } ]
Un prompt di sistema è un tipo di prompt che fornisce istruzioni o contesto al modello sull'attività che deve svolgere o sul personaggio che deve assumere durante la conversazione. È possibile specificare un elenco di prompt di sistema per la richiesta nel campo system
(SystemContentBlock), come illustrato nell'esempio seguente.
[ { "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. " } ]
Il Converse L'API supporta un set base di parametri di inferenza impostati nel campo (). inferenceConfig
InferenceConfiguration Il set base di parametri di inferenza è:
maxTokens: il numero massimo di token da consentire nella risposta generata.
stopSequences: un elenco di sequenze di interruzioni. Una sequenza di interruzioni è una sequenza di caratteri che causa l'interruzione della generazione della risposta da parte del modello.
temperatura — La probabilità che il modello selezioni opzioni a maggiore probabilità durante la generazione di una risposta.
TopP: la percentuale di candidati più probabili che il modello considera per il token successivo.
Per ulteriori informazioni, consulta Influenza la generazione della risposta con parametri di inferenza.
L'esempio seguente JSON imposta il parametro di inferenza. temperature
{"temperature": 0.5}
Se il modello che stai utilizzando ha parametri di inferenza aggiuntivi, puoi impostare tali parametri specificandoli come JSON nel campo. additionalModelRequestFields
L'esempio seguente JSON mostra come impostaretop_k
, che è disponibile in Anthropic Claude modelli, ma non è un parametro di inferenza di base nell'API dei messaggi.
{"top_k": 200}
Se si specifica un prompt di Prompt management modelId
come risorsa su cui eseguire l'inferenza, utilizzare questo campo per inserire nelle variabili di prompt i valori effettivi. Il promptVariables
campo è mappato su un oggetto JSON con chiavi che corrispondono alle variabili definite nei prompt e valori con cui sostituire le variabili.
Ad esempio, supponiamo che tu abbia un prompt che dice. Make me a
L'ID del prompt è {{genre}}
playlist consisting of the following number of songs: {{number}}
.PROMPT12345
e la sua versione è. 1
È possibile inviare la seguente Converse
richiesta per sostituire le variabili:
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 } }
Puoi applicare un guardrail creato con Amazon Bedrock Guardrails includendo questo campo. Per applicare il guardrail a un messaggio specifico della conversazione, includi il messaggio in un. GuardrailConverseContentBlock Se non includi alcuna GuardrailConverseContentBlock
s nel corpo della richiesta, il guardrail viene applicato a tutti i messaggi nel messages
campo. Per vedere un esempio, consulta Include un guardrail con Converse API .
Questo campo consente di definire uno strumento da utilizzare per il modello per aiutarlo a generare una risposta. Per ulteriori informazioni, consulta Usa uno strumento per completare una risposta al modello Amazon Bedrock.
È possibile specificare i percorsi per i parametri aggiuntivi del modello nel additionalModelResponseFieldPaths
campo, come mostrato nell'esempio seguente.
[ "/stop_sequence" ]
L'API restituisce i campi aggiuntivi richiesti nel additionalModelResponseFields
campo.
Questo campo è mappato a un oggetto JSON. È possibile specificare le chiavi e i valori dei metadati a cui mappare all'interno di questo oggetto. È possibile utilizzare i metadati di richiesta per filtrare i log di invocazione del modello.
Facoltativamente, puoi anche aggiungere checkpoint della cache ai tools
campi system
or per utilizzare la memorizzazione nella cache rapida, a seconda del modello che stai utilizzando. Per ulteriori informazioni, consulta Memorizzazione rapida nella cache per un'inferenza più rapida del modello.
Nota
Il prompt caching di Amazon Bedrock è attualmente disponibile solo per un numero selezionato di clienti. Per ulteriori informazioni sulla partecipazione all'anteprima, consulta Amazon Bedrock prompt
Risposta
La risposta che ricevi dal Converse L'API dipende dall'operazione che chiami Converse
oConverseStream
.
Risposta inversa
Nel modulo di rispostaConverse
, il output
campo (ConverseOutput) contiene il messaggio (Message) generato dal modello. Il contenuto del messaggio si trova nel campo content
(ContentBlock) e il ruolo (user
oassistant
) a cui corrisponde il messaggio è nel role
campo.
Se hai usato il prompt caching, inserisci nel campo usage cacheReadInputTokensCount
e ti cacheWriteInputTokensCount
dico quanti token totali sono stati letti dalla cache e scritti nella cache, rispettivamente.
Il metrics
campo (ConverseMetrics) include le metriche per la chiamata. Per determinare il motivo per cui il modello ha smesso di generare contenuti, controlla il stopReason
campo. Puoi ottenere informazioni sui token passati al modello nella richiesta e sui token generati nella risposta controllando il usage
campo () TokenUsage. Se hai specificato campi di risposta aggiuntivi nella richiesta, l'API li restituisce come JSON nel campo. additionalModelResponseFields
L'esempio seguente mostra la risposta ottenuta Converse
quando si passa il prompt discusso in. Richiesta
{ "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 risposta
Se chiami ConverseStream
per trasmettere in streaming la risposta da un modello, il flusso viene restituito nel campo di stream
risposta. Lo stream emette i seguenti eventi nell'ordine seguente.
-
messageStart
(MessageStartEvent). L'evento di inizio di un messaggio. Include il ruolo del messaggio. -
contentBlockStart
(ContentBlockStartEvent). Un evento di avvio del blocco di contenuto. Solo uso dello strumento. -
contentBlockDelta
(ContentBlockDeltaEvent). Un evento delta del blocco di contenuto. Include uno dei seguenti:-
text
— Il testo parziale generato dal modello. -
reasoningContent
— Il ragionamento parziale eseguito dal modello per generare la risposta. È necessario inviare i messaggi restituitisignature
, oltre a tutti i messaggi precedenti nelleConverse
richieste successive. Se uno qualsiasi dei messaggi viene modificato, la risposta genera un errore. -
toolUse
— L'oggetto JSON di input parziale per l'uso dello strumento.
-
-
contentBlockStop
(ContentBlockStopEvent). Un evento Content Block Stop. -
messageStop
(MessageStopEvent). L'evento di interruzione del messaggio. Include il motivo per cui il modello ha smesso di generare output. -
metadata
(ConverseStreamMetadataEvent). Metadati per la richiesta. I metadati includono l'utilizzo del token inusage
(TokenUsage) e le metriche per la chiamata inmetrics
(). ConverseStreamMetadataEvent
ConverseStream trasmette un blocco di contenuto completo come ContentBlockStartEvent
evento, uno o più ContentBlockDeltaEvent
eventi e un evento. ContentBlockStopEvent
Usa il contentBlockIndex
campo come indice per correlare gli eventi che compongono un blocco di contenuto.
L'esempio seguente è una risposta parziale diConverseStream
.
{'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}}}