# Usando conexões OpenAI em expressões de visualização

Além de adicionar perguntas e respostas do OpenAI 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 OpenAI.

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 OpenAI 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 OpenAI.

É 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 OpenAI 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 OpenAI.

* Se você estiver usando uma conexão com o OpenAI 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.

## 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 OpenAI. 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 aplicativos.

Para exemplos adicionais, consulte [Tutorial – Usando o conector de análise do OpenAI no Qlik Cloud](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-openai-tutorial.htm).

Exemplos de expressão de gráfico para o conector de análise do OpenAI

Exemplos de expressão de gráfico para o conector de análise do OpenAI

| Configuração do conector | Expressão | Resumo |
| --- | --- | --- |
| OpenAI Chat Completions API | `if(GetSelectedCount(BusinessTopic)=1, endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3", "column":"choices.message.content"}}', 'What are people saying about ' & 'BusinessTopic'), 'Please select a single value for BusinessTopic.')` | Esta é uma instrução `if` complexa em que o gráfico só é calculado se o usuário tiver selecionado um valor para o campo `BusinessTopic`. O gráfico só será atualizado se o usuário tiver feito essa seleção no aplicativo e, caso não tenha feito, o gráfico exibirá a seguinte mensagem alternativa: `Please select a single value for BusinessTopic`. |
| OpenAI Chat Completions API | `if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Rows_3","column":"choices.message.content"}}',vQuestion))` | 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.<br><br>Para um passo a passo, 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). |
| OpenAI Chat Completions API | `if(<br>count(distinct [IssueCategory]) = 1,<br>endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_OpenAI_Connection_Chat_3_5","column":"choices.message.content"}}', 'write me a sample response from a technical support department for a customer complaint about ' & [IssueCategory]))` | 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 OpenAI 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. |

## Exemplos detalhados

Para obter exemplos completos de como criar expressões de visualização usando sua conexão com o OpenAI, consulte [Tutorial – Usando o conector de análise do OpenAI no Qlik Cloud](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-openai-tutorial.htm).

## Saiba mais

* [Sintaxe das extensões no lado do servidor](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)
* [GetSelectedCount - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getselectedcount.htm)
* [Usando variáveis em expressões](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)