OpenSearch-SQL: una herramienta de código abierto para convertir el lenguaje natural en consultas SQL

Introducción general

OpenSearch-SQL es un proyecto de código abierto que consiste en una potente herramienta Text-to-SQL que transforma las descripciones en lenguaje natural de un usuario en sentencias de consulta SQL, ayudando a las personas no familiarizadas con las bases de datos a acceder fácilmente a los datos. El proyecto está desarrollado por el equipo OpenSearch-AI y es gratuito y abierto, basado en la licencia Apache 2.0. En agosto de 2024, obtuvo el primer puesto en las pruebas comparativas BIRD, con una precisión de 69,3% para el conjunto de validación y 72,28% para el conjunto de prueba. OpenSearch-SQL se ejecuta sin formación adicional y admite modelos como GPT, DeepSeek, etc. Es adecuado para el análisis de datos y la consulta de bases de datos.

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

 

Lista de funciones

  • Convertir preguntas en lenguaje natural en consultas SQL, como "¿Cuál es el edificio más alto?" a SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1.
  • Metodología de mejora CoT (Chain of Thought) que favorece el autoaprendizaje para mejorar la precisión en la generación de consultas.
  • Proporciona un lenguaje intermedio similar a SQL para optimizar la generación de SQL complejos.
  • Incluye la alineación entrada-salida para reducir los errores en la generación de modelos (problemas ilusorios).
  • Soporta cinco módulos: preprocesamiento, extracción, generación, optimización y alineación, que cubren todo el proceso de consulta.
  • De código abierto y gratuito, los usuarios pueden modificar el código según sus necesidades o integrarlo en sus propios proyectos.

 

Utilizar la ayuda

OpenSearch-SQL es una herramienta de línea de comandos que necesita ser instalada y configurada para funcionar. A continuación se detallan los pasos para ayudarle a empezar desde cero.

Proceso de instalación

  1. Preparación del entorno Python
    Asegúrese de que tiene Python 3.8 o superior instalado en su ordenador. Para ello, escriba python --version Compruébalo. Si no es así, descárguelo e instálelo desde el sitio web oficial de Python (https://www.python.org/).
  2. Descargar los archivos del proyecto
    Abre tu navegador y ve a https://github.com/OpenSearch-AI/OpenSearch-SQL. Haz clic en el botón "Código" de la esquina superior derecha y selecciona "Descargar ZIP " y selecciona "Download ZIP" para descargar el código fuente, o clónalo con el comando Git:
git clone https://github.com/OpenSearch-AI/OpenSearch-SQL.git

Descárguelo y descomprímalo localmente, por ejemplo C:\OpenSearch-SQL tal vez /home/user/OpenSearch-SQL.

  1. Instalación de dependencias
    Vaya a la carpeta del proyecto, abra un terminal y ejecute el siguiente comando para instalar las bibliotecas necesarias:
pip install -r requirements.txt

Esto instalará los paquetes de Python necesarios para ejecutar el proyecto, como las bibliotecas para procesar datos y llamar a los modelos.

Preprocesamiento de datos

OpenSearch-SQL requiere ejemplos de pocos datos para mejorar la precisión de la consulta. Los datos pueden generarse utilizando el script oficial proporcionado.

  1. Preparar los datos
    El proyecto incluye un archivo de ejemplo bird_dev.jsonSituado en Bird/bird_dev.jsonSe basa en la metodología DAIL-SQL. Se genera basándose en la metodología DAIL-SQL y contiene ejemplos de consulta de pocos datos. Si dispone de sus propios datos, puede sustituir este archivo.
  2. Ejecución de scripts de preprocesamiento
    Ejecútelo en el directorio raíz del proyecto:
sh run/run_preprocess.sh

Este script procesa los datos de few-shot, las estructuras de las tablas y otra información. Cuando termina, el terminal muestra la salida de cada directorio. Si eres usuario de Windows, puedes ejecutarlo con Git Bash o WSL, o ejecutar los comandos del script manualmente.

Ejecutar el programa principal

  1. procedimiento de activación
    Ejecútelo en el directorio raíz del proyecto:
sh run/run_main.sh

Esto llamará al src/runner/database_manager.py para empezar a procesar la consulta. La ruta del programa se establece en el script.

  1. Comprobar la salida
    Una vez ejecutada la aplicación principal, genera los resultados de la consulta SQL de acuerdo con la configuración. La ruta del archivo de salida se encuentra en el directorio src/runner/database_manager.py (utilizado como expresión nominal) _set_paths definido en la función, que puede ajustarse según sea necesario.

Función destacada Operación

  • Del lenguaje natural al SQL
    Introduzca una pregunta como "¿Qué ciudad tiene las mayores ventas?". El programa la generará:
SELECT city FROM sales ORDER BY amount DESC LIMIT 1

Encontrará más información al respecto en el questions.json Añade tus propias preguntas al archivo y ejecútalo para ver los resultados.

  • Mejora de CoT
    El proyecto proporciona ejemplos en formato Query-CoT-SQL. Por ejemplo:
  • Entrada del usuario: "¿Cuál es la edad media?"
  • Proceso CoT: en primer lugar, hallar la columna de edad y, a continuación, calcular la media.
  • Salida:SELECT AVG(age) FROM users.
  • función de alineación
    Si los resultados se generan de forma incorrecta, el programa los corregirá automáticamente. Por ejemplo, si introduce "Listar todas las calificaciones de los alumnos" pero la base de datos tiene varias tablas, se asegurará de que la operación JOIN es correcta:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id

advertencia

  • Si necesita probar el conjunto de datos BIRD, utilice la función Bird/fewshot/questions.json Documentación.
  • El programa admite varios modelos y puede requerir una clave API para la configuración por defecto. Si se utiliza GPT o DeepSeek, es necesario configurar la clave en el código.

Con estos pasos, puede convertir fácilmente el lenguaje natural en consultas SQL para manejar una variedad de tareas de análisis de datos.

 

escenario de aplicación

  1. análisis de datos
    Los analistas de datos pueden utilizarlo para convertir preguntas en SQL y contar rápidamente datos de ventas o comportamiento de los usuarios.
  2. Educación y formación
    Los estudiantes pueden utilizarlo para aprender SQL introduciendo preguntas y comparando después las sentencias de consulta generadas.
  3. Informes automatizados
    Las empresas pueden utilizarlo para generar automáticamente informes SQL y reducir el tiempo de redacción manual.

 

CONTROL DE CALIDAD

  1. ¿Necesita OpenSearch-SQL una conexión a Internet?
    Si se utiliza un modelo local, no es necesario conectarse en red. Sin embargo, la conexión en red y las claves API son necesarias cuando se utilizan modelos en línea como GPT.
  2. ¿Qué bases de datos son compatibles?
    Se dirige a cualquier base de datos que admita SQL, siempre que se proporcione la estructura de la tabla y los datos.
  3. BIRD ¿Qué significa ser el número uno de la lista?
    Muestra que tiene la mayor precisión en tareas de texto a SQL y puede manejar consultas complejas, con una puntuación en agosto de 2024 de 72,28% para el conjunto de pruebas.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...