BI Consult
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
    • Построение хранилища данных
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • Process Mining
    • Сквозная аналитика
  • Платформы
    • FineBI + Fine Report
    • ATK BiView-1C коннектор
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Analytic Workspace + Alpha BI
    • FlyBI + Форсайт. Аналитическая Платформа
    • Loginom
    • Yandex.DataLens
    • Триафлай
    • ChatGPT
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI + Fine Report
  • ATK BiView-1C Коннектор
  • Airflow
  • Visiology
  • Luxms BI
  • Modus BI
  • PIX BI
  • Analytic Workspace + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Yandex.DataLens
  • Триафлай
  • ChatGPT
    • Qlik & ChatGPT API – как начать работу?

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional

Другое

  • Data Engeneering
    • Создание Data Lake
    • Создание Data Warehouse
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Платформы » ChatGPT

Qlik & ChatGPT API – как начать работу?

Работа с  ChatGPT API началось некоторое время назад, когда мы начали использовать встроенный коннектор REST API в системе Qlik. Теперь мы хотели бы познакомить и Вас с возможностями подключения к OpenAI и поделиться своими выводами из проделанной работы.

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

Вы можете использовать Qlik Sense локально/в облаке (SaaS) и QlikView.

скачать образец со скриптом

 

Весь процесс выглядит следующим образом:

Сценарий № 1 – мы отправляем данные о компании

  1. Выберите, какие таблицы из Вашей модели данных и какой диапазон данных Вы хотите отправить в ChatGPT (примечание: есть ограничения по длине; для отправки большого количества данных повторно используйте цикл этого процесса);
  2. Подготовьте ОДНУ ТАБЛИЦУ (как мне сказали в ChatGPT), которая будет источником данных для ChatGPT. Вы можете отправить две или более таблиц в формате JSON. Я попробовал сделать это и увидел, что ChatGPT подключает их аналогично Qlik, используя общее имя столбцов. Однако все-таки рекомендуется использовать именно одну таблицу в качестве источника для последующего анализа;
  3. Конфиденциальные данные мы либо прячем, либо маскируем;
  4. Исходную таблицу нужно преобразовать в формат JSON (Вы можете последовать моему примеру);
  5. Подготовьте prompts (текстовые подсказки и запросы) для OpenAI;
  6. Отправьте исходные данные и prompts с помощью коннектора REST. Можете, конечно, отправить только prompts без каких-либо данных. Но тогда Вы получите общий результат, не относящийся к Вашим данным, который будет пригоден для презентации и дальнейшего анализа;
  7. Получите таблицу с результатом и статистикой использования токена. Ответ Вы найдете в одной ячейке таблицы;
  8. Сопоставьте конфиденциальные данные и переопределите результат ChatGPT;
  9. Отобразите результат в дашборде.

 

Сценарий 2 – мы не отправляем данные о компании, только общие вопросы

  1. Подготовьте prompts (текстовые подсказки и запросы) для OpenAI;

Лайфхак: больше деталей = лучше ответ, эксперимент с параметром "температура" от 0 до 1. 0 –предсказуемые значения; 1 – случайные значения.

  1. Отправьте prompts с помощью REST коннектора;
  2. Получите таблицу с результатами и статистикой использования токенов. Ответ Вы найдете в одной ячейке таблицы.
  3. Отобразите результат в дашборде.

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

Памятка: Компетенции ChatGPT до сих пор ограничены данными 2021 года.

 

Предпосылки:

1) Документация: прочитайте раздел "Дополнения";

2) Playground – создайте свой аккаунт и действуйте. Начните чат с ChatGPT. Задавайте вопросы про свои данные, наиболее подходящие форматы и т.д. пробуйте различные настройки;

3) Создайте секретный API ключ – для авторизации в REST коннекторе;

4) Использование токенов. Токены рассчитываются на основе того, что Вы отправляете (prompt) и что получаете (completion). В зависимости от используемой модели запросы могут использовать до 4097 токенов, приходящихся и на prompt, и на completion. Если prompt составил 4000 токенов, completion может быть максимум 97 токенов.

1 токен ~= 4 символа на английском языке

1 токен ~= ¾ слова

100 токенов ~= 75 слов

1500 слов ~= 2048 токенов

$0.0200 / 1000 токенов; $1 = около 37500 слов.

5) Прайс – если Вы новичок, у Вас есть несколько месяцев и $18 , которые нужно потратить.

6) Безопасность данных – следите за тем, что Вы отправляете. Теоретически ChatGPT API не сохраняет то, что мы отправляем. Я проверил. Действительно, ссылка на предыдущий источник при повторном вызове API не дала мне результата. ChatGPT сказали, что анализируют данные только в одном сеансе, и этот сеанс представляет собой один запрос REST POST.

Мы за ограниченное доверие. Безопасность прежде всего!

Хотите отправить пакет данных — сделайте его анонимным.

Как это сделать:

  • не отправляйте имена клиентов, только ID.
  • не отправляйте персональные данные или точные адреса
  • не отправляйте e-mail адреса и номера телефонов
  • агрегируйте данные
  • используйте таблицу сопоставления для конфиденциальных данных (мост между Вашей моделью и пакетом анализа OpenAI), например:

 

Приступим!

Скриншоты сделаны в Qlik Sense SaaS. Вы можете выполнить те же действия в других системах Qlik.

Шаг 1 - создать новое подключение для передачи данных

 

Шаг 2 – введите данные для POSTсоединения

URL: https://api.openai.com/v1/completions

Метод: POST

Тело запроса:

 

{
 "model": "text-davinci-003",
 "prompt": "Say this is a test",
 "max_tokens": 7,
 "temperature": 0
}

 

Примечание: формат json, запрос нужен только для создания соединения. Далее в скрипте мы будем использовать функцию "with connection", она перезаписывает настройки и генерирует источник динамически.

Авторизация: ВАШ_СЕКРЕТНЫЙ_КЛЮЧ

Content-Type application/json

Проверьте опцию «Выбрать данные», чтобы увидеть результат этого запроса. Позже нам понадобится только Ваше соединение / имя «LIB».

 

Шаг 3 – загрузите скрипт - часть 1 – подготовьте источник и конвертируйте его в формат JSON. Можете пропустить этот шаг, если Вы посылаете только общие вопросы.

Выбираем только нужные нам столбцы. Объединяем в одну таблицу. Обратите внимание, что при преобразовании в JSON я использовал звездочку «*», чтобы открывать и закрывать параметры и значения. Qlik не любит использовать кавычки в POST REST. ChatGPT предложил мне вместо этого звездочку.

 

 

Orders:
Load 
OrderDate, 
Year(OrderDate) & '-' & Num(Month(OrderDate), '00') as OrderMonth, 
Product, 
OrderValue
Inline [
OrderDate, Product, OrderValue
2022-01-23, A, 120
2022-02-14, A, 200
2022-03-03, A, 300
2022-04-13, A, 150
2022-01-03, B, 300
2022-01-05, B, 350
2022-02-12, B, 200
2022-03-18, B, 250
2022-04-02, B, 200
];

Products:
Load * Inline [
Product, ProductName
A, Apple
B, Banana
];

// ---------------------------------------
// Prepare single table for ChatGPT prompt

NoConcatenate

ChatGPT_Source:
Load 
  OrderDate, 
  Product, 
  OrderValue
Resident Orders;

left join (ChatGPT_Source)
Load 
  Product, 
  ProductName
Resident Products;

// ---------------------------------------------------------
// Prepare list of all fields for JSON formating procedure

ChatGPT_JSON:
Load
'*Orders*: [' & concat('{*OrderDate*: *'& OrderDate & '*, *Product*: *' & Product & '*, *ProductName*: *' & ProductName & '*, *OrderValue*: *' & OrderValue  & '*}' , ',')  & ']' as JSON
Resident ChatGPT_Source;

LET vChatGPT_InputData = Peek('JSON'); 
Trace vChatGPT_InputData = '$(vChatGPT_InputData)';

Drop table ChatGPT_Source;
 

Шаг 4 – загрузите скрипт - часть 2 - подготовьте promptдля ChatGPTи отправьте запрос POST.

Здесь, в разделе INLINE, Вы можете определить prompts о том, как интерпретировать данные, задавать вопросы или попросить сгенерировать что-либо. Обратите внимание, что мы также отправляем наш пакет данных в формате JSON, а также вопросы или предложения относительно этих данных. Не забудьте использовать имя подключения LIB в этом скрипте. Перейдите к документации для получения дополнительной информации о параметрах «температура» или «max_tokens». Вы также можете добавить другие параметры, перечисленные в документации для "дополнений".

 

Load 
Concat(PROMPT_TEXT,' ', RecNo()) as Prompt_one_line
Inline [
PROMPT_TEXT
This is fruit sales analysis.
Currency is EUR.
Find the best selling month.
Where is the best market for these products?
Which countries to sell to and when?
Add two marketing tips to increase sales.
](delimiter is '~'); 

Let vChatGPT_Prompt = Peek ('Prompt_one_line',0,'ChatGPT_Prompt');
Trace vChatGPT_Prompt = '$(vChatGPT_Prompt)';

Drop table ChatGPT_Prompt;

LET vRequestBody ='{';
Let vRequestBody = vRequestBody&'"model":"text-davinci-003",';
Let vRequestBody = vRequestBody&'"prompt":"$(vChatGPT_Prompt) Source: $(vChatGPT_InputData)",'; // Source only here - in first request.
Let vRequestBody = vRequestBody&'"max_tokens":3000,';
Let vRequestBody = vRequestBody&'"temperature":0'; // 0 being the most predictable and 1 being the most random
Let vRequestBody = vRequestBody&'}';
let vRequestBody = replace(vRequestBody,'"', chr(34)&chr(34));

Trace vRequestBody = '$(vRequestBody)';

//Exit script; // test it before 

