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à.
Creazione di un sistema RAG personalizzato con Amazon Nova
Nota
Amazon Nova Premier non è ancora disponibile tramite l'RetrieveAndGenerateAPI. Per utilizzare l'RetrieveAndGenerateAPI con Amazon Nova Premier, devi fornire un prompt personalizzato quando chiami l'RetrieveAndGenerateAPI. A tale scopo, è necessario fornire l'generationConfigurationargomento promptTemplate in nella chiamata RetrieveAndGenerateAPI, come illustrato di seguito:
'generationConfiguration': { 'promptTemplate': { 'textPromptTemplate': promptTemplate } }
Per creare un modello di prompt personalizzato, consulta la guida ai prompt per RAG.
Puoi utilizzare i modelli Amazon Nova come LLM all’interno di un sistema RAG di testo personalizzato. Per creare il tuo sistema RAG con Amazon Nova, puoi configurare il sistema RAG per interrogare direttamente una knowledge base oppure puoi associare una knowledge base a un agente (per ulteriori informazioni, consulta Creazione di agenti IA con Amazon Nova)
Quando si utilizza Amazon Nova all’interno di qualsiasi sistema RAG, vi sono due approcci generali:
-
Utilizzo di un retriever come strumento (consigliato): è possibile definire il retriever da utilizzare come strumento nell'API converse o nell'API ToolParameter Invokemodel. Ad esempio, puoi definire l’API Retrieve di Bedrock o qualsiasi altro strumento di recupero come “strumento”.
-
Utilizzo di istruzioni personalizzate per i sistemi RAG: puoi definire istruzioni personalizzate per creare un sistema RAG personalizzato.
Utilizzo di uno strumento di recupero
Definisci uno strumento che consenta al modello di invocare uno strumento di recupero. La definizione dello strumento è uno schema JSON che si passa il parametro di richiesta toolConfig () ToolConfigurationall'operazione. Converse
{ "tools": [ { "toolSpec": { "name": "Retrieve information tool", "description": "This tool retrieves information from a custom database", "inputSchema": { "json": { "type": "object", "properties": { "query": { "type": "string", "description": "This is the description of the query parameter" } }, "required": [ "query" ] } } } } ] }
Dopo aver definito lo strumento, puoi passare la configurazione dello strumento come parametro nell’API Converse.
Come interpretare gli elementi di risposta
Riceverai una risposta dal modello sotto forma di JSON nel “ruolo” di assistente con il tipo di contenuto “toolUse” o sotto forma di tipo di contesto come “testo” se il modello sceglie di non utilizzare lo strumento di recupero. Se il modello sceglie di utilizzare lo strumento di recupero, la risposta identificherà lo strumento (tool_name). Le informazioni su come utilizzare lo strumento richiesto si trovano nel messaggio che il modello restituisce nel campo output (ConverseOutput). In particolare, il campo toolUse (ToolUseBlock). Il campo toolUseId viene utilizzato per identificare la richiesta dello strumento nelle chiamate successive.
{ "output": { "message": { "role": "assistant", "content": [ { "toolUse": { "toolUseId": "tooluse_1234567", "name": "Retrieve information tool", "input": { "query": "Reformatted user query" #various arguments needed by the chosen tool } } } ] } }, "stopReason": "tool_use" }
Dal campo toolUse nella risposta del modello, puoi utilizzare il campo name per identificare il nome dello strumento. Poi chiama l’implementazione dello strumento e passa i parametri di input dal campo input.
Come inserire nuovamente i contenuti recuperati nell’API Converse
Per eseguire nuovamente i risultati recuperati su Amazon Nova, ora puoi creare un messaggio Tool Block che includa un blocco di contenuto toolResult (ToolResultBlock) all'interno del ruolo utente. Nel blocco di contenuto, includi la risposta dallo strumento e l’ID per la richiesta dello strumento che hai ricevuto nel passaggio precedente.
{ "role": "user", "content": [ { "toolResult": { "toolUseId": "tooluse_1234567", "content": [ { "json": { "Text chunk 1": "retrieved information chunk 1", "Text chunk 2": "retrieved information chunk 2" } } ], "status": "success | error" } } ] }
Il toolResult può avere “contenuti” che possono avere “testo”, “JSON” e “immagine” (a seconda del modello utilizzato). Se si verifica un errore nello strumento, come una richiesta di argomenti inesistenti o errati, puoi inviare informazioni sull’errore al modello presente nel campo toolResult. Per indicare un errore, specifica error nel campo status.