LlamaMistral7b-NL2SQL
使用Llama Mistral 7B将自然语言转换为SQL的AI聊天机器人。通过基于FastAPI的流媒体、会话内存和ngrok隧道的MCP服务器连接到MariaDB数据库。在Google Colab上构建和运行。
- 摘要
该项目提出了一个使用Mistral 7B Llama模型进行数据库交互的人工智能聊天机器人界面。该系统能够将自然语言查询翻译成SQL,并通过本地托管的MCP(MariaDB聊天机器人平台)服务器对MariaDB数据库执行查询。该系统在Google Colab环境中实现,并通过ngrok连接,通过FastAPI接口提供上下文存储和流式输出。之所以选择Mistral 7B而不是OmniSQL-7B,是因为它在Colab上的推理时间明显更快,同时仍然保持了较高的SQL生成精度。
- 引言
将自然语言翻译成SQL(NL2SQL)是自然语言处理和结构化数据管理交叉领域的一个新兴用例。该项目旨在通过部署一个理解用户意图并相应生成SQL查询的大型语言模型,使非技术用户能够直观地进行数据库交互。Mistral 7B是一种基于变压器的优化LLM,与MCP服务器和Google Colab前端的集成为数据库查询提供了实时流式聊天机器人体验。
- 系统概述
系统组件包括: MariaDB数据库:将结构化数据存储在如shipment_view这样的表中。 Mistral 7B(Llama):用于将用户问题转换为SQL查询的LLM。 •MCP服务器:充当LLM推理和数据库之间的中介。 •Ngrok:用于将本地托管的MCP服务器暴露给Colab客户端。 •谷歌Colab笔记本电脑:带有FastAPI服务器和聊天界面的前端客户端。
- 系统架构
- 方法论
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服务器实时向用户提供流式响应,并使用笔记本逻辑维护会话内存。
- 实施
•语言模型: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的模块化架构 •使用引导式提示生成模式感知查询
- 样本输出
- 面临的挑战
•OmniSQL 7B在Colab上的推理耗时约2小时,因此不切实际 •LLM需要精确的提示工程,以避免无效的SQL •在FastAPI流中维护内存需要自定义会话逻辑 •确保Colab和MCP之间的安全访问,而不会暴露凭据
- 未来范围
•如果GPU支持系统,则用其他好的llms(如OmniSQL-7B)替换Mistral 7B •添加表摘要和SQL输出的自然语言解释 •使用React部署基于web的UI •支持多表数据库中的JOIN和子查询
- 结论
该项目提供了一个快速、模式感知的人工智能聊天机器人,能够将自然语言翻译成SQL并实时检索结果。Mistral 7B在Colab环境中提供了性能和精度之间的实际权衡。借助会话内存和流媒体功能,该项目展示了GenAI如何提高非技术用户的数据可访问性。
- 参考文献
“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
