OpenSearch-SQL: инструмент с открытым исходным кодом для преобразования естественного языка в SQL-запросы

Общее введение

OpenSearch-SQL - это проект с открытым исходным кодом, который представляет собой мощный инструмент преобразования текста в SQL-запросы, помогающий людям, не знакомым с базами данных, легко получать доступ к данным. Проект разработан командой OpenSearch-AI и является свободным и открытым на основе лицензии Apache 2.0. В августе 2024 года он занял первое место в бенчмарке BIRD с точностью 69,3% для валидационного набора и 72,28% для тестового набора. OpenSearch-SQL может работать без дополнительного обучения и поддерживает такие модели, как GPT. OpenSearch-SQL работает без дополнительного обучения и поддерживает такие модели, как GPT, DeepSeek и т. д. Он подходит для анализа данных и запросов к базам данных.

OpenSearch-SQL:将自然语言转为SQL查询的开源工具

 

Список функций

  • Преобразование вопросов на естественном языке в запросы SQL, например "Какое самое высокое здание". SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1.
  • Методология улучшения CoT (Chain of Thought), поддерживающая самообучение для повышения точности формирования запросов.
  • Предоставляет промежуточный язык, похожий на SQL, для оптимизации генерации сложных SQL.
  • Включает выравнивание входов-выходов для уменьшения ошибок при создании модели (иллюзорные проблемы).
  • Он поддерживает пять модулей: предварительная обработка, извлечение, генерация, оптимизация и выравнивание, охватывая весь процесс запроса.
  • Благодаря открытому исходному коду и бесплатности, пользователи могут изменять код по своему усмотрению или интегрировать его в собственные проекты.

 

Использование помощи

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

Процесс установки

  1. Подготовка среды Python
    Убедитесь, что на вашем компьютере установлен Python 3.8 или выше. Это можно сделать, набрав python --version Проверьте. Если нет, загрузите и установите его с официального сайта Python (https://www.python.org/).
  2. Загрузить файлы проекта
    Откройте браузер и перейдите на сайт https://github.com/OpenSearch-AI/OpenSearch-SQL. Нажмите кнопку "Code" в правом верхнем углу и выберите "Download ZIP " и выберите "Загрузить ZIP", чтобы загрузить исходный код, или воспользуйтесь командой Git, чтобы клонировать его:
git clone https://github.com/OpenSearch-AI/OpenSearch-SQL.git

Загрузите и распакуйте его локально, например C:\OpenSearch-SQL возможно /home/user/OpenSearch-SQL.

  1. Установка зависимостей
    Перейдите в папку проекта, откройте терминал и выполните следующую команду для установки необходимых библиотек:
pip install -r requirements.txt

Это позволит установить пакеты Python, необходимые для работы проекта, например библиотеки для обработки данных и вызова моделей.

Предварительная обработка данных

OpenSearch-SQL требует нескольких примеров для повышения точности запросов. Данные можно сгенерировать с помощью официального скрипта.

  1. Подготовьте данные
    Проект содержит пример файла bird_dev.jsonНаходится в Bird/bird_dev.jsonОн основан на методологии DAIL-SQL. Он создан на основе методологии DAIL-SQL и содержит несколько примеров запросов. Если у вас есть свои собственные данные, вы можете заменить этот файл.
  2. Запуск сценариев предварительной обработки
    Запустите его в корневом каталоге проекта:
sh run/run_preprocess.sh

Этот скрипт обрабатывает данные нескольких снимков, структуры таблиц и другую информацию. По окончании работы в терминале отображается вывод для каждого каталога. Если вы пользователь Windows, вы можете запустить его с помощью Git Bash или WSL или выполнить команды в скрипте вручную.

Запустите основную программу

  1. процедура срабатывания
    Запустите его в корневом каталоге проекта:
sh run/run_main.sh

Это вызовет src/runner/database_manager.py файл, чтобы начать обработку запроса. Путь к программе задается в сценарии.

  1. Проверьте выход
    После запуска основного приложения оно генерирует результаты SQL-запросов в соответствии с заданной конфигурацией. Путь к выходному файлу находится в папке src/runner/database_manager.py (используется в форме номинального выражения) _set_paths определены в функции, которые могут быть настроены по мере необходимости.

Функциональное управление

  • Перевод с естественного языка на SQL
    Введите вопрос типа "В каком городе самые высокие продажи?". Программа сгенерирует его:
SELECT city FROM sales ORDER BY amount DESC LIMIT 1

Более подробную информацию вы можете найти на сайте questions.json Добавьте в файл свои вопросы и запустите его, чтобы увидеть результаты.

  • CoT Enhancement
    Проект содержит примеры в формате Query-CoT-SQL. Например:
  • Пользовательский ввод: "Каков средний возраст?"
  • Процесс CoT: сначала найдите столбец возрастов, затем вычислите среднее значение.
  • Выход:SELECT AVG(age) FROM users.
  • функция выравнивания
    Если результаты сформированы неверно, программа автоматически исправит их. Например, если вы введете "Список всех оценок студентов", а в базе данных несколько таблиц, программа убедится, что операция JOIN выполнена правильно:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id

предостережение

  • Если вам нужно протестировать набор данных BIRD, вы можете сделать это напрямую с помощью Bird/fewshot/questions.json Документация.
  • Программа поддерживает несколько моделей и может потребовать ключ API для конфигурации по умолчанию. Если используется GPT или DeepSeek, ключ необходимо задать в коде.

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

 

сценарий применения

  1. анализ данных
    Аналитики данных могут использовать его для преобразования вопросов в SQL и быстрого подсчета данных о продажах или поведении пользователей.
  2. Образование и обучение
    Студенты могут использовать его для изучения SQL, вводя вопросы и сравнивая сгенерированные запросы.
  3. Автоматизированная отчетность
    Предприятия могут использовать его для автоматической генерации отчетов SQL и сокращения времени на составление отчетов вручную.

 

QA

  1. Требуется ли OpenSearch-SQL подключение к Интернету?
    При использовании локальной модели подключение к сети не требуется. Однако при использовании онлайн-моделей, таких как GPT, требуется подключение к сети и ключи API.
  2. Какие базы данных поддерживаются?
    Он нацелен на любую базу данных, поддерживающую SQL, при условии, что структура таблицы и данные предоставлены.
  3. BIRD Что значит быть номером один в списке?
    Он показывает, что обладает самой высокой точностью в задачах преобразования текста в SQL и может обрабатывать сложные запросы: в августе 2024 года его оценка составила 72,28% для тестового набора.
© заявление об авторских правах

Похожие статьи

Нет комментариев

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