# Использование подключений OpenAI в выражениях визуализации

Можно добавлять OpenAI вопросы и ответы в модель данных приложения не только с помощью скрипта загрузки, но и выполнять эти операции непосредственно в диаграмме приложения в режиме анализа. Данные для одного поля передаются между пользователем и OpenAI.

Во многих случаях код, используемый для подключения скрипта загрузки, можно переориентировать для использования в диаграмме, но с некоторыми изменениями.

Если конкретный сценарий применения основан на вводе пользователя, можно использовать аналитическое подключение и соответствующий синтаксис серверного расширения в выражении диаграммы, чтобы создавать интерактивные диаграммы для визуализации данных, полученных из конечных точек модели.

## Что нужно знать об объемах запросов данных

Рекомендуется использовать подключения OpenAI только в выражениях диаграммы для одной или нескольких строк данных. Не рекомендуется использовать выражения диаграммы для отправки больших объемов данных в OpenAI.

Важно знать, сколько строк отправляется вместе с каждым запросом. Ошибки конфигурации подключения в выражении диаграммы могут привести к созданию непреднамеренно больших запросов (например, идентичные строки с одинаковым вопросом из-за неправильного использования модели данных в диаграммы). Прежде чем взаимодействовать с внешней платформой, необходимо оценить, как поля, используемые при расчете выражения диаграммы, а также с их местом в модели данных влияют на финансовое соглашение с внешним поставщиком и на оплату его услуг. Чем более интенсивно используется внешняя платформа, тем больше могут быть затраты.

Следуйте приведенным ниже рекомендациям, чтобы модерировать и ограничивать размер запросов:

* При работе с выражениями диаграмм используйте подключение только в объекте Текст (из Dashboard bundle). Крайне нежелательно использовать подключение OpenAI в объекте Таблица, особенно если выражение добавляется в таблицу, в которой уже есть одно или несколько измерений.

* Если выражение диаграммы связано с моделью данных приложения, используйте оператор if в выражении для вычисления диаграммы, только когда в приложении сделана одна выборка. Это значительно сокращает количество строк в запросах, которые диаграмма будет отправлять в OpenAI.

* Если подключение OpenAI служит для отправки больших запросов, используйте подключение в скрипте загрузки, а не в выражении диаграммы, чтобы данные предварительно загружались в модель данных.

## Создание выражения диаграммы

Выполните следующие действия.

1. При редактировании визуализации щелкните the Выражение icon, чтобы открыть редактор выражения.

2. В редакторе выражения введите выражение в соответствующее поле. Выражение необходимо составлять, используя синтаксис серверного расширения.

## Быстрые примеры

Здесь приводятся образцы выражений, которые можно использовать в начале работы с коннектором OpenAI. Рассмотрим следующие подробные сведения:

* Используйте выражения только с объектом Текст (из Dashboard bundle). См. [Текст](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/DashboardBundle/text-object.htm).

* Рассмотрите возможность добавления оператора `if` в свои выражения, чтобы контролировать, когда диаграмма пересчитывается, и обновлять ее в зависимости от выборок пользователя в приложении.

* Чтобы выражения работали, необходимо заменить значение `connectionname` и имена полей в соответствии с вашими собственными подключениями и приложениями.

Для получения дополнительных примеров см. раздел [Учебное пособие — использование коннектора аналитики OpenAI в Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-openai-tutorial.htm).

Примеры выражения диаграммы для аналитического коннектора OpenAI

Примеры выражения диаграммы для аналитического коннектора OpenAI

| Конфигурация коннектора | Выражение | Сводка |
| --- | --- | --- |
| 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.')` | Это сложный оператор `if`, при использовании которого диаграмма рассчитывается, только если пользователь выбрал одно значение для поля `BusinessTopic`. Диаграмма обновляется, только если пользователь сделал эту выборку в приложении. В противном случае в диаграмме отображается следующее альтернативное сообщение: `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))` | Этот оператор можно использовать только в объекте Текст (из Dashboard bundle), привязанном к элементу управления Ввод переменной. Расчет диаграммы выполняется только при вводе данных. Когда пользователь вводит данные в объект и нажимает клавишу «Ввод», в диаграмме отображается ответ модели на ввод.<br><br>Для получения подробных инструкций см. раздел [Упражнение. Создание поля ввода текста с использованием переменной](https://help.qlik.com/ru-RU/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]))` | В данном примере диаграмма рассчитывается, только если выбрано одно уникальное значение в поле `IssueCategory` в модели данных приложения. Отправляется запрос в OpenAI на получение образца ответа из отдела технической поддержки, описывающего общий тип проблем, список которых содержится в поле `IssueCategory`. Диаграмма обновляется в зависимости от значения, выбранного пользователем. |

## Подробные примеры

Полные примеры того, как создавать выражения визуализации с использованием подключения OpenAI, см. в разделе [Учебное пособие — использование коннектора аналитики OpenAI в Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-openai-tutorial.htm).

## Подробнее

* [Синтаксис серверных расширений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)
* [GetSelectedCount — функция диаграммы](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FieldFunctions/getselectedcount.htm)
* [Использование переменных в выражениях](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)