Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

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

Introdução geral

OpenSearch-SQL 是一个开源项目,它是一个强大的 Text-to-SQL 工具,可以把用户的自然语言描述转化为 SQL 查询语句,帮助不熟悉数据库的人轻松获取数据。这个项目由 OpenSearch-AI 团队开发,基于 Apache 2.0 许可证免费开放。2024 年 8 月,它在 BIRD 基准测试中获得第一名,验证集准确率达 69.3%,测试集达 72.28%。OpenSearch-SQL 不需要额外训练就能运行,支持 GPT、DeepSeek 等模型,适合数据分析和数据库查询。

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


 

Lista de funções

  • 将自然语言问题转为 SQL 查询,比如“最高的建筑是什么”转为 SELECT building_name FROM buildings ORDER BY height DESC LIMIT 1.
  • 支持自我学习的 CoT(Chain of Thought)增强方法,提升查询生成准确性。
  • 提供 SQL-Like 中间语言,优化复杂 SQL 生成过程。
  • 包含输入输出对齐功能,减少模型生成中的错误(幻觉问题)。
  • 支持预处理、提取、生成、优化和对齐五大模块,覆盖查询全流程。
  • 开源免费,用户可以根据需要修改代码或集成到自己的项目。

 

Usando a Ajuda

OpenSearch-SQL 是一个命令行工具,需要安装和配置才能使用。以下是详细步骤,帮助你从零开始上手。

Processo de instalação

  1. Preparando o ambiente Python
    确保你的电脑已安装 Python 3.8 或以上版本。可以在终端输入 python --versão 检查。如果没有,请从 Python 官网(https://www.python.org/)下载安装。
  2. 下载项目文件
    打开浏览器,访问 https://github.com/OpenSearch-AI/OpenSearch-SQL。点击右上角 “Code” 按钮,选择 “Download ZIP” 下载源码,或者用 Git 命令克隆:
git clone https://github.com/OpenSearch-AI/OpenSearch-SQL.git

下载后解压到本地,比如 C:\OpenSearch-SQL talvez /home/user/OpenSearch-SQL.

  1. Instalação de dependências
    进入项目文件夹,打开终端,运行以下命令安装所需库:
pip install -r requirements.txt

这会安装项目运行所需的 Python 包,比如用于处理数据和调用模型的库。

Pré-processamento de dados

OpenSearch-SQL 需要 few-shot 示例来提高查询准确性。可以用官方提供的脚本生成数据。

  1. Preparar dados
    项目提供了一个示例文件 bird_dev.json,位于 Bird/bird_dev.json。它基于 DAIL-SQL 方法生成,包含 few-shot 查询示例。如果你有自己的数据,可以替换这个文件。
  2. 运行预处理脚本
    Execute-o no diretório raiz do projeto:
sh run/run_preprocess.sh

这个脚本会处理 few-shot 数据、表结构和其他信息。完成后,终端会显示每个目录的输出结果。如果你是 Windows 用户,可以用 Git Bash 或 WSL 运行,或者手动执行脚本中的命令。

运行主程序

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

这会调用 src/runner/database_manager.py 文件,开始处理查询。程序路径已在脚本中设置好。

  1. Verificar saída
    主程序运行后,会根据配置生成 SQL 查询结果。输出文件路径在 src/runner/database_manager.py (usado em uma expressão nominal) _set_paths 函数中定义,可以根据需要调整。

Operação da função em destaque

  • 自然语言转 SQL
    输入问题比如“哪个城市的销量最高?”程序会生成:
SELECT city FROM sales ORDER BY amount DESC LIMIT 1

你可以在 questions.json 文件中添加自己的问题,运行后查看结果。

  • CoT 增强
    项目用 Query-CoT-SQL 的格式提供示例。比如:
  • 用户输入:“平均年龄是多少?”
  • CoT 过程:先找到年龄列,再计算平均值。
  • Saída:SELECT AVG(age) FROM users.
  • 对齐功能
    如果生成结果有误,程序会自动校正。比如输入“列出所有学生成绩”,但数据库有多个表,它会确保 JOIN 操作正确:
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

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil