# Usando conexões Amazon Bedrock - Converse API em expressões de visualização

Além de adicionar perguntas e respostas do Amazon Bedrock ao modelo de dados do seu aplicativo usando o script de carregamento, você também pode realizar essas operações diretamente em um gráfico no seu aplicativo no modo de análise. Os dados de um único campo são enviados e recebidos entre você e o Amazon Bedrock.

Em muitos casos, o código usado para uma conexão de script de carregamento pode ser reaproveitado para uso em um gráfico, com algumas diferenças.

Se o caso de uso for baseado na entrada do usuário, você poderá usar uma conexão analítica e a sintaxe de extensão no lado do servidor correspondente na sua expressão de gráfico para criar gráficos interativos que visualizam os dados recebidos dos terminais do modelo.

## Considerações para volumes de solicitação de dados

Recomenda-se usar apenas conexões Amazon Bedrock - Converse API em expressões de gráfico para uma ou algumas linhas de dados. Não é recomendado o uso de expressões de gráfico para enviar grandes quantidades de dados para o Amazon Bedrock.

É importante estar ciente de quantas linhas você está enviando com cada solicitação. Erros na configuração da conexão em uma expressão de gráfico podem levar a solicitações involuntariamente grandes (por exemplo, linhas idênticas com a mesma pergunta devido ao uso indevido do modelo de dados em um gráfico). Antes de interagir com uma plataforma de terceiros, certifique-se de estar ciente de como os campos usados no cálculo da expressão do gráfico e seu lugar no modelo de dados afetam seu contrato financeiro e acordos de cobrança com terceiros. Uma maior utilização da plataforma externa pode resultar em custos mais elevados.

Siga estas diretrizes para moderar e limitar o tamanho das suas solicitações:

* Ao trabalhar com expressões de gráfico, use apenas a conexão em um objeto de Texto (do Dashboard bundle). É desaconselhável usar uma conexão com o Amazon Bedrock - Converse API em um objeto de Tabela, especialmente se você estiver adicionando a expressão a uma tabela com uma ou mais dimensões já adicionadas.

* Se a expressão de gráfico estiver vinculada ao modelo de dados do seu aplicativo, use uma instrução if nessa expressão para calcular o gráfico somente quando uma única seleção for feita no aplicativo. Isso reduz drasticamente a contagem de linhas nas solicitações que seu gráfico envia para a Amazon Bedrock.

* Se você estiver usando uma conexão com o Amazon Bedrock - Converse API para enviar solicitações grandes, use a conexão no seu script de carregamento em vez de em uma expressão de gráfico, para que os dados sejam pré-carregados no seu modelo de dados.

## Engenharia de prompts

Ao escrever as solicitações que você está enviando para um modelo de IA generativa (geralmente conhecido como prompts), siga as diretrizes específicas da plataforma com a qual você está interagindo. Para obter informações sobre engenharia de prompts e algumas diretrizes sobre como estruturar seus prompts para conectores do Amazon Bedrock, consulte [Conceitos de engenharia de prompts](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-engineering-guidelines.html).

Você pode interagir com o conector do Amazon Bedrock - Converse API usando formatação padrão de frase ou texto. Você não precisa prefixar ou sufixar o prompt com palavras-chave ou strings especiais. Consulte [Exemplos rápidos](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-bedrock-converse-api-use.htm#Quick).

## Criando a expressão de gráfico

Faça o seguinte:

1. Ao editar uma visualização, clique em the Expressão icon para entrar no editor de expressões.

2. No editor de expressões, insira uma expressão no campo de expressão. A expressão deve ser construída usando a sintaxe de extensão no lado do servidor.

## Exemplos rápidos

Aqui você pode encontrar expressões de exemplo que podem ser usadas ao começar a usar o conector do Amazon Bedrock - Converse API. Considere os seguintes detalhes:

* Use as expressões apenas com um objeto Texto (do Dashboard bundle). Consulte [Texto](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/DashboardBundle/text-object.htm).

* Considere adicionar uma instrução `if` às suas expressões para controlar quando o gráfico é recalculado e para atualizar dependendo das seleções do usuário no aplicativo.

* Para que as expressões funcionem, você deve substituir o valor `connectionname` e quaisquer nomes de campo para corresponder às suas próprias conexões e scripts.

### Exemplo 1

Essa instrução retornará a resposta a uma única pergunta, que foi inserida na expressão.

Nota de advertência

Essa expressão não usa uma instrução `if`, e não é aconselhável usá-la se estiver vinculada a um campo em seu modelo de dados. É adequado apenas para uso em uma expressão autônoma com uma única célula de entrada contendo um valor codificado.

```
endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Bedrock_Connection","column":"text"}}', 'Translate this text from english to spanish: The sun was rising over the new tomorrow with a tinge of excitement.')
```

### Exemplo 2

Esta é uma instrução que pode ser usada em um objeto Texto (do Dashboard bundle) vinculado a um controle de entrada Variável. O gráfico só é calculado quando a entrada é inserida. Quando o usuário digita a entrada no objeto e pressiona Enter, o gráfico exibe a resposta do modelo à sua entrada.

Para obter um passo a passo semelhante com um conector diferente, consulte [Exercício: criando uma caixa de entrada de texto usando uma variável](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-openai-tutorial-example-3.htm#Exercise).

```
if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Bedrock_Connection","column":"text"}}',vQuestion))
```

### Exemplo 3

Neste exemplo, o gráfico só será calculado se um valor distinto tiver sido selecionado no campo `IssueCategory` no modelo de dados do aplicativo. Uma solicitação é enviada ao modelo solicitando um exemplo de resposta de um departamento de suporte técnico sobre um tipo geral de problema, cuja lista está contida no campo `IssueCategory`. O gráfico é atualizado dependendo do valor selecionado pelo usuário.

```
if(count(distinct [IssueCategory]) = 1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Bedrock_Connection","column":"text"}}', 'Write me a sample response from a technical support department for a customer complaint about ' & [IssueCategory]'))
```