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à.
Intraprendi una conversazione con Converse
Puoi utilizzare Amazon Bedrock Converse API per creare applicazioni conversazionali che inviano e ricevono messaggi da e verso un modello Amazon Bedrock. Ad esempio, puoi creare un chat bot che intrattiene una conversazione a più turni e utilizza una personalizzazione del personaggio o del tono specifica per le tue esigenze, ad esempio un utile assistente di supporto tecnico.
Per utilizzare ConverseAPI, si utilizzano le operazioni Converse o ConverseStream(per lo streaming delle risposte) per inviare messaggi a una modella. È possibile utilizzare le operazioni di inferenza esistenti (InvokeModelo InvokeModelWithResponseStream) per le applicazioni di conversazione. Tuttavia, consigliamo di utilizzare Converse in API quanto è coerente API e funziona con tutti i modelli Amazon Bedrock che supportano i messaggi. Ciò significa che puoi scrivere il codice una sola volta e utilizzarlo con modelli diversi. Se un modello ha parametri di inferenza unici, Converse consente API anche di passare quei parametri unici in una struttura specifica del modello.
Puoi usare Converse API per implementare l'uso degli strumenti e i guardrail nelle tue applicazioni.
Nota
Con Mistral AI e Meta modelli, Converse API incorpora i tuoi input in un modello di prompt specifico del modello che abilita le conversazioni.
Modelli e caratteristiche del modello supportati
Converse API supporta i seguenti modelli e caratteristiche di Amazon Bedrock. Converse API non supporta alcun modello di incorporamento (come Titan Embeddings G1 - Text) o modelli di generazione di immagini (come Stability AI).
Modello | conversare | ConverseStream | Richieste di sistema | Chat relativa ai documenti | Vista | Uso dello strumento | Utilizzo dello strumento di streaming | Guardrail |
---|---|---|---|---|---|---|---|---|
AI21 Jamba-Instruct |
Sì |
Sì |
Sì |
No |
No |
No |
No |
No |
AI21 Labs Jurassic-2 (Testo) |
Limitato. Nessun supporto via chat. |
No |
No |
No |
No |
No |
No |
Sì |
Amazon Titan modelli |
Sì |
Sì |
No |
Sì (tranne Titan Text Premier) |
No |
No |
No |
Sì |
Anthropic Claude 2 e versioni precedenti |
Sì |
Sì |
Sì |
Sì |
No |
No |
No |
Sì |
Anthropic Claude 3 |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
Anthropic Claude 3.5 |
Sì |
Sì |
Sì |
No |
Sì |
Sì |
Sì |
Sì |
Cohere Command |
Limitato. Nessun supporto via chat. |
Limitato. Nessun supporto via chat. |
No |
Sì |
No |
No |
No |
Sì |
Cohere Command Light |
Limitato. Nessun supporto via chat. |
Limitato. Nessun supporto via chat. |
No |
No |
No |
No |
No |
Sì |
Cohere Command R e Command R+ |
Sì |
Sì |
Sì |
Sì |
No |
Sì |
No |
No |
Meta Llama 2 e Llama 3 |
Sì |
Sì |
Sì |
Sì |
No |
No |
No |
Sì |
Meta Llama 3.1 |
Sì |
Sì |
Sì |
Sì |
No |
Sì |
No |
Sì |
Mistral AI Instruct |
Sì |
Sì |
No |
Sì |
No |
No |
No |
Sì |
Mistral Large |
Sì |
Sì |
Sì |
Sì |
No |
Sì |
No |
Sì |
Mistral Large 2 (24.07) |
Sì |
Sì |
Sì |
Sì |
No |
Sì |
No |
Sì |
Mistral Small | Sì | Sì | Sì | No | No | Sì | No | Sì |
Nota
Cohere Command (Testo) e AI21 Labs Jurassic-2 (Testo) non supporta la chat con Converse. API I modelli possono gestire un solo messaggio utente alla volta e non possono mantenere la cronologia di una conversazione. Viene visualizzato un errore se si tenta di trasmettere più di un messaggio.
Usare Converse API
Per utilizzare ConverseAPI, si chiamano le ConverseStream
operazioni Converse
or per inviare messaggi a una modella. Per chiamareConverse
, è necessaria l'autorizzazione per l'bedrock:InvokeModel
operazione. Per chiamareConverseStream
, è necessaria l'autorizzazione per l'bedrock:InvokeModelWithResponseStream
operazione.
Richiesta
È possibile specificare il modello che si desidera utilizzare impostando il modelId
campo. Per un elenco dei modelli IDs supportati da Amazon Bedrock, consultaModello Amazon Bedrock IDs.
Una conversazione è una serie di messaggi tra l'utente e il modello. Si avvia una conversazione inviando un messaggio come utente (ruolo utente) al modello. Il modello, che funge da assistente (ruolo di assistente), genera quindi una risposta che restituisce in un messaggio. Se lo desideri, puoi continuare la conversazione inviando altri messaggi sul ruolo utente al modello. Per mantenere il contesto della conversazione, assicuratevi di includere tutti i messaggi relativi al ruolo di assistente che ricevete dal modello nelle richieste successive. Per il codice di esempio, consulta Esempi di converse API.
I messaggi che desideri passare a un modello vengono forniti messages
sul campo, che viene mappato a una matrice di oggetti Message. Ogni messaggio contiene il contenuto del messaggio e il ruolo che il messaggio svolge nella conversazione.
Nota
Amazon Bedrock non memorizza testo, immagini o documenti che fornisci come contenuto. I dati vengono utilizzati solo per generare la risposta. Quando si utilizza ConverseAPI, è necessario utilizzare un documento non compresso e decodificato di dimensioni inferiori a 4,5 MB.
Il contenuto del messaggio viene memorizzato nel content
campo, che corrisponde a una serie di oggetti. ContentBlock All'interno di ciascuno ContentBlock, puoi specificare uno dei seguenti campi (per vedere quali modelli supportano quali modalità, vediModelli e caratteristiche del modello supportati):
Gli altri campi ContentBlock
sono destinati all'uso degli strumenti.
Specificate il ruolo nel role
campo. Il ruolo può essere uno dei seguenti:
-
utente: l'essere umano che invia messaggi al modello.
-
assistente: il modello che invia messaggi all'utente umano.
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 playlists for a radio station that plays rock and pop music. Only return song names and the artist. " } ]
Parametri di inferenza
Converse 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 state utilizzando ha parametri di inferenza aggiuntivi, potete 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 nei messaggiAPI.
{"top_k": 200}
È possibile specificare i percorsi per i parametri aggiuntivi del modello nel additionalModelResponseFieldPaths
campo, come illustrato nell'esempio seguente.
[ "/stop_sequence" ]
APIRestituisce i campi aggiuntivi richiesti nel additionalModelResponseFields
campo.
Risposta
La risposta che ricevi da Converse API dipende dall'operazione che chiami Converse
oConverseStream
.
Risposta Converse
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.
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, li API restituisce come JSON nel additionalModelResponseFields
campo.
L'esempio seguente mostra la risposta ottenuta Converse
quando si passa il prompt discusso inRichiesta.
{ "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 il testo parziale generato dal modello o l'input json 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}}}
Esempi di converse API
Gli esempi seguenti mostrano come utilizzare le ConverseStream
operazioni Converse
and.