自然语言转SQL工具

一款基于Mistral 7B模型的AI聊天机器人,能够将自然语言转换为SQL查询并执行,适用于非技术用户与数据库交互的场景。

  • by Abhipsha26
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abhipsha26/llamamistral7b-nl2sql

使用说明

LlamaMistral7b-NL2SQL

使用Llama Mistral 7B将自然语言转换为SQL的AI聊天机器人。通过基于FastAPI的流媒体、会话内存和ngrok隧道的MCP服务器连接到MariaDB数据库。在Google Colab上构建和运行。

  1. 摘要 该项目提出了一个使用Mistral 7B Llama模型进行数据库交互的人工智能聊天机器人界面。该系统能够将自然语言查询翻译成SQL,并通过本地托管的MCP(MariaDB聊天机器人平台)服务器对MariaDB数据库执行查询。该系统在Google Colab环境中实现,并通过ngrok连接,通过FastAPI接口提供上下文存储和流式输出。之所以选择Mistral 7B而不是OmniSQL-7B,是因为它在Colab上的推理时间明显更快,同时仍然保持了较高的SQL生成精度。

  2. 引言 将自然语言翻译成SQL(NL2SQL)是自然语言处理和结构化数据管理交叉领域的一个新兴用例。该项目旨在通过部署一个理解用户意图并相应生成SQL查询的大型语言模型,使非技术用户能够直观地进行数据库交互。Mistral 7B是一种基于变压器的优化LLM,与MCP服务器和Google Colab前端的集成为数据库查询提供了实时流式聊天机器人体验。

  3. 系统概述 系统组件包括: MariaDB数据库:将结构化数据存储在如shipment_view这样的表中。 Mistral 7B(Llama):用于将用户问题转换为SQL查询的LLM。 •MCP服务器:充当LLM推理和数据库之间的中介。 •Ngrok:用于将本地托管的MCP服务器暴露给Colab客户端。 •谷歌Colab笔记本电脑:带有FastAPI服务器和聊天界面的前端客户端。

  4. 系统架构

  5. 方法论 5.1数据库架构 shipment_view表包括: •product_id、product_code、product_name、product_type、product_site、年份、qtr、月份、计划、实际 5.2模型集成 Mistral 7B是使用Google Colab上的ctransformers库运行的。提示的格式具有模式感知功能,以指导SQL生成。 5.3后端MCP服务器 本地托管的MCP服务器处理对LLM的请求,并将有效的SQL查询转发给MariaDB。 5.4 Ngrok隧道 Ngrok用于通过公共URL将Colab的请求路由到本地计算机上托管的MCP服务器。 5.5流媒体接口 Colab上的FastAPI服务器实时向用户提供流式响应,并使用笔记本逻辑维护会话内存。

  6. 实施 •语言模型:Mistral 7B(Llama变体),通过c转换器集成 •SQL引擎:MariaDB •API层:具有流生成器端点的FastAPI •前端:谷歌Colab笔记本电脑 •数据库连接器: conn=mysql.connector.connect( 主机=“0.tcp.in.ngrok.io”, 端口=12615, user=“root”, password=“密码”, 数据库=“办公室”) 7特点 •自然语言界面 •多回合对话的情境记忆 •实时流媒体输出 •使用ngrok、FastAPI和MCP的模块化架构 •使用引导式提示生成模式感知查询

  7. 样本输出

  8. 面临的挑战 •OmniSQL 7B在Colab上的推理耗时约2小时,因此不切实际 •LLM需要精确的提示工程,以避免无效的SQL •在FastAPI流中维护内存需要自定义会话逻辑 •确保Colab和MCP之间的安全访问,而不会暴露凭据

  9. 未来范围 •如果GPU支持系统,则用其他好的llms(如OmniSQL-7B)替换Mistral 7B •添加表摘要和SQL输出的自然语言解释 •使用React部署基于web的UI •支持多表数据库中的JOIN和子查询

  10. 结论 该项目提供了一个快速、模式感知的人工智能聊天机器人,能够将自然语言翻译成SQL并实时检索结果。Mistral 7B在Colab环境中提供了性能和精度之间的实际权衡。借助会话内存和流媒体功能,该项目展示了GenAI如何提高非技术用户的数据可访问性。

  11. 参考文献 “Mistral 7B法学硕士”https://mistral.ai .MariaDB文档https://mariadb.com/kb/en/documentation/ .FastAPIhttps://fastapi.tiangolo.com .Ngrok文件——https://ngrok.com/docs .cTransformers GitHubhttps://github.com/marella/ctransformers OpenAI GPT模型https://platform.openai.com/docs