Думаю, что уже почти все в курсе насчет GPT, но все же начну с небольшой справки.

GPT расшифровывается как Generative pretrained transformers. Это языковая нейросеть, обученная по технологии transformer. Описание технологии появилось в общем доступе в 2020 году. Кому интересно, ссылка здесь https://arxiv.org/abs/2005.14165. История развивалась более или менее обычными темпами для ИТ, но в конце прошлого года произошло нечто, выходящее за привычные рамки. Компания  OpenAI выложила в общий доступ версию языковой модели, взаимодействие с которой организовано в виде чата. Всего лишь за одну неделю этот чат преодолел отметку в миллион пользователей. Такого раньше не было. О chatGPT стали очень много говорить и писать. В том числе, совершенно фантастические вещи. Наиболее впечатлительные начали говорить, что скоро нам всем конец, потому что искусственный интеллект вот-вот захватит мир.

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

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

Она вас понимает.

Что это означает, я вам сейчас продемонстрирую на примере работы с типовой конфигурацией УТ редакции 11.5.

Я написал небольшое дополнение, которое необходимо добавлять к каждому вопросу пользователя. В этом дополнении дается описание таблиц базы УТ. В силу ограничений, установленных OpenAI для работы в режиме бесплатного тестирования, я включил в это описание не всю конфигурацию, как есть, а ограничился некоторым более или менее содержательным подмножеством таблиц. В него вошли остатки на складе, продажи и взаиморасчеты. Кроме того, так как большинство 1с-ников привыкли читать запросы на русском языке, я сделал перевод выдаваемого языковой моделью текста запроса.

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

 

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

Зададим более непринужденный вопрос.

Текст запроса для этого вопроса почти такой же

ВЫБРАТЬ РегистрТоварыНаСкладах.ВНаличииОстаток
 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки как РегистрТоварыНаСкладах
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрТоварыНаСкладах.Номенклатура = СправочникНоменклатура.ссылка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады как СправочникСклады
 ПО РегистрТоварыНаСкладах.Склад = СправочникСклады.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай" И СправочникСклады.наименование = "основной"

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

Раз так, зададим вопрос совсем по-человечески

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

Попросим теперь показать продажи.

Текст запроса здесь такой:

ВЫБРАТЬ СУММА(РегистрВыручка.Количество)
 ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура = СправочникНоменклатура.ссылка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Склады как СправочникСклады
 ПО РегистрВыручка.Склад = СправочникСклады.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай" И СправочникСклады.наименование = "основной"

 

Можно еще и так

ВЫБРАТЬ СУММА(РегистрВыручка.Количество), СУММА(РегистрВыручка.СуммаВыручки)
 ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура = СправочникНоменклатура.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай"

 

Или так

ВЫБРАТЬ СправочникНоменклатура.наименование, СУММА(РегистрВыручка.Количество)
 ИЗ Справочник.Номенклатура как СправочникНоменклатура
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ПО СправочникНоменклатура.ссылка = РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура
 ГДЕ СправочникНоменклатура.наименование = "Чай" ИЛИ СправочникНоменклатура.наименование = "Сахар"
 СГРУППИРОВАТЬ ПО СправочникНоменклатура.наименование

 

Попробуем поставить языковую модель в тупик. Зададим неоднозначный, расплывчатый вопрос: "Сколько чая?" Из самого вопроса сложно понять, что хочет узнать вопрошающий. Остатки на складе или объем продаж?

ВЫБРАТЬ СУММА(РегистрВыручка.Количество)
 ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура = СправочникНоменклатура.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай"

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

Если пользователь все-таки хотел получить информацию об остатках, он может задать вопрос чуть иначе. Например, вот так.

ВЫБРАТЬ РегистрТоварыНаСкладах.ВНаличииОстаток
 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки как РегистрТоварыНаСкладах
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрТоварыНаСкладах.Номенклатура = СправочникНоменклатура.ссылка ГДЕ СправочникНоменклатура.наименование = "чай"

Или так.

Текст запроса совпадает с предыдущим. Здесь важно то, что возникшее затруднение пользователь может решить так же, как он это привык делать при обычном общении. 

Приведу еще несколько примеров.

ВЫБРАТЬ СУММА(РегистрВыручка.Количество)
 ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура = СправочникНоменклатура.ссылка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты как СправочникКонтрагенты
 ПО РегистрВыручка.АналитикаУчетаПоПартнерам.Контрагент = СправочникКонтрагенты.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай" И СправочникКонтрагенты.наименование = "Иванов"
ВЫБРАТЬ СУММА(РегистрВыручка.Количество)
 ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура = СправочникНоменклатура.ссылка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи как СправочникПользователи
 ПО РегистрВыручка.Менеджер = СправочникПользователи.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай" И СправочникПользователи.наименование = "Иванов"
ВЫБРАТЬ СправочникКонтрагенты.наименование, РегистрВзаиморасчетов.СуммаОстаток
 ИЗ РегистрНакопления.РасчетыСКлиентами.Остатки как РегистрВзаиморасчетов
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты как СправочникКонтрагенты
 ПО РегистрВзаиморасчетов.АналитикаУчетаПоПартнерам.Контрагент = СправочникКонтрагенты.ссылка
 ГДЕ СправочникКонтрагенты.наименование = "ООО Ромашка"

Как видите, языковая модель прекрасно справляется с вопросами на естественном языке. Во всем этом есть только один досадный момент. На вопрос "Сколько продано чая Иванову в январе" будет получен вот такой текст запроса

ВЫБРАТЬ СУММА(РегистрВыручка.Количество) ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж как РегистрВыручка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура как СправочникНоменклатура
 ПО РегистрВыручка.АналитикаУчетаНоменклатуры.Номенклатура = СправочникНоменклатура.ссылка
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты как СправочникКонтрагенты
 ПО РегистрВыручка.АналитикаУчетаПоПартнерам.Контрагент = СправочникКонтрагенты.ссылка
 ГДЕ СправочникНоменклатура.наименование = "чай"
 И СправочникКонтрагенты.наименование = "Иванов"
 И РегистрВыручка.период МЕЖДУ датавремя(2020,01,01) И датавремя(2020,01,31)

Когда мы говорим "в январе", мы имеем ввиду январь текущего года. Но в данном случае языковая модель нас не понимает. Более того, бесполезно пытаться уточнять "в январе 2023 года". Результат будет тот же. Здесь самое время вспомнить, что мы получаем ответы от людей, которые когда-то что-то писали в интернете. Обучение языковой модели происходило в 2021 году. И на тот момент в интернете не было (или почти не было, что одно и то же) текстов запросов, в которых упоминался бы 23 год. Время - это самое слабое место языковых моделей. Разработчик, OpenAI честно предупреждает об этом. Для учетных систем это реальная проблема. Но, к счастью, она решается путем относительно несложной доработки. 

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