LIB CONNECT TO 'ChatGPT REST API - Completions'; // use your LIB name, open session

RestConnectorMasterTable:
SQL SELECT 
	"id",
	"object",
	"created",
	"model",
	"__KEY_root",
	(SELECT 
		"text",
		"index",
		"logprobs",
		"finish_reason",
		"__FK_choices"
	FROM "choices" FK "__FK_choices"),
	(SELECT 
		"prompt_tokens",
		"total_tokens",
		"__FK_usage"
	FROM "usage" FK "__FK_usage")
FROM JSON (wrap on) "root" PK "__KEY_root"

WITH CONNECTION
( BODY "$(vRequestBody)");

ChatGPT_Completions:
LOAD	
	[text] 			 	 as [ChatGPT Completions],
	[finish_reason]  	 as [Completions Finish Reason],
    '$(vChatGPT_Prompt)' as [Prompt Request]
RESIDENT RestConnectorMasterTable
WHERE NOT IsNull([__FK_choices]);

left join (ChatGPT_Completions)
LOAD	
	[prompt_tokens]    			 as [Prompt Tokens],
	[total_tokens]		 		 as [Total Tokens],
    [total_tokens] * 0.02 / 1000 as [Request Cost USD], // $0.02  = 1000 tokens for Davinci model = about 750 words
	UTC() 						 as [ChatGPT Request Time UTC]
RESIDENT RestConnectorMasterTable
WHERE NOT IsNull([__FK_usage]);

left join (ChatGPT_Completions)
LOAD
	[id] as  ChatGPT_ID
RESIDENT RestConnectorMasterTable
WHERE NOT IsNull([__KEY_root]);

DROP TABLE RestConnectorMasterTable;

// STORE results to save your money :) 

DisConnect; // end of CHATGPT session!!
Exit script;

 

Шаг 5 – отобразить результаты в дашборде.

Проверьте, сколько токенов Вы использовали для этого запроса и ответа.

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

Зачем Вам вообще тестировать ChatGPT? Чтобы не отставать от рынка. Начните тестировать его прямо сейчас, даже если это нужно просто для Вашего общего развития. Есть большая вероятность, что мы будем работать с этим гораздо больше уже в самом ближайшем будущем.

Решение разработано Jacek Harazin

Узнать стоимость решенияЗапросить видео презентацию

Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Российский филиал одного их ведущих мировых производителей и дистрибьютеров косметики Estee Lauder Companies Inc. выбрал аналитическую платформу Loginom для предиктивной аналитики продаж как в офлайн-, так и в онлайн-канале.

  • ИНВИТРО
    ИНВИТРО – крупнейшая частная медицинская компания в России, специализирующаяся на лабораторной диагностике и оказании других медицинских услуг.
     
    ИНВИТРО располагает 9 самыми современными лабораторными комплексами и крупнейшей в Восточной Европе сетью более чем из 900 медицинских офисов. Страны присутствия — Россия, Украина, Казахстан, Беларусь.
     
  • ПАО «Ростелеком» — российский провайдер цифровых услуг и сервисов. Предоставляет услуги широкополосного доступа в Интернет, интерактивного телевидения, сотовой связи, местной и дальней телефонной связи и др. Занимает лидирующие позиции на российском рынке высокоскоростного доступа в интернет, платного ТВ, хранения и обработки данных, а также кибербезопасности

  • АО «НСПК» - оператор национальной системы платежных карт, который предоставляет операционные услуги и услуги платежного клиринга операторам платежных систем, в том числе Банку России и кредитным организациям. В задачи АО «НСПК» входит обеспечение бесперебойного доступа к переводам денежных средств в Российской Федерации с использованием платежных инструментов.  Также компания является оператором национальной платёжной системы «Мир» и операционным и платёжным клиринговым центром Системы быстрых платежей (СБП).

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Банки
    • Страхование
    • Фармацевтика
    • Лизинг
    • Логистика
    • Медицина
    • Нефтегазовый сектор
    • Сеть ресторанов
  • Услуги
    • Консалтинг
    • Пилотный проект
    • Поддержка
    • План обучения и сертификации
    • Бесплатное обучение
    • Учебные курсы
    • Аудит приложений
    • Выделенная команда
  • Платформы
    • FineBI + Fine Report
    • ATK BiView-1C Коннектор
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Analytic Workspace + Alpha BI
    • FlyBI + Форсайт. Аналитическая Платформа
    • Loginom
    • Yandex.DataLens
    • Триафлай
    • ChatGPT
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
  • Функциональные решения
    • Продажи
    • Финансы
    • Склад
    • HR
    • S&OP и прогнозная аналитика
    • Внутренний аудит
    • Геоаналитика
    • Категорийный менеджмент
    • Построение хранилища данных
    • Система управления KPI и BSC
    • Управление цепочками поставок
    • Маркетинг
    • Цифровая трансформация
    • Сквозная аналитика
    • Process Mining
LinkedInYouTubeVkontakteFacebook
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru