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.
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
- Preparando o ambiente Python
Certifique-se de ter o Python 3.8 ou superior instalado em seu computador. Isso pode ser feito digitandopython --version
Verifique. Caso contrário, faça o download e instale-o no site oficial do Python (https://www.python.org/). - 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
.
- 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.
- Preparar dados
O projeto fornece um arquivo de amostrabird_dev.json
Localizado emBird/bird_dev.json
Ele 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. - 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
- 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.
- 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óriosrc/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
- 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. - Educação e treinamento
Os alunos podem usá-lo para aprender SQL inserindo perguntas e, em seguida, comparando as instruções de consulta geradas. - Relatórios automatizados
As empresas podem usá-lo para gerar automaticamente relatórios SQL e reduzir o tempo de escrita manual.
QA
- 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. - 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. - 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.