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à.
Usa l'API Converse
Puoi utilizzare l'API Amazon Bedrock Converse per creare applicazioni conversazionali che inviano e ricevono messaggi da e verso un modello Amazon Bedrock. Ad esempio, puoi creare un chat bot che mantiene una conversazione a più turni e utilizza una personalizzazione del personaggio o del tono adatta alle tue esigenze, ad esempio un utile assistente di supporto tecnico.
Per utilizzare l'API Converse, si utilizzano le operazioni Converse o ConverseStream(per lo streaming delle risposte) per inviare messaggi a un modello. È possibile utilizzare le operazioni di inferenza esistenti (InvokeModelo InvokeModelWithResponseStream) per le applicazioni di conversazione. Tuttavia, consigliamo di utilizzare l'API Converse in quanto fornisce un'API coerente, che 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, l'API Converse ti consente anche di passare quei parametri unici in una struttura specifica del modello.
Puoi utilizzare l'API Converse per implementare l'uso degli strumenti e i guardrail nelle tue applicazioni.
Nota
Oltre ai Mistral AI modelli Meta open source, l'API Converse incorpora i tuoi input in un modello di prompt specifico del modello che abilita le conversazioni.
Argomenti
Modelli e caratteristiche del modello supportati
L'API Converse supporta i seguenti modelli e funzionalità di Amazon Bedrock. L'API Converse non supporta alcun modello di incorporamento (comeTitan Embeddings G1 - Text) o modello 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ì |
No |
Sì |
No |
No |
No |
No |
No |
AI21 LabsJurassic-2(Testo) |
Limitato. Nessun supporto via chat. |
No |
No |
No |
No |
No |
No |
Sì |
TitanModelli Amazon |
Sì |
Sì |
No |
Sì (eccettoTitan Text Premier) |
No |
No |
No |
Sì |
AnthropicClaude2 e versioni precedenti |
Sì |
Sì |
Sì |
Sì |
No |
No |
No |
Sì |
AnthropicClaude3 |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
AnthropicClaude3.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 e Command R Command R+ |
Sì |
Sì |
Sì |
Sì |
No |
Sì |
No |
No |
Meta e Llama 2 Llama 3 |
Sì |
Sì |
Sì |
Sì |
No |
No |
No |
Sì |
Mistral AI Instruct |
Sì |
Sì |
No |
Sì |
No |
No |
No |
Sì |
Mistral Large |
Sì |
Sì |
Sì |
Sì |
No |
Sì |
No |
Sì |
Mistral Small | Sì | Sì | Sì | No | No | Sì | No | Sì |
Nota
CohereCommand(Testo) e AI21 Labs Jurassic-2 (Testo) non supportano la chat con l'API Converse. I modelli possono gestire solo un 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.
Utilizzo dell'API Converse
Per utilizzare l'API Converse, chiami 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
È possibile specificare il modello che si desidera utilizzare impostando il modelId
campo. Per un elenco degli ID di modello supportati da Amazon Bedrock, consultaID dei modelli Amazon Bedrock.
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 API Converse.
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.
Il contenuto del messaggio viene memorizzato nel content
campo, che corrisponde a 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):
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
L'API Converse 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 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 nei Anthropic Claude modelli, ma non è un parametro di inferenza di base nell'API dei messaggi.
{"top_k": 200}
È 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.
Risposta
La risposta che ricevi dall'API Converse 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, 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 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 API Converse
Gli esempi seguenti mostrano come utilizzare le ConverseStream
operazioni Converse
and.