Пример дивергентного мышления ИИ при использовании 1С запрос copilot

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Американский психолог Джой Пол Гилфорд, известный исследователь проблем интеллекта, в свое время предложил понятие дивергентного мышления. Сам Гилфорд определял его, как тип мышления идущий в различных направлениях. Ищем все возможные способы решения одной проблемы. Выходим за рамки стереотипов и, как результат, находим неожиданные и суперэффективные методы. Дивергентное мышление ассоциируется с креативностью. Яркий пример такого мышления можно увидеть в хорошо известной истории про Нильса Бора и барометр.

До появления генеративных языковых моделей было распространено мнение, что искусственный интеллект, когда и если будет создан, будет уступать человеку в креативности. Будет действовать скрупулезно, последовательно, без ошибок, но шаблонно. Оказалось — наоборот. Как это выглядит в реальности, при решении «скучных» учетных задач в 1С, смотрите ниже


Привожу задачу в том виде, как она была сформулирована.

В общем, есть задача, её суть:
Учет приезда клиентов ведется со дня старта работы отеля (к примеру день приезда 3, означает что клиент приехал в третий день работы отеля, а уехал на 8 день работы отеля т.д.).

Нужно написать программу, которая сама бы определила этот день (при этом нельзя использовать сторонние объекты в виде регистров, справочников и т.д.). Есть документ с расписанием отъездов и выездов, нужно отталкиваться только от него.
Если таких дней несколько — вывести первый.


Ну… пользователи так примерно и говорят. А мы не будем сейчас заниматься критикой этого текста, а просто «скормим» его копилоту как есть, даже не прописывая схему базы данных.

image

Ответ:
SELECT day
FROM (
    SELECT arrival_day AS day
    FROM bookings
    UNION ALL
    SELECT departure_day + 1
    FROM bookings
) AS days
GROUP BY day
ORDER BY COUNT(*) DESC, day
LIMIT 1


Сложим все события в кучу и посчитаем. Нет, это, конечно не работает. «Причешем» текст, уберем из него лишнее и путанное. А заодно добавим схему.

Текст вопроса:
Это отель. Вычислить день, когда было больше всего живущих в отеле

Схема:
MySQL #
Размещение(постоялец, день_заезда, день_отъезда) #

Ответ:
SELECT DATE, COUNT(*) AS NumberOfGuests
FROM
(
    SELECT a.Date
    FROM
    (
        SELECT день_заезда AS Date
        FROM Размещение
        UNION ALL
        SELECT день_отъезда
        FROM Размещение
    ) a
    WHERE a.Date BETWEEN (SELECT MIN(день_заезда) FROM Размещение) AND (SELECT MAX(день_отъезда) FROM Размещение)
) b
LEFT JOIN Размещение c ON b.Date BETWEEN c.день_заезда AND c.день_отъезда
GROUP BY DATE
ORDER BY NumberOfGuests DESC
LIMIT 1


image

Не помогло. Оно упорно пытается действовать через UNION. Видно, что идет поиск решения через усложнение, но… нет. Ну что ж, еще одна попытка. Просто чуть конкретизируем вопрос.

Текст вопроса:
Это отель. Постоялец считается живущим в отеле в определенный день, если этот день больше либо равен дню заезда постояльца и меньше либо равен дню отъезда. Надо получить день, когда было больше всего живущих в отеле

Ответ:
SELECT MAX(day_count) AS max_guests, day
FROM (
  SELECT COUNT(*) AS day_count, day
  FROM (
    SELECT a.day
    FROM (
      SELECT ADDDATE('1970-01-01', t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) day
      FROM
        (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
        (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
        (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
        (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,
        (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4
    ) a
    JOIN Размещение b
    ON a.day >= b.день_заезда AND a.day <= b.день_отъезда
  ) c
  GROUP BY day
) d
ORDER BY day_count DESC
LIMIT 1


image

И вот оно! Работающее решение, использующее генератор дней.
Поясню, что я вижу в этом заслуживающего вашего внимания. Я много лет обучал взрослых и детей программированию. И я знаю, что если человек встал на какие-то «рельсы», то снять его с них зачастую очень и очень сложно. А оно (я имею ввиду большую языковую модель) хоть и тупенькое, но креативное! Заставить его найти другое решение совсем не сложно. И это очень важный момент.
Кстати, в том же обсуждении, где была поставлена эта задача, человеком было предложено следующее решение:
Соединяем в запросе выборки из табличных частей.
1 Дата (ДатаПриезда)
Объединить
-1 Дата(ДатаОтъезда)
Группируем по дате.
Полученную таблицу соединяем саму с собой по условию Дата<=Дата, делаем группировку по дате.

Как видите, решение через UNION тоже существует. Надо только складывать приезды и вычитать отъезды. Но метод предложенный большой языковой моделью лучше, потому что он универсальный. Можно не только определить день максимальной загрузки отеля, но и период, когда эта загрузка сохранялась. Можно получить все периоды с максимальной нагрузкой. Вычислить процент
Что из всего этого следует. На мой взгляд, очень хорошие новости. Сейчас много разговоров о том, что искусственный интеллект лишит работы тех или этих. Лишит или нет, это мы еще посмотрим. Лично я считаю, что тут опасения сильно преувеличены. Гораздо меньше разговоров со знаком «плюс». Разговоров о том, что нам даст искусственный интеллект. А даст он нам то, что, как я вижу, мы все станем более креативными. Дивергентный и конвергентный типы мышления не антагонисты. Напротив, они естественным образом дополняют друг друга. Обратите внимание на мои действия в описанном мною примере. Я действую вполне конвергентно. Просто улучшаю шаг за шагом свой вопрос. А мой второй пилот дополняет меня. Ищет и находит всевозможные варианты решения. И это, как я считаю, самое важное свойство генеративных моделей искусственного интеллекта.

Ну а про классическое решение задач 1С вы можете узнать в рамках практических онлайн-курсов. Подробнее о курсах по ссылке.
Источник: https://habr.com/ru/companies/otus/articles/801477/


Интересные статьи

Интересные статьи

Microsoft запустила общедоступную предварительную версию Copilot for Finance для бизнес-подписчиков Microsoft 365. Она позволит автоматизировать повторяющиеся финансовые задачи. 
Нейросеть Grok стартапа xAI Илона Маска уличили в плагиате. Исследователь Джакс Уинтерборн заметил, что чат-бот отказался выполнять запрос, потому что «он противоречит правилам пользования OpenAI».
Привет, Хабр! На связи программный комитет FrontendConf. Расскажем, как мы составляем программу нашей конференции и боремся за её актуальность — проводим исследования и общаемся с аудиторией.Fron...
Удаление Witelist ноутбука HP Pavilion dv6-2135er. Реверс-инжиниринг и модификация дампа bios.
На этот раз мы расскажем о событиях далекого прошлого. А именно про Mundaneum – работающий бумажный интернет Поля Отле. 100 лет назад он уже обрабатывал 1500 поисковых запросов в год со всего мира. Эт...