Запрос к базе данных на естественном языке с помощью Vanna

Vanna - это фреймворк, с помощью которого вы можете общаться с базой данных не на SQL, а на простом английском языке.

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

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

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

Чтобы LLM Ванны мог творить волшебство, его нужно сначала обучить. Для этого вы можете скормить ему готовые SQL-запросы, схемы баз данных или даже документацию вашей базы данных, чтобы он мог ознакомиться с данными. Например, для обучения можно использовать DDL-записи, которые содержат информацию об именах таблиц, столбцов, типах данных и отношениях:

vn.train(ddl="""
CREATE TABLE IF NOT EXISTS my-table (
id INT PRIMARY KEY,
name VARCHAR(100),
возраст INT
)""")

Обучение с помощью документации по бизнес-терминологии или других определений:

vn.train(documentation="Наш бизнес определяет XYZ как ... ")

Для обучения с помощью SQL-запросов, что полезно, если вы уже использовали запросы, вы можете просто скопировать и вставить их:

vn.train(sql="SELECT name, age FROM my-table WHERE name = 'John Doe'")

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

Магия заключается в том, что поскольку модель LLM - это "RAG", она подпитывает себя новой информацией, и поэтому
ваши вопросы будут добавлены в обучающие данные, чтобы модель могла самосовершенствоваться автоматически.

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

После того как вы зададите вопрос, Vanna преобразует его в SQL-запрос, который затем выполняется в базе данных. Например :

vn.ask("Каковы 10 крупнейших клиентов по объему продаж?")

Генерирует следующий SQL:

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

Обратите внимание, что хотя этот пример был запущен на Snowflake, у Vanna есть коннекторы для других баз данных, таких как Postgres, Biquery и SQLite.

Начать работу с ней очень просто - вам нужен только Python и ключ API:

%pip install vanna

импортировать vanna
from vanna.remote import VannaDefault
api_key = vanna.get_api_key('my-email@example.com';)

Задайте имя используемой модели RAG. Обычно оно связано с определенным набором данных. В данном случае мы загружаем модель RAG 'chinook', которая ссылается на базу данных выборки Chinook.

vanna_model_name = 'chinook'
vn = VannaDefault(model=vanna_model_name, api_key=api_key)

Подключитесь к базе данных. Здесь мы подключаемся к базе данных SQLite.

vn.connect_to_sqlite('https://vanna.ai/Chinook.sqlite')

Наконец, мы можем задавать вопросы с помощью vn.ask, чтобы сгенерировать SQL, запустить SQL, показать таблицу и сгенерировать график.

vn.ask("Какие 5 лучших артистов по продажам?")

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

Поскольку Vanna генерирует и SQL, и набор данных, и диаграмму, она удовлетворяет потребности всех: разработчиков, менеджеров, специалистов по исследованию данных. Заставит ли это вас впредь отказаться от написания SQL? Как всегда, LLM - это дополнение к работе, а не дополнение.

Запрос к базе данных на естественном языке с помощью Vanna
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
03 февраля 2024 г.
60
Теги: Vanna

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще