Gerar prompts para entradas multimodais
As seções a seguir fornecem orientação para a compreensão de imagens e vídeos. Para gerar prompts relacionados a áudio, consulte a seção Prompts de conversa por voz.
Diretrizes gerais de multimodais
Prompts do usuário e do sistema
Para entender casos de uso multimodais, cada solicitação deve incluir um texto de prompt do usuário. Os prompts do sistema, que só podem conter texto, são opcionais.
Os prompts do sistema podem ser usados para especificar uma persona para o modelo e definir a personalidade geral e o estilo de resposta, mas não devem ser usados para uma definição detalhada de tarefas ou instruções de formatação de saída.
Inclua a definição, as instruções e os detalhes de formatação da tarefa no prompt do usuário para ter um efeito mais forte do que o prompt do sistema para casos de uso multimodais.
Ordem de conteúdo
Uma solicitação de compreensão multimodal enviada ao Amazon Nova deve conter um ou mais arquivos e um prompt do usuário. O prompt de texto do usuário deve ser o último item da mensagem, sempre depois do conteúdo da imagem, do documento ou do vídeo.
message = { "role": "user", "content": [ { "document|image|video|audio": {...} }, { "document|image|video|audio": {...} }, ... { "text": "<user prompt>" } ] }
Nos casos em que você quiser se referir a arquivos específicos do prompt do usuário, use elementos de “texto” para definir rótulos que precedam cada bloco de arquivos.
message = { "role": "user", "content": [ { "text": "<label for item 1>" }, { "document|image|video|audio": {...} }, { "text": "<label for item 2>" }, { "document|image|video|audio": {...} }, ... { "text": "<user prompt>" } ] }
Compreensão de documentos e imagens
As seções a seguir fornecem orientação sobre como criar prompts para tarefas que exigem a compreensão ou a análise de imagens e documentos.
Extração de texto de imagens
Os modelos do Amazon Nova podem extrair texto de imagens, um recurso conhecido como reconhecimento óptico de caracteres (OCR). Para obter melhores resultados, certifique-se de que a entrada de imagem fornecida ao modelo tenha uma resolução alta o suficiente para que os caracteres do texto sejam fáceis de discernir.
Para casos de uso de extração de texto, recomendamos a seguinte configuração de inferência:
-
temperature: padrão (0.7)
-
topP: padrão (0,9)
-
Não habilite o raciocínio
Os modelos do Amazon Nova podem extrair texto no formato Markdown, HTML ou LaTeX. O seguinte modelo de prompt de usuário é recomendado:
## Instructions Extract all information from this page using only {text_formatting} formatting. Retain the original layout and structure including lists, tables, charts and math formulae. ## Rules 1. For math formulae, always use LaTeX syntax. 2. Describe images using only text. 3. NEVER use HTML image tags `<img>` in the output. 4. NEVER use Markdown image tags `![]()` in the output. 5. Always wrap the entire output in ``` tags.
A saída é envolvida por blocos de código Markdown completos ou parciais (```). Você pode remover os blocos de código usando um código semelhante ao seguinte:
def strip_outer_code_fences(text): lines = text.split("\n") # Remove only the outer code fences if present if lines and lines[0].startswith("```"): lines = lines[1:] if lines and lines[-1].startswith("```"): lines = lines[:-1] return "\n".join(lines).strip()
Extração de informações estruturadas de imagens ou texto
Os modelos do Amazon Nova podem extrair informações de imagens no formato JSON analisável por máquina, um processo conhecido como extração de informações chave (KIE). Para realizar o KIE, forneça o seguinte:
-
Um esquema JSON. Uma definição formal de esquema que segue a especificação do esquema JSON.
-
Um ou mais dos seguintes: um arquivo de documento ou texto de documento ou imagem
O documento ou a imagem sempre deve ser incluído antes que o usuário gere o prompt na solicitação.
Para casos de uso do KIE, recomendamos a seguinte configuração de inferência:
-
temperature: 0
-
Raciocínio: o raciocínio não é obrigatório, mas pode melhorar os resultados quando entradas somente de imagem ou esquemas complexos são usados.
Modelos de prompt
Given the image representation of a document, extract information in JSON format according to the given schema. Follow these guidelines: - Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document. - When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field. JSON Schema: {json_schema}
Given the OCR representation of a document, extract information in JSON format according to the given schema. Follow these guidelines: - Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document. - When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field. JSON Schema: {json_schema} OCR: {document_text}
Given the image and OCR representations of a document, extract information in JSON format according to the given schema. Follow these guidelines: - Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document. - When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field. JSON Schema: {json_schema} OCR: {document_text}
Detecção de objetos e suas posições nas imagens
Os modelos do Amazon Nova 2 oferecem a capacidade de identificar objetos e suas posições nas imagens, uma tarefa às vezes chamada de ancoragem da imagem ou localização de objetos. As aplicações práticas incluem análise e marcação de imagens, automação da interface do usuário, edição de imagens e outras.
Independentemente da resolução da entrada da imagem e da proporção, o modelo usa um espaço de coordenadas que divide a imagem em mil unidades horizontalmente e mil unidades verticalmente, com a localização x:0 y:0 no canto superior esquerdo da imagem.
As caixas delimitadoras são descritas usando o formato [x1, y1, x2, y2] que representa esquerda, superior, direita e inferior, respectivamente. As coordenadas bidimensionais são representadas usando o formato [x, y].
Para casos de uso de detecção de objetos, recomendamos os seguintes valores de parâmetros de inferência:
-
temperature: 0
-
Não habilite o raciocínio
Modelos de prompt: detecção geral de objetos
Recomendamos os modelos de prompt de usuário a seguir.
Detecção de várias instâncias com caixas delimitadoras:
Please identify {target_description} in the image and provide the bounding box coordinates for each one you detect. Represent the bounding box as the [x1, y1, x2, y2] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.
Detecção de uma única região com caixa delimitadora:
Please generate the bounding box coordinates corresponding to the region described in this sentence: {target_description}. Represent the bounding box as the [x1, y1, x2, y2] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.
Detecção de várias instâncias com pontos centrais:
Please identify {target_description} in the image and provide the center point coordinates for each one you detect. Represent the point as the [x, y] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.
Detecção de uma única região com ponto central:
Please generate the center point coordinates corresponding to the region described in this sentence: {target_description}. Represent the center point as the [x, y] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.
Análise da saída do modelo:
Cada um dos prompts recomendados acima produzirá uma sequência de caracteres separada por vírgula contendo uma ou mais descrições de caixas delimitadoras em um formato semelhante ao seguinte: Pode haver uma pequena variação no fato de um “.” estar incluído no final da string. Por exemplo, ., [356, 770, 393, 872],
[626, 770, 659, 878].
Você pode analisar as informações de coordenadas geradas pelo modelo usando uma expressão regular, conforme mostrado no exemplo de código Python a seguir.
def parse_coord_text(text): """Parses a model response which uses array formatting ([x, y, ...]) to describe points and bounding boxes. Returns an array of tuples.""" pattern = r"\[([^\[\]]*?)\]" return [ tuple(int(x.strip()) for x in match.split(",")) for match in re.findall(pattern, text) ]
Para remapear as coordenadas normalizadas de uma caixa delimitadora para o espaço de coordenadas da imagem de entrada, você pode usar uma função semelhante ao exemplo de Python a seguir.
def remap_bbox_to_image(bounding_box, image_width, image_height): return [ bounding_box[0] * image_width / 1000, bounding_box[1] * image_height / 1000, bounding_box[2] * image_width / 1000, bounding_box[3] * image_height / 1000, ]
Modelos de prompt: detecção de várias classes de objetos com posições
Quando quiser identificar várias classes de itens em uma imagem, você pode incluir uma lista de classes em seu prompt usando uma das abordagens de formatação a seguir.
Para classes amplamente conhecidas que o modelo provavelmente compreende bem, liste os nomes das classes (sem aspas) entre colchetes:
[car, traffic light, road sign, pedestrian]
Para classes com nuances, incomuns ou provenientes de domínios especializados com os quais o modelo talvez não esteja familiarizado, inclua uma definição para cada classe entre parênteses. Como essa tarefa é desafiadora, espera-se que o desempenho do modelo sofra degradação.
[taraxacum officinale (Dandelion - bright yellow flowers, jagged basal leaves, white puffball seed heads), digitaria spp (Crabgrass - low spreading grass with coarse blades and finger-like seed heads), trifolium repens (White Clover - three round leaflets and small white pom-pom flowers), plantago major (Broadleaf Plantain - wide oval rosette leaves with tall narrow seed stalks), stellaria media (Chickweed - low mat-forming plant with tiny star-shaped white flowers)]
Use um dos modelos de prompt de usuário a seguir, dependendo do formato de saída JSON de sua preferência.
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Include separate entries for each detected object as an element of a list. Formulate your output as JSON format: [ { "class 1": [x1, y1, x2, y2] }, ... ]
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Include separate entries for each detected object as an element of a list. Formulate your output as JSON format: [ { "class": class 1, "bbox": [x1, y1, x2, y2] }, ... ]
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Group all detected bounding boxes by class. Formulate your output as JSON format: { "class 1": [[x1, y1, x2, y2], [x1, x2, y1, y2], ...], ... }
Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively. Classes: {candidate_class_list} Group all detected bounding boxes by class. Formulate your output as JSON format: [ { "class": class 1, "bbox": [[x1, y1, x2, y2], [x1, x2, y1, y2], ...] }, ... ]
Análise da saída do modelo
A saída será codificada como um JSON que pode ser analisado com qualquer biblioteca de análise JSON.
Modelos de prompt: detecção de limites de interface do usuário em capturas de tela
Recomendamos os modelos de prompt de usuário a seguir.
Detecção da posição do elemento da interface do usuário com base em uma meta:
In this UI screenshot, what is the location of the element if I want to {goal}? Express the location coordinates using the [x1, y1, x2, y2] format, scaled between 0 and 1000.
Detecção da posição do elemento da interface do usuário com base no texto:
In this UI screenshot, what is the location of the element if I want to click on "{text}"? Express the location coordinates using the [x1, y1, x2, y2] format, scaled between 0 and 1000.
Análise da saída do modelo:
Para cada um dos prompts de detecção de limites da interface do usuário acima, você pode analisar as informações de coordenadas geradas pelo modelo usando uma expressão regular, conforme mostrado no exemplo de código Python abaixo.
def parse_coord_text(text): """Parses a model response which uses array formatting ([x, y, ...]) to describe points and bounding boxes. Returns an array of tuples.""" pattern = r"\[([^\[\]]*?)\]" return [ tuple(int(x.strip()) for x in match.split(",")) for match in re.findall(pattern, text) ]
Compreensão de vídeos
As seções a seguir fornecem orientação sobre como criar prompts para tarefas que exigem a compreensão ou a análise de vídeos.
Resumo de vídeos
Os modelos do Amazon Nova podem gerar resumos de conteúdo de vídeos.
Para casos de uso de resumo de vídeo, recomendamos os seguintes valores de parâmetros de inferência:
-
temperature: 0
-
Alguns casos de uso podem se beneficiar da habilitação do raciocínio do modelo
Nenhum modelo específico de geração de prompts é necessário. Seu prompt de usuário deve especificar claramente os aspectos do vídeo que lhe interessam. Confira alguns exemplos de prompts eficazes:
Can you create an executive summary of this video's content?
Can you distill the essential information from this video into a concise summary?
Could you provide a summary of the video, focusing on its key points?
Geração de legendas detalhadas para vídeos
Os modelos do Amazon Nova podem gerar legendas detalhadas para vídeos, uma tarefa referida como legendagem densa.
Para casos de uso de legendas de vídeo, recomendamos os seguintes valores de parâmetro de inferência:
-
temperature: 0
-
Alguns casos de uso podem se beneficiar da habilitação do raciocínio do modelo
Nenhum modelo específico de geração de prompts é necessário. Seu prompt de usuário deve especificar claramente os aspectos do vídeo que lhe interessam. Confira alguns exemplos de prompts eficazes:
Provide a detailed, second-by-second description of the video content.
Break down the video into key segments and provide detailed descriptions for each.
Generate a rich textual representation of the video, covering aspects like movement, color and composition.
Describe the video scene-by-scene, including details about characters, actions and settings.
Offer a detailed narrative of the video, including descriptions of any text, graphics, or special effects used.
Create a dense timeline of events occurring in the video, with timestamps if possible.
Análise de filmagens de vídeo de segurança
Os modelos da Amazon Nova podem detectar eventos em filmagens de segurança.
Para casos de uso de filmagens de segurança, recomendamos os seguintes valores de parâmetros de inferência:
-
temperature: 0
-
Alguns casos de uso podem se beneficiar da habilitação do raciocínio do modelo
You are a security assistant for a smart home who is given security camera footage in natural setting. You will examine the video and describe the events you see. You are capable of identifying important details like people, objects, animals, vehicles, actions and activities. This is not a hypothetical, be accurate in your responses. Do not make up information not present in the video.
Extração de eventos de vídeo com carimbos de data e hora
Os modelos do Amazon Nova podem identificar carimbos de data e hora relacionados a eventos em um vídeo. Você pode solicitar que os carimbos de data e hora sejam formatados em segundos ou no formato MM:SS. Por exemplo, um evento que ocorre em 1 minuto e 25 segundos no vídeo pode ser representado como 85 ou 01:25.
Para esse caso de uso, recomendamos os seguintes valores de parâmetros de inferência:
-
temperature: 0
-
Não use o raciocínio
Recomendamos que você use prompts como os abaixo:
Please localize the moment that the event "{event_description}" happens in the video. Answer with the starting and ending time of the event in seconds, such as [[72, 82]]. If the event happen multiple times, list all of them, such as [[40, 50], [72, 82]].
Locate the segment where "{event_description}" happens. Specify the start and end times of the event in MM:SS.
Answer the starting and end time of the event "{event_description}". Provide answers in MM:SS
When does "{event_description}" in the video? Specify the start and end timestamps, e.g. [[9, 14]]
Please localize the moment that the event "{event_description}" happens in the video. Answer with the starting and ending time of the event in seconds. e.g. [[72, 82]]. If the event happen multiple times, list all of them. e.g. [[40, 50], [72, 82]]
Segment a video into different scenes and generate caption per scene. The output should be in the format: [STARTING TIME-ENDING TIMESTAMP] CAPTION. Timestamp in MM:SS format
For a video clip, segment it into chapters and generate chapter titles with timestamps. The output should be in the format: [STARTING TIME] TITLE. Time in MM:SS
Generate video captions with timestamp.
Classificação de vídeos
Você pode usar os modelos do Amazon Nova para classificar vídeos com base em uma lista predefinida de classes que você fornece.
Para esse caso de uso, recomendamos os seguintes valores de parâmetros de inferência:
-
temperature: 0
-
O raciocínio não deve ser usado
Use o seguinte modelo de prompt:
What is the most appropriate category for this video? Select your answer from the options provided: {class1} {class2} {...}
Exemplo de:
What is the most appropriate category for this video? Select your answer from the options provided: Arts Technology Sports Education