С появлением больших языковых моделей, нас, похоже, ждут большие изменения в том, что до сих пор подразумевалось под «интуитивно понятным» и «дружественным пользователю» интерфейсом.

Список и форма долгое время были основой того самого «интуитивно понятного» интерфейса. Но теперь у нас есть чат. Например такой:

... задали вопрос

... получили ответ

... задумались о том, что вопрос не совсем точный

... уточнили, но пока еще не то, что нужно

... теперь нормально

... и так тоже нормально.

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

Еще пара примеров:

То, что я вам здесь продемонстрировал, работает в 1С:Предприятие 8.3, в типовых конфигурациях Управление торговлей, Комплексная автоматизация и ERP. Но в принципе, это будет работать точно также с любой базой данных. Языковой модели, как вы понимаете, все равно.

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

Единственное, что не дает мне покоя, когда я гляжу на этот чат. Но ведь это же... да, да, она самая, командная строка. Вот оно — развитие по спирали!

Комментарии (34)


  1. echo10
    00.00.0000 00:00
    +1

    А в чем, собственно, техническая сторона реализации поиска ответов на человекопонятные вопросы? Как вы встроили или CHAT GPT в 1С или это некий визуальный прототип как могли бы даваться ответы?


    1. exwill Автор
      00.00.0000 00:00
      +1

      Элементарно. GPT выдает мне тексты запросов на языке SQL, а я их выполняю


      1. ttgg
        00.00.0000 00:00

        в по подробнее можно?

        Да Вы правы за таким взаимодействием с системами будущее, тыкать мышкой и писать буквы останется удел гиков))


        1. exwill Автор
          00.00.0000 00:00

          Смотрите здесь https://brainguard.ru/page18968355.html

          Что конкретно вас интересует?


          1. Xom
            00.00.0000 00:00

            Как-то надо обозначить в простое, к какой базе надо построить запрос, иначе chatGPT будет фантазировать.


            1. exwill Автор
              00.00.0000 00:00

              Да, разумеется, задается контекст, в котором описываются таблицы. Для типовых конфигураций 1С контекст заранее известен. 1С-овская обработка, скриншоты которой я показал, определяет в какой конфигурации ее запустили и сама задает контекст. Но мы здесь не ограничены только 1С. Сервис может работать с любыми базами данных. См. описание API


      1. thunderspb
        00.00.0000 00:00
        +1

        Добавьте это в статью. Прочитал статью -- не очень понятно. В комментариях больше информации оказалось :)


  1. Proydemte
    00.00.0000 00:00
    +1

    Но ведь это же… да, да, она самая, командная строка. Вот оно — развитие по спирали!
    Обратно в консоль, всё возвращается на круги своя.

    Но надо учесть опыт поисковиков. Сохранение фаворитов, истории предыдущих запросов и автодополнение. Без этого совсем скучно будет.


    1. exwill Автор
      00.00.0000 00:00

      Встроить автодополнение в автодополнение... это забавно


      1. Proydemte
        00.00.0000 00:00

        Автодополнение, например из истории запросов или из базы типичных запросов.
        Плюс если есть шаблон типичного запроста, там есть места которые должны быть заполнены пользователем, там тоже автодополнение вполне подойдёт.


        Ещё кстати можно прикрутить распознование речи, там совсем рядом с api для chatgpt есть api для распознования речи, whisper. Будет круто.


        И ещё полезная фича из поисковиков — искать в найденом. По идее можно скомбинировать предыдущий промпт и текущий таким образом, чтобы полученный результат был как раз, поиск в найденом.


        Ещё можно например позаимствовать у новой версии фичу установления системного контекста.


        Типа говоришь все последующие запросы мне интересны только для компании Р&К, за два предыдущих месяца. И больше эти условия не писать явно в последущих запросах.


        SQL оригинально это была попытка дать возможность непрограммисту выполнять запросы у базы данных.


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


        Это кстати интересная функция для "типичных" запросов, типа мы знаем что если кто-то выполнил некий запрос, то сразу выдай ему также ещё парочку связанных. Для "типичных" запросов даже к чату не надо обращаться, можно самому запросы написать.


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


        1. exwill Автор
          00.00.0000 00:00

          GPT-4 уже распознает речь, если не ошибаюсь


          1. pfffffffffffff
            00.00.0000 00:00

            И мемы


          1. Proydemte
            00.00.0000 00:00
            +3

            Кстати сегодня MS, на базе чатгпт, выпустила copilot для офиса посмотрите, куда оно движется.

            Отпад башки.


    1. vkni
      00.00.0000 00:00

      истории предыдущих запросов и автодополнение

      Это есть в консоли. Сохранения частоиспользуемых команд нет, возможно было бы удобно, а может и нет. Есть возможность ручного вбития псевдонимов (alias).


  1. Uris
    00.00.0000 00:00
    +3

    За командную строку отдельное спасибо


  1. aborouhin
    00.00.0000 00:00
    +5

    IMHO, для постоянных профессиональных пользователей системы это неудобно. Во-первых, они и так знают, как в несколько кликов получить любую нужную информацию. Во-вторых, это не надёжно - нейросеть же не знает структуру Вашей базы и всякие исторически сложившиеся нюансы. В-третьих, на более сложных запросах она точно будет не справляться или делать не то - и угадывать, какой запрос хорошо отработает в чат-режиме, а какой нет - лишний труд, учитывая "во-первых".

    Понятно, что нейросеть можно дообучить так, что будет в 99,9% случаев работать корректно - но это отдельная работа (и отдельные расходы).

    А вот для эпизодических пользователей (директор зашёл в 1С сам что-то глянуть, не дёргая бухгалтера; внешнему консультанту дали доступ для какой-то разовой аналитики и т.п.) - интересная задумка.


    1. exwill Автор
      00.00.0000 00:00

      Для директоров и задумывалось на данном этапе


    1. Medeyko
      00.00.0000 00:00

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

      С большой вероятностью, так действительно будет. И наконец-то активное использование голосового ввода станет реальностью...


      1. aborouhin
        00.00.0000 00:00
        +1

        Угу, только возникают другие интересные задачи. Скажем, мы дообучили нейросеть на определённых вводных данных. Потом эти вводные поменялись - и нам надо её "переобучить". И тут две проблемы - во-первых, как сделать это так, чтобы из-за любой мелочи не начинать всё дообучение сначала. Во-вторых, как формализовать описание "нюансов" и управление изменениями в них, чтобы "переобучение" происходило автоматически. Рискну предположить, тут не просто новые решения для таких задач будут появляться, а новые категории решений.


        1. exwill Автор
          00.00.0000 00:00

          В том то и дело, что большие языковые модели не надо дообучать из-за каждой мелочи. Они большие и знают все. В этом прорыв


          1. aborouhin
            00.00.0000 00:00
            +1

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


  1. rutexd
    00.00.0000 00:00
    +3

    Это подойдёт лишь для простых сценариев - там где специалист не нужен и хватит простого джуна. Для сложных с хотя бы тройкой других джойнов и какими нибудь group by - оно начнёт не справляться.

    И это еще хороший сценарий - в плохом вам могут подсунуть (кота в мешке) какой нибудь drop / alter delete потому что модель посчитает что выгоднее и быстрее будет без столбца)) вспоминаем бородатую шутку про майкрософт, голосовое управление и формат...

    Но если для средне - простого уровня использования под контролем оператора - определённо чудеса, будущее наступает.


    1. exwill Автор
      00.00.0000 00:00

      В 1С и так нет никаких delete, insert. Не говоря уж про drop и alter. Строго SELECT. Обеспечивается на уровне платформы. В других системах не так уж сложно этот контроль создать.


      1. rutexd
        00.00.0000 00:00
        +3

        'не так уж и сложно создать контроль' - именно поэтому у нас год за годом число утечек растёт по экспоненте а количество дыр в софте - кубическими масштабами...


        1. nidalee
          00.00.0000 00:00

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


          1. rutexd
            00.00.0000 00:00

            К сожалению дело не только в штрафах...


    1. shaggyone
      00.00.0000 00:00

      Если параноить на тему insert/update/delete/drop (должен сказать, совершенно справедливо) можно просто пользователю под которым нейросеть общается с СУБД дать доступ сугубо на select.


      1. exwill Автор
        00.00.0000 00:00

        В 1С уже сейчас так. И все время так было


        1. shaggyone
          00.00.0000 00:00

          1С, вроде, умела данные в PostgreSQL хранить.


          1. exwill Автор
            00.00.0000 00:00

            1C может хранить данные в файле, MS SQL Server, PostgreSQL, Oracle, IBM DB2

            Но у 1С есть свой ЯП. Обращение к данным идет через него. В частности, в этом ЯП есть объект Запрос. И вот этот самый запрос поддерживает только SELECT


  1. tba
    00.00.0000 00:00

    Но ведь это же... да, да, она самая, командная строка.

    аnd SQL is the new assembly language


    1. exwill Автор
      00.00.0000 00:00

      Точно


  1. lolipoka
    00.00.0000 00:00

    Раз данные есть, сделайте поле чата в HTML, и пусть эти данные в виде таблиц представляются, это же намного удобнее будет.

    Дальше ещё диаграммы можно прикрутить через Chart.js или что-то такое.


    1. exwill Автор
      00.00.0000 00:00

      Интересная мысль