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

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

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

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

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

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

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

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

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

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

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

## Инженерия подсказок

При составлении запросов, которые отправляются в модель генеративного ИИ (часто называемых подсказками или промптами), следуйте рекомендациям, предназначенным для используемой комбинации платформы. Для получения информации об инженерии подсказок и некоторых рекомендациях по структурированию подсказок для Amazon Bedrock коннекторов, см. раздел [Концепции инженерии подсказок](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-engineering-guidelines.html).

Для взаимодействия с коннектором Amazon Bedrock - Converse API можно использовать стандартное форматирование предложения или текста. Не требуется добавлять специальные ключевые слова или строки до или после подсказки. См. [Быстрые примеры](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-bedrock-converse-api-use.htm#Quick).

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

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

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

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

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

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

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

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

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

### Пример 1.

Этот оператор возвращает ответ на один вопрос, введенный в выражение.

Примечание к предупреждению

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

```
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.')
```

### Пример 2.

Этот оператор можно использовать только в объекте Текст (из Dashboard bundle), привязанном к элементу управления Ввод переменной. Расчет диаграммы выполняется только при вводе данных. Когда пользователь вводит данные в объект и нажимает клавишу «Ввод», в диаграмме отображается ответ модели на ввод.

Чтобы найти подобные пошаговые инструкции для другого коннектора, см. раздел [Упражнение. Создание поля ввода текста с использованием переменной](https://help.qlik.com/ru-RU/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))
```

### Пример 3

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

```
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]'))
```