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

Список функций
- Преобразование вопросов на естественном языке в запросы SQL, например "Какое самое высокое здание".
SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1
. - Методология улучшения CoT (Chain of Thought), поддерживающая самообучение для повышения точности формирования запросов.
- Предоставляет промежуточный язык, похожий на SQL, для оптимизации генерации сложных SQL.
- Включает выравнивание входов-выходов для уменьшения ошибок при создании модели (иллюзорные проблемы).
- Он поддерживает пять модулей: предварительная обработка, извлечение, генерация, оптимизация и выравнивание, охватывая весь процесс запроса.
- Благодаря открытому исходному коду и бесплатности, пользователи могут изменять код по своему усмотрению или интегрировать его в собственные проекты.
Использование помощи
OpenSearch-SQL - это инструмент командной строки, который необходимо установить и настроить для работы. Ниже приведены подробные шаги, которые помогут вам начать работу с нуля.
Процесс установки
- Подготовка среды Python
Убедитесь, что на вашем компьютере установлен Python 3.8 или выше. Это можно сделать, набравpython --version
Проверьте. Если нет, загрузите и установите его с официального сайта Python (https://www.python.org/). - Загрузить файлы проекта
Откройте браузер и перейдите на сайт 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
.
- Установка зависимостей
Перейдите в папку проекта, откройте терминал и выполните следующую команду для установки необходимых библиотек:
pip install -r requirements.txt
Это позволит установить пакеты Python, необходимые для работы проекта, например библиотеки для обработки данных и вызова моделей.
Предварительная обработка данных
OpenSearch-SQL требует нескольких примеров для повышения точности запросов. Данные можно сгенерировать с помощью официального скрипта.
- Подготовьте данные
Проект содержит пример файлаbird_dev.json
Находится вBird/bird_dev.json
Он основан на методологии DAIL-SQL. Он создан на основе методологии DAIL-SQL и содержит несколько примеров запросов. Если у вас есть свои собственные данные, вы можете заменить этот файл. - Запуск сценариев предварительной обработки
Запустите его в корневом каталоге проекта:
sh run/run_preprocess.sh
Этот скрипт обрабатывает данные нескольких снимков, структуры таблиц и другую информацию. По окончании работы в терминале отображается вывод для каждого каталога. Если вы пользователь Windows, вы можете запустить его с помощью Git Bash или WSL или выполнить команды в скрипте вручную.
Запустите основную программу
- процедура срабатывания
Запустите его в корневом каталоге проекта:
sh run/run_main.sh
Это вызовет src/runner/database_manager.py
файл, чтобы начать обработку запроса. Путь к программе задается в сценарии.
- Проверьте выход
После запуска основного приложения оно генерирует результаты 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-запросы для решения различных задач анализа данных.
сценарий применения
- анализ данных
Аналитики данных могут использовать его для преобразования вопросов в SQL и быстрого подсчета данных о продажах или поведении пользователей. - Образование и обучение
Студенты могут использовать его для изучения SQL, вводя вопросы и сравнивая сгенерированные запросы. - Автоматизированная отчетность
Предприятия могут использовать его для автоматической генерации отчетов SQL и сокращения времени на составление отчетов вручную.
QA
- Требуется ли OpenSearch-SQL подключение к Интернету?
При использовании локальной модели подключение к сети не требуется. Однако при использовании онлайн-моделей, таких как GPT, требуется подключение к сети и ключи API. - Какие базы данных поддерживаются?
Он нацелен на любую базу данных, поддерживающую SQL, при условии, что структура таблицы и данные предоставлены. - BIRD Что значит быть номером один в списке?
Он показывает, что обладает самой высокой точностью в задачах преобразования текста в SQL и может обрабатывать сложные запросы: в августе 2024 года его оценка составила 72,28% для тестового набора.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...