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

Как ИИ использовать для написания sql запросов?

Пробовал Qwen и Deepseak.
Обычно задачи это доработка готовых сложных запросов с join, window, subquery, cte, hierarchical.
В итоге на один запрос нужно повторить итераций 10.
Чаты для SQL не сильно подходят или я что-то делаю не так?
  • Вопрос задан
  • 582 просмотра
Подписаться 1 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Продвинутый SQL
    5 недель
    Далее
  • Академия Эдюсон
    SQL-разработчик: тариф Базовый
    3 месяца
    Далее
  • Яндекс Практикум
    SQL для разработки
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 4
@rPman
В итоге на один запрос нужно повторить итераций 10.
если вы при этом доходите до результата, то это чудо.
spoiler
Современный ИИ, даже топовый (не тот что вы используете в дешевом чате, а тот что нужно покупать по баксу за промпт, с продвинутыми агентами не в opensource) все еще не общий искусственный интеллект, он бесконечно далек от человеческого, хотя кажется что вот, считанные десятки процентов бенчмарков и все, но нет, человек создает очередной примитивный вопрос и модель садится в лужу... потому что бенчмарки созданы что бы пускать пыль в глаза, реальность гораздо грустнее (но все равно прекрасна, такие возможности уже появились, закачаешься).

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

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

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

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

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

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

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

spoiler
После получения ТЗ, не ленитесь прогнать его повторно через новое чистое контекстное окно с тем же вопросом, модели обучены из кожи вон лезть но найти что-нибудь, к чему придраться,.. такой мозговой штурм полезен 'вам обоим'. Не верьте модели 'на слово', они очень красиво и правдоподобно могут нести чушь. Подойдите творчески к составлению системного промпта, с помощью которого будете составлять и валидировать ТЗ.
“Найди неоднозначности”
“Найди противоречия”
“Составь чеклист корректности”
“Предложи минимально необходимые уточнения”

Неплохим советом является - прогнать свое задание через разные нейросети, от разных производителей: google, anthropic, openai, deepseek, grok, kimi/deepseek/qwen/... точно помню были агенты, где модели от разных компаний обсуждали поставленную задачу, не думаю что именно такая форма полезна, но просто задать один и тот же вопрос и посмотреть, вдруг что новое придумают.

Затем, полученное ТЗ отправляйте топовой модели на разработку. Не экономьте, тут будет всего несколько запросов или даже только один. Не доверяйте модели, перепроверяйте. Вы должны понимать этот ответ, каждую его букву. Только так это не превратится в вайбкодинг с закономерным результатом.
Ответ написан
@alexalexes
Нужно уметь самому думать в парадигме SQL, точнее, в теории реляционных баз данных - видеть потенциал нормализации данных у таблиц. Это приходит только с практикой.
Боты ИИ могут предложить как наколеночный вариант без нормализации, так и более глубокий. Сами они не скажут, в какой степени проработано решение - вы сами должны задавать наводящие вопросы, опираясь на свой опыт.
Ответ написан
Комментировать
@Refguser
Решения для бизнеса: корп.сайты, ИМ, боты и пр.
Чаты для SQL не сильно подходят или я что-то делаю не так?

Что-то делаешь не так.
spoiler
Даже тут не умеешь задать вопрос - не написал ни задачу, ни промт.
Ответ написан
Комментировать
@Drno
чаты вообще для кода особо не подходят. а какой нить vscode с плагином вполне и режимом агента...

можешь для начала в него добавить qwen code - он бесплатный, но вроде надо будет регистрацию пройти

дальше уже смотреть подписки гипа гитхабовской copilot или каких то еще
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы