Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

OpenSearch-SQL: uma ferramenta de código aberto para transformar linguagem natural em consultas SQL

Introdução geral

O OpenSearch-SQL é um projeto de código aberto que é uma poderosa ferramenta Text-to-SQL que transforma as descrições de linguagem natural de um usuário em instruções de consulta SQL, ajudando pessoas não familiarizadas com bancos de dados a acessar facilmente os dados. O projeto foi desenvolvido pela equipe do OpenSearch-AI e é gratuito e aberto com base na licença Apache 2.0. Em agosto de 2024, ele conquistou o primeiro lugar nos benchmarks BIRD, com uma precisão de 69,3% para o conjunto de validação e 72,28% para o conjunto de teste. O OpenSearch-SQL pode ser executado sem treinamento adicional e é compatível com modelos como GPT, DeepSeek, etc. É adequado para análise de dados e consultas a bancos de dados.

OpenSearch-SQL: uma ferramenta de código aberto para conversão de linguagem natural em consultas SQL-1


 

Lista de funções

  • Converta perguntas de linguagem natural em consultas SQL, como "Qual é o prédio mais alto", para SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1.
  • Metodologia de aprimoramento CoT (Chain of Thought) que suporta o autoaprendizado para melhorar a precisão da geração de consultas.
  • Fornece uma linguagem intermediária semelhante ao SQL para otimizar a geração de SQL complexo.
  • Inclui alinhamento de entrada e saída para reduzir erros na geração de modelos (problemas ilusórios).
  • Ele oferece suporte a cinco módulos: pré-processamento, extração, geração, otimização e alinhamento, abrangendo todo o processo de consulta.
  • De código aberto e gratuito, os usuários podem modificar o código conforme necessário ou integrá-lo a seus próprios projetos.

 

Usando a Ajuda

O OpenSearch-SQL é uma ferramenta de linha de comando que precisa ser instalada e configurada para funcionar. Abaixo estão as etapas detalhadas para ajudá-lo a começar do zero.

Processo de instalação

  1. Preparando o ambiente Python
    Certifique-se de ter o Python 3.8 ou superior instalado em seu computador. Isso pode ser feito digitando python --version Verifique. Caso contrário, faça o download e instale-o no site oficial do Python (https://www.python.org/).
  2. Baixar arquivos de projeto
    Abra o navegador e acesse https://github.com/OpenSearch-AI/OpenSearch-SQL. Clique no botão "Code" (Código) no canto superior direito e selecione "Download ZIP " e selecione "Download ZIP" para fazer download do código-fonte ou use o comando Git para cloná-lo:
git clone https://github.com/OpenSearch-AI/OpenSearch-SQL.git

Faça o download e descompacte-o localmente, por exemplo C:\OpenSearch-SQL talvez /home/user/OpenSearch-SQL.

  1. Instalação de dependências
    Vá para a pasta do projeto, abra um terminal e execute o seguinte comando para instalar as bibliotecas necessárias:
pip install -r requirements.txt

Isso instalará os pacotes Python necessários para executar o projeto, como as bibliotecas para processar dados e chamar modelos.

Pré-processamento de dados

O OpenSearch-SQL requer exemplos de poucos disparos para melhorar a precisão da consulta. Os dados podem ser gerados usando o script oficial fornecido.

  1. Preparar dados
    O projeto fornece um arquivo de amostra bird_dev.jsonLocalizado em Bird/bird_dev.jsonEle se baseia na metodologia DAIL-SQL. Ele é gerado com base na metodologia DAIL-SQL e contém exemplos de consultas com poucos disparos. Se você tiver seus próprios dados, poderá substituir esse arquivo.
  2. Execução de scripts de pré-processamento
    Execute-o no diretório raiz do projeto:
sh run/run_preprocess.sh

Esse script processa os dados de poucos disparos, as estruturas de tabela e outras informações. Quando terminar, o terminal exibirá a saída para cada diretório. Se você for um usuário do Windows, poderá executá-lo com o Git Bash ou WSL, ou executar os comandos no script manualmente.

Executar o programa principal

  1. procedimento de acionamento
    Execute-o no diretório raiz do projeto:
sh run/run_main.sh

Isso chamará o src/runner/database_manager.py para iniciar o processamento da consulta. O caminho do programa é definido no script.

  1. Verificar saída
    Depois que o aplicativo principal é executado, ele gera resultados de consulta SQL de acordo com a configuração. O caminho do arquivo de saída está no diretório src/runner/database_manager.py (usado em uma expressão nominal) _set_paths definido na função, que pode ser ajustado conforme necessário.

Operação da função em destaque

  • Linguagem natural para SQL
    Insira uma pergunta como "Qual cidade tem as vendas mais altas?". O programa gerará a pergunta:
SELECT city FROM sales ORDER BY amount DESC LIMIT 1

Você pode encontrar mais informações sobre o questions.json Adicione suas próprias perguntas ao arquivo e execute-o para ver os resultados.

  • Aprimoramento de CoT
    O projeto fornece exemplos no formato Query-CoT-SQL. Por exemplo:
  • Entrada do usuário: "Qual é a idade média?"
  • Processo CoT: primeiro encontre a coluna de idade e, em seguida, calcule a média.
  • Saída:SELECT AVG(age) FROM users.
  • função de alinhamento
    Se os resultados forem gerados incorretamente, o programa os corrigirá automaticamente. Por exemplo, se você digitar "List all student grades" (Listar todas as notas dos alunos), mas o banco de dados tiver várias tabelas, ele garantirá que a operação JOIN esteja correta:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id

advertência

  • Se você precisar testar o conjunto de dados BIRD, poderá fazê-lo diretamente com o comando Bird/fewshot/questions.json Documentação.
  • O programa é compatível com vários modelos e pode exigir uma chave de API para a configuração padrão. Se estiver usando GPT ou DeepSeek, a chave precisa ser definida no código.

Com essas etapas, você pode transformar facilmente a linguagem natural em consultas SQL para lidar com uma variedade de tarefas de análise de dados.

 

cenário do aplicativo

  1. análise de dados
    Os analistas de dados podem usá-lo para transformar perguntas em SQL e contar rapidamente os dados de vendas ou o comportamento do usuário.
  2. Educação e treinamento
    Os alunos podem usá-lo para aprender SQL inserindo perguntas e, em seguida, comparando as instruções de consulta geradas.
  3. Relatórios automatizados
    As empresas podem usá-lo para gerar automaticamente relatórios SQL e reduzir o tempo de escrita manual.

 

QA

  1. O OpenSearch-SQL requer uma conexão com a Internet?
    Se estiver usando um modelo local, não é necessário usar rede. No entanto, a rede e as chaves de API são necessárias ao usar modelos on-line, como o GPT.
  2. Quais bancos de dados são compatíveis?
    Ele se destina a qualquer banco de dados compatível com SQL, desde que a estrutura da tabela e os dados sejam fornecidos.
  3. BIRD O que significa ser o número um da lista?
    Isso mostra que ele tem a maior precisão em tarefas de conversão de texto em SQL e pode lidar com consultas complexas, com uma pontuação de 72,28% em agosto de 2024 para o conjunto de teste.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " OpenSearch-SQL: uma ferramenta de código aberto para transformar linguagem natural em consultas SQL
pt_BRPortuguês do Brasil