在本博客中,我们将探讨使用 Meta Llama 3 借助 Ollama 和 Wren AI 进行无缝数据库查询的分步过程。这种技术组合使您可以在自己的服务器中托管一个 AI 助手,您可以在其中向 Wren AI 提出任何业务问题并立即获得结果,无需编写 SQL,一切都在您自己的环境中进行。
今年四月,Meta 在开源 LLM 模型社区发布了重大消息,宣布了 Llama 3 模型;它立即引起了广大 LLM 开发者的兴趣,不仅因为与之前的开源 LLM 模型相比,其性能令人印象深刻,还因为 Llama 3 在商业友好的 Llama 3 许可证下可用,使开发者和研究人员能够分享和商业化他们的创新成果。
本文将展示如何在 Ollama 上运行 Meta Llama 3 作为您的 LLM 推理服务器,并使用自然语言查询访问您的 MySQL 数据。
现在,让我们开始吧!
Ollama 是一个开源项目,可帮助您快速轻松地服务和设置本地 LLM。您可以通过几个命令运行 Llama 3、Phi 3、Mistral、Gemma 2 和其他模型。
如果您想了解更多关于 Ollama 的信息,请查看其官方网站。
安装 Ollama 非常简单。请访问其网站:https://ollama.ac.cn,然后点击下载按钮,如下方截图所示。
Ollama 可在 MacOS、Linux 和 Windows 上运行。
使用 Llama 3 70B 模型,以下命令将拉取清单并将模型下载到您的本地机器。
ollama pull llama3:70b
由于 Llama 3 70B 大约 40GB,您可能需要等待几分钟才能完成此步骤。
注意:在本文中,我们将使用 LLM 模型生成 SQL 并查询 MySQL 中的数据。这意味着 LLM 能力必须达到一定的稳定性和可靠性,您可能需要一个至少与 OpenAI GPT-3.5-turbo 模型一样强大的 LLM。
因此,我们强烈建议使用“llama3:70b
”或更好的 LLM 模型,以便使用 Wren AI 获得更好的结果。
在本例中,我们使用 nomic-embed-text
。请确保您从 Ollama 拉取了 embedding 模型。
ollama pull nomic-embed-text
如果您想启动 Ollama 服务器,只需输入即可。您可以点击 Mac 上的应用程序图标或输入以下命令
ollama serve
要退出,请点击菜单栏中的 Ollama 以退出。
Wren AI 是一个开源的 Text-to-SQL 解决方案,帮助数据团队通过提出业务问题,无需编写 SQL,更快地获得结果和洞察。Wren AI 支持多种数据源,如 DuckDB、MySQL、Microsoft SQL Server 和 BigQuery 等,也支持开放和本地 LLM 推理端点,如 OpenAI GPT-3-turbo、GPT-4o 以及通过 Ollama 托管的本地 LLM。
访问 Wren AI 网站:https://wrenai.cn/
WrenAI 允许您使用自定义 LLM 和兼容 OpenAI 的端点;请查看此处了解如何设置。
在此,我们以 Mac 为例安装 Wren AI(如果您使用其他操作系统,请查看官方文档进行安装)
在 Mac 上安装非常简单;粘贴以下行。
curl -L https://github.com/Canner/WrenAI/releases/latest/download/wren-launcher-darwin.tar.gz | tar -xz && ./wren-launcher-darwin
启动器下载完成后,将开始安装。当 Wren AI 询问您想选择哪个 LLM 提供商时,请选择 Custom
。选择 Custom
后,Wren AI 将使用我们在刚刚设置的 .env.ai
文件中粘贴的配置。
选择 Custom
后,Wren AI 将拉取所需的容器,并在安装完成后立即启动 Wren AI。
成功安装 Wren AI 后,它将在 localhost:3000
启动 Wren AI UI,如下所示。
接下来,我们将在 MySQL 官方网站上设置“员工示例数据库”作为演示数据集,并基于官方网站上显示的实体关系图(ERD)构建语义建模,这将增强 Llama 3 对数据集的理解,提高精度。
如果您的计算机上尚未安装 MySQL,请在此处查看并找到合适的安装包进行设置。
首先,我们将准备“员工示例数据库”;该数据集可在 GitHub 上获取。如下所示从 Github 下载数据。
解压下载的文件并在您的终端中导航到以下文件夹。
$ mysql -t < employees.sql -u root -p
测试您的数据库
$ time mysql -t < test_employees_sha.sql -u root -p
如果您的数据库成功加载,它将显示如下表,在此处查看不同的验证方法。
如果您使用 Mac 本地 MySQL 数据库,请输入 docker.for.mac.localhost
来访问数据库。
以下是我在 Wren AI UI 中填写的设置。
成功连接数据库后,您将被引导至下一步:选择表。在此,我们选择所有表。
点击下一步后,您可以为每个表设置关系。您可以在下方设置关系。
点击 Finish
按钮后,您将被引导至主页;切换到建模页面,您将看到下方的语义建模图!
下方是 MySQL 文档提供的员工示例数据库的数据库模式,通常称为“实体关系图”(ERD);ERD 对许多数据团队很重要,因为它提供了数据库结构的视觉表示。这使得更容易理解和管理数据关系,从而更轻松地查询数据和创建报告。
这些信息对于 LLM 深入理解您的数据结构并提供更准确和清晰的数据至关重要。
在 Wren AI 中,我们可以在建模页面定义 ERD 中的信息;在后台,我们定义了一种建模定义语言(MDL),它与执行引擎沟通模型的语义上下文。MDL 是我们设计的 LLM 和数据系统之间的 LLM 中间表示(LIR)。
查看语义元数据与预览数据
点击每个模型都会从侧面弹出一个抽屉,您可以在其中为表、列和关系定义添加语义。在此,您还可以预览模型中的数据。
添加/更新语义元数据
您可以通过点击下方的编辑按钮添加和更新语义元数据。
添加/更新/删除语义关系
在每种关系中,您还可以编辑、添加和删除各模型之间的语义关系,以便让 LLM 知道模型是处于一对一、一对多还是多对多关系。
完成所有建模配置后,请注意使用右上角的按钮部署您的设置。模型同步后,您会看到按钮旁边出现一个勾选标记。
在下面的快照中,我们在 Wren AI 上设置了“员工示例数据库”的精确 ERD。现在,您的 Llama 3 可以准确理解您的数据结构。
现在,您可以通过点击 New Thread
切换到 Wren AI UI 的 Home
页面。您可以开始询问任何业务问题;Wren AI 会通过向量存储搜索相关语义,并提供带有分步推理的结果,以便您检查 Wren AI 提供结果的正确性。
查看 Wren AI 的结果后,您可以提出后续问题以获取更深入的见解。
使用 Ollama 设置 LLM 和本地 LLM 模型来查询数据库非常简单。Wren AI 在 GitHub 上是开源的。用您的数据试试看吧!
感谢 Jimmy Yeh 和 Yaida Colindres 帮助审阅文章并提供反馈!
如果您喜欢我们的工作,请在 GitHub 上支持我们并给我们点赞!
🚀 GitHub: https://github.com/canner/wrenai
🙌 网站: https://wrenai.cn/
如果您喜欢这篇文章,别忘了在 Github 上给 ⭐ Wren AI 点个赞 ⭐ ,一如既往,感谢您的阅读。
立即用 AI 为您的数据提速?!