Если вас возникло желание поэкспериментировать со всем этим самостоятельно, свяжитесь со мной.

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


  1. lair
    15.01.2023 18:14
    +3

    Я написал небольшое дополнение, которое необходимо добавлять к каждому вопросу пользователя. В этом дополнении дается описание таблиц базы УТ. [...] Кроме того, так как большинство 1с-ников привыкли читать запросы на русском языке, я сделал перевод выдаваемого языковой моделью текста запроса.

    Покажите, пожалуйста, код вашего "дополнения".


  1. panvartan
    15.01.2023 18:24

    Отлично, а "отгрузи Васе чая как на прошлой неделе". С ответом - Если, как на прошлой неделе, то в следующем месяце не хватит на оплату кредита.


    1. exwill Автор
      15.01.2023 19:21

      Вы кредит выплачиваете чаем? Хороший у вас кредит, видимо


      1. panvartan
        15.01.2023 19:48

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


        1. Maccimo
          15.01.2023 19:54

          Период «на прошлой неделе» коротковат для этого. Вот если «как в прошлый раз» — другое дело.


  1. Maccimo
    15.01.2023 19:51
    +3

    Прикручиваем к конфигурации распознавание и синтез речи и отдел бухгалтерии становится неотличим от съёмочной площадки научно-фантастического фильма второй половины прошлого века.


    Зададим неоднозначный, расплывчатый вопрос: «Сколько чая?»

    — Петька, приборы!
    — 42!
    — Что «42»?
    — А что «приборы»?


  1. iliabvf
    15.01.2023 20:25
    +5

    Это конечно все прекрасно, думаю что на 1С можно и Doom запустить.
    Но все же, вы обрабатывается запрос пользователя и просите GPT chat создать sql запрос?
    Получаете SQL запрос на и переводите его на русский и запускаете в 1С?
    Не понимаю за что плюсуют статью, никакой технической части, нет сорсов, короче статья в стиле 1С.


    1. exwill Автор
      15.01.2023 20:57

      Вам, может быть, трудно будет в это поверить, но в том-то и дело, что нет никакой особой "техники". Пользователь задаёт вопрос на русском. GPT генерирует SQL запрос. Здравствуй, новый мир!


      1. starik-2005
        15.01.2023 21:23
        +2

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

        С другой стороны, в нужна ли будет 1С, если первичку сразу передавать chatGPT? ТИпа приехало столько-то товара с такими-то параметрами от такого-то поставщика... Т.е. нафига нам (и Вам - тоже) все эти костыли в виде платформы за овер дофига бабла с никакой скоростью работы? Но здесь и не только растоманы пока тормозят - они просто не видят этого второго шага, а за ним и третий есть, но это вообще мало кому доступно...


        1. lair
          15.01.2023 22:06

          С другой стороны, в нужна ли будет 1С, если первичку сразу передавать chatGPT?

          ...ну вот будете вы ее передавать, а дальше что? Вы думаете, у него там есть идеальная БД?


          1. starik-2005
            16.01.2023 07:59

            Ну а какая разница, куда транслировать? Хоть в 1Сный обрубок SQL, хоть прямо в SQL с инсертами и абдейтами, т.е. с полным DML.


            1. lair
              16.01.2023 15:26

              Ну вот оно "транслировало в инсерт", а дальше что?


        1. Dynasaur
          15.01.2023 23:56
          +3

          Да, и склады будут не нужны, и фуры. Всё будет в ЖПТ. "будет одно сплошное телевидение" (с)


  1. splinters
    16.01.2023 00:07

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


  1. androidt1c
    16.01.2023 00:33

    Дьявол в деталях. Одна строчка кода может кардинально повлиять на результат. В отличие от написания псевдонаучных текстов и рисования картинок, учетным системам ИИ не страшен - это строгий механизм. Вырастет спрос на спецов для прикручивания нейросеток к существующим системам. Ждем очень скорое появление таких расширений для 1С.


    1. Ahuromazdie
      16.01.2023 12:40

      Дак вот оно. Уже есть расширение. Автор его написал.


  1. combo_breaker
    16.01.2023 07:47
    +3

    ИМХО, ответы, с которыми никогда не будет уверенности, правильно ли все понято и обработано, это не то, что нужно в бух. учете. Пусть уж лучше будут жесткие правила для голосовых запросов и абсолютно предсказуемое исполнение таких запросов алгоритмом безо всякого ИИ.


    1. exwill Автор
      16.01.2023 12:39

      Эххх... сказал бы я вам, что сейчас в бухучете на 1с творится. Ну да ладно


    1. Dynasaur
      17.01.2023 01:03

      Если вы зададите живому человеку вопрос - сколько у нас запасов? - тоже нет уверенности, что вы друг друга правильно поняли и он вам ответил то, что вы имели в виду. Например, запасы могут быть у вас на складе, но принадлежать не вам (консигнация). Или ваши товары также могут лежать на чьём-то чужом складе. Или товар уже продан и не ваш, но пока лежит у вас на складе. Или товар в пути, право собственности ещё/уже ваше, но на складе его нет. И другие нюансы. И разные сотрудники могут ответить по-разному на такой вопрос, причём, все по своему буут правы.


      1. combo_breaker
        17.01.2023 18:38

        На вопрос, требующий уточнения, бухгалтер должен уточнять или выдавать все варианты. Этот бот выдает то, что ему больше нравится. Кроме того, он может попросту ошибаться. ChatGPT у меня ошибся, отвечая на элементарный запрос "Count the number of words in this message". После того как я спросил, уверен ли он в ответе, он извинился и выдал другой неправильный ответ. Как после этого доверять ему учетную работу?


        1. exwill Автор
          17.01.2023 20:54
          -1

          Судя по приведенному вами вопросу, вы не совсем понимаете как работает языковая модель. В статье я попытался объяснить, но, видимо, недостаточно внятно.

          Языковая модель в своей сути проста, как палка и веревка. В частности, она не умеет считать. Она просто находит наиболее подходящие к вашему вопросу куски обсуждений из интернета. Что вы ожидали от нее услышать в ответ на ваш вопрос? Точное количество букв? Она честно поискала наиболее подходящую беседу людей на эту тему и выдала вам некоторое количество. Неудивительно, что оно не совпало. Вы попросили поискать еще, она вам еще поискала. В общем, это так не работает


          1. combo_breaker
            18.01.2023 00:53
            +1

            Она также не "умеет" составлять SQL-запросы. Вы привели аргумент против собственного решения. Модель "поищет подходящую беседу людей на эту тему" и выдаст вам некоторый запрос. Насколько надежно такое решение для бизнеса? Гугл подсказывает, что она может ошибаться.

            А какая у вас статистика? Сколько раз вы пробовали и всегда ли успешно?


            1. exwill Автор
              18.01.2023 08:10

              Для этого я и написал статью. Сколько раз я попробовал спросить об остатках на складе в разных выражениях? И всякий раз я получал правильный ответ.

              Но дело даже не в этом. Ваш вопрос поставлен некорректно. А насколько надежно использование русского языка для бизнеса? Язык, он, знаете ли, ненадежен, неоднозначен, расплывчат. Люди могут друг друга не понять.

              Ну и что? Не понял, переспросил. Люди делают это бессчетное количество раз на автомате. Для них это не является проблемой.


              1. lair
                18.01.2023 15:13

                Не понял, переспросил.

                А модель переспрашивает? Что важнее, она спорит, когда она права? Умеет приводить аргументацию?


                1. exwill Автор
                  18.01.2023 16:08

                  Человек переспрашивает, если его не устроил ответ модели


                  1. lair
                    18.01.2023 16:09

                    Гм. Вот человек пришел к модели и спросил: дай мне запрос для вот такого отчета. Она дала. Он запустил отчет, получил результат.

                    Откуда ж ему знать, что в запросе ошибка, и результат неверен?


          1. lair
            18.01.2023 04:24

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

            Почему вы так решили? Есть сильно больше одного примера, где ChatGPT делает вычисления.


            1. exwill Автор
              18.01.2023 08:13
              -2

              Я в курсе. Но вы же понимаете, что вычисления делает не языковая модель. Если вы зададите вопрос: сколько будет 12343+674, будет задействован блок вычислений. А если спросить сколько букв в этой фразе, то будет задействована языковая модель


              1. lair
                18.01.2023 15:13

                Если вы зададите вопрос: сколько будет 12343+674, будет задействован блок вычислений. А если спросить сколько букв в этой фразе, то будет задействована языковая модель

                Я не знаю, на основании чего вы делаете такое противопоставление.


                1. exwill Автор
                  18.01.2023 16:09

                  На основании личного опыта


                  1. lair
                    18.01.2023 16:10

                    У вас большой личный опыт в разработке систем машинного обучения и/или искусственного интеллекта?


  1. acsent1
    16.01.2023 12:29

    Хотелось бы увидеть текст вопроса, который подается на chatGPT


    1. exwill Автор
      16.01.2023 12:37

      Структура таблиц плюс вопрос пользователя как есть.


      1. support917
        17.01.2023 08:18

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


        1. exwill Автор
          17.01.2023 08:21

          Языковая модель понимает. Примеры есть на сайте OpenAI


          1. Maccimo
            17.01.2023 09:57

            Языковая модель молодец.
            Здесь, в комментариях, полный текст примера-вопроса со всеми структурами и так далее вы привести можете?


            1. exwill Автор
              17.01.2023 10:13

              На сайте OpenAI есть пример:

              ### Postgres SQL tables, with their properties:

              #

              # Employee(id, name, department_id)

              # Department(id, name, address)

              # Salary_Payments(id, employee_id, amount, date)

              #

              ### A query to list the names of the departments which employed more than 10 employees in the last 3 months

              SELECT

              Там же есть пример API Request


              1. Maccimo
                17.01.2023 10:21

                Это сферический пример в вакууме.
                В рамках этой статьи интересен пример именно для добывания данных из «Управления Торговлей».


                1. exwill Автор
                  17.01.2023 10:47

                  У вас есть сложности с добыванием данных из УТ с помощью этого примера? Какие?


                  1. vvzvlad
                    17.01.2023 21:12

                    Интересен полный запрос, с помощью которого гпт отдает вот такой ответ


                    1. exwill Автор
                      17.01.2023 21:29

                      Описание таблиц + вопрос от пользователя. Какой именно информации вам не хватает в моем ответе? Как описывать таблицы? Каким-нибудь языком. Например, русским. Остатки, продажи, взаиморасчеты и т.д.


                      1. vvzvlad
                        17.01.2023 21:31

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


                      1. exwill Автор
                        17.01.2023 21:38
                        -3

                        Поймите меня правильно. Я готов отвечать на вопросы. Но у меня есть некоторый "входной фильтр". Я бы предпочел давать разъяснения тем, кто нашел пару минут на то чтобы проверить материал статьи на OpenAI. Такая вот причуда, извините


                      1. vvzvlad
                        17.01.2023 23:29
                        +2

                        Выглядит, если честно, странно. Т.е. причина «это мое ноу-хау, простите, не дам» — это нормальная причина. Ценность статьи снижается, но как причина норм.

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


                      1. exwill Автор
                        18.01.2023 08:30
                        -2

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


                      1. lair
                        18.01.2023 04:25

                        Я бы предпочел давать разъяснения тем, кто нашел пару минут на то чтобы проверить материал статьи на OpenAI.

                        Я вот не могу проверить материал статьи на OpenAI, потому что у меня, вот сюрприз, нет информации о том, какие таблицы и как вы описали.


                      1. exwill Автор
                        18.01.2023 08:19
                        -1

                        Вы можете проверить. Я описал таблицы остатки, продажи и взаиморасчеты. Как? На русском языке. Вы же владеете русским языком. Значит сможете описать. Ваше описание будет не таким, как у меня? Ага, ага... А результаты будут такими же. Я хочу, чтобы вы прониклись языковой моделью


                      1. lair
                        18.01.2023 16:19

                        Угу, я попробовал "проверить", и первый же вопрос выглядит так: так какую же конкретно модель вы используете?


                      1. exwill Автор
                        18.01.2023 17:04

                        Модель русского языка.


                      1. lair
                        18.01.2023 17:06

                        Не вижу такой модели в списке GPT-3 моделей.


                      1. exwill Автор
                        18.01.2023 17:09

                        А, вы об этом.

                         "code-davinci-002"


                      1. lair
                        18.01.2023 17:14

                        У меня результат радикально отличается от вашего. Если быть точным, он выглядит так (дословно)

                        Пробовал так, но не получается:
                        <code>SELECT SUM(ostatki.ostatok) AS ostatok
                        FROM ostatki
                        WHERE ostatki.data &lt;= '15.04.2020'
                        </code>
                        Пример данных:
                        <code>CREATE TABLE ostatki (
                          id INTEGER PRIMARY KEY AUTOINCREMENT,
                          data DATE,
                          ostatok INTEGER
                        );
                        
                        INSERT INTO ostatki (data, ostatok) VALUES ('01.04.2020', 100);
                        INSERT INTO ostatki (data, ostatok) VALUES ('02.04.2020', 200);
                        INSERT INTO ostatki (data, ostatok) VALUES ('03.04.2020', 300);
                        INSERT INTO ostatki (data, ostatok) VALUES ('04.04.2020', 400);
                        INSERT INTO ostatki (data, ostatok
                        


                      1. exwill Автор
                        18.01.2023 17:15

                        Использую completions, не chat


                      1. lair
                        18.01.2023 17:17

                        Это ответ из sandbox OpenAI (не чат). Так что я пошел и проверил, результат с вашим не совпал.

                        Заниматься угадыванием, что конкретно и как вы делаете, желания нет.


                      1. exwill Автор
                        18.01.2023 17:26
                        -1

                        Удивительно. А пример в sandbox:

                        # Employee(id, name, department_id)

                        # Department(id, name, address)

                        # Salary_Payments(id, employee_id, amount, date)

                        #

                        ### A query to list the names of the departments which employed more than 10 employees in the last 3 months

                        SELECT

                        Вам не помог?


                      1. lair
                        18.01.2023 17:28

                        Нет, не помог. Вы же сказали "описать русским языком", я описал русским языком.

                        Вот именно поэтому у вас и просили код того, что вы сделали, чтобы не играть в угадайку.


                      1. exwill Автор
                        18.01.2023 17:50

                        В примере заменяете описание таблиц на свое. Также заменяете вопрос. SELECT оставляете. Жмете кнопку


  1. Ivan22
    16.01.2023 13:27

    уже есть BI системы которые генерят SQL из текстового запроса пользователя - например

    thoughtspot - https://youtu.be/wlgYjqvUEGs?t=60

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

    По моему опыту - это очень класная фишка для уменьшения входного порога в аналитику.


    1. ramilg
      18.01.2023 15:52

      SQL и визуализация никак не входят в "порог" для аналитика. Эти вещи осваиваются аналитиком по ходу дела.