如何使用 Meta Llama 3、Ollama 和 Wren AI 查询 MySQL 数据库

关于如何通过 Ollama 托管私有 LLM 端点并使用最新开源模型 Meta Llama 3 查询 MySQL 的分步教程

Howard Chi
Wren AI 联合创始人
更新于
2024年12月21日
2024年12月21日
8
分钟阅读
发布于
2024年7月2日

在本博客中,我们将探讨使用 Meta Llama 3 借助 OllamaWren AI 进行无缝数据库查询的分步过程。这种技术组合使您可以在自己的服务器中托管一个 AI 助手,您可以在其中向 Wren AI 提出任何业务问题并立即获得结果,无需编写 SQL,一切都在您自己的环境中进行。

今年四月,Meta 在开源 LLM 模型社区发布了重大消息,宣布了 Llama 3 模型;它立即引起了广大 LLM 开发者的兴趣,不仅因为与之前的开源 LLM 模型相比,其性能令人印象深刻,还因为 Llama 3 在商业友好的 Llama 3 许可证下可用,使开发者和研究人员能够分享和商业化他们的创新成果。

Meta Llama 3 基准测试

本文将展示如何在 Ollama 上运行 Meta Llama 3 作为您的 LLM 推理服务器,并使用自然语言查询访问您的 MySQL 数据。

现在,让我们开始吧!

设置 Ollama

什么是 Ollama

Ollama 是一个开源项目,可帮助您快速轻松地服务和设置本地 LLM。您可以通过几个命令运行 Llama 3、Phi 3、Mistral、Gemma 2 和其他模型。

如果您想了解更多关于 Ollama 的信息,请查看其官方网站

安装 Ollama

安装 Ollama 非常简单。请访问其网站:https://ollama.ac.cn,然后点击下载按钮,如下方截图所示。

点击下载并安装 Ollama。

Ollama 可在 MacOS、Linux 和 Windows 上运行。

在 Ollama 上拉取 Llama 3 70B

使用 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 获得更好的结果。

拉取 Embedding 模型

在本例中,我们使用 nomic-embed-text。请确保您从 Ollama 拉取了 embedding 模型。

ollama pull nomic-embed-text

启动 Ollama 服务器

如果您想启动 Ollama 服务器,只需输入即可。您可以点击 Mac 上的应用程序图标或输入以下命令

ollama serve 

要退出,请点击菜单栏中的 Ollama 以退出。

从菜单栏退出 Ollama

设置 Wren AI

什么是 Wren AI?

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/

将 Wren AI 设置到 Ollama 端点

WrenAI 允许您使用自定义 LLM 和兼容 OpenAI 的端点;请查看此处了解如何设置。

安装并启动 Wren AI

在此,我们以 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 文件中粘贴的配置。

在启动器中选择自定义 LLM 提供商选项

选择 Custom 后,Wren AI 将拉取所需的容器,并在安装完成后立即启动 Wren AI。

安装所需容器

成功安装 Wren AI 后,它将在 localhost:3000 启动 Wren AI UI,如下所示。

Wren AI 的着陆页。

使用 Llama 3 70B 查询 MySQL

接下来,我们将在 MySQL 官方网站上设置“员工示例数据库”作为演示数据集,并基于官方网站上显示的实体关系图(ERD)构建语义建模,这将增强 Llama 3 对数据集的理解,提高精度。

安装 MySQL

如果您的计算机上尚未安装 MySQL,请在此处查看并找到合适的安装包进行设置。

准备数据库

首先,我们将准备“员工示例数据库”;该数据集可在 GitHub 上获取。如下所示从 Github 下载数据。

从 GitHub 下载数据库

解压下载的文件并在您的终端中导航到以下文件夹。

$ mysql -t < employees.sql -u root -p
加载示例数据库中的所有表

测试您的数据库

$ time mysql -t < test_employees_sha.sql -u root -p

如果您的数据库成功加载,它将显示如下表,在此处查看不同的验证方法。

检查数据是否成功加载。

从 Wren AI 连接到您的 MySQL 数据库

如果您使用 Mac 本地 MySQL 数据库,请输入 docker.for.mac.localhost 来访问数据库。

以下是我在 Wren AI UI 中填写的设置。

设置连接

成功连接数据库后,您将被引导至下一步:选择表。在此,我们选择所有表。

选择所需表

点击下一步后,您可以为每个表设置关系。您可以在下方设置关系。

设置模型间的关系。

点击 Finish 按钮后,您将被引导至主页;切换到建模页面,您将看到下方的语义建模图!

完成将模型导入 Wren AI

建模您的数据集

下方是 MySQL 文档提供的员工示例数据库的数据库模式,通常称为“实体关系图”(ERD);ERD 对许多数据团队很重要,因为它提供了数据库结构的视觉表示。这使得更容易理解和管理数据关系,从而更轻松地查询数据和创建报告。

这些信息对于 LLM 深入理解您的数据结构并提供更准确和清晰的数据至关重要。

MySQL 官方文档中提供的数据集的 ERD

在 Wren AI 中,我们可以在建模页面定义 ERD 中的信息;在后台,我们定义了一种建模定义语言(MDL),它与执行引擎沟通模型的语义上下文。MDL 是我们设计的 LLM 和数据系统之间的 LLM 中间表示(LIR)。

查看语义元数据与预览数据

点击每个模型都会从侧面弹出一个抽屉,您可以在其中为表、列和关系定义添加语义。在此,您还可以预览模型中的数据。

添加/更新语义元数据

您可以通过点击下方的编辑按钮添加和更新语义元数据。

添加/更新/删除语义关系

在每种关系中,您还可以编辑、添加和删除各模型之间的语义关系,以便让 LLM 知道模型是处于一对一、一对多还是多对多关系。

您可以在建模页面更新/删除/创建语义关系。

点击部署以保存和更新上下文。

完成所有建模配置后,请注意使用右上角的按钮部署您的设置。模型同步后,您会看到按钮旁边出现一个勾选标记。

已同步您的模型

最终结果

在下面的快照中,我们在 Wren AI 上设置了“员工示例数据库”的精确 ERD。现在,您的 Llama 3 可以准确理解您的数据结构。

在 Wren AI 上设置 ERD

开始提问

现在,您可以通过点击 New Thread 切换到 Wren AI UI 的 Home 页面。您可以开始询问任何业务问题;Wren AI 会通过向量存储搜索相关语义,并提供带有分步推理的结果,以便您检查 Wren AI 提供结果的正确性。

进一步提出后续问题。

查看 Wren AI 的结果后,您可以提出后续问题以获取更深入的见解。

自己试试吧!

使用 Ollama 设置 LLM 和本地 LLM 模型来查询数据库非常简单。Wren AI 在 GitHub 上是开源的。用您的数据试试看吧!

感谢 Jimmy YehYaida Colindres 帮助审阅文章并提供反馈!

如果您喜欢我们的工作,请在 GitHub 上支持我们并给我们点赞!

🚀 GitHub: https://github.com/canner/wrenai

🙌 网站: https://wrenai.cn/

如果您喜欢这篇文章,别忘了在 Github 上给 ⭐ Wren AI 点个赞 ⭐ ,一如既往,感谢您的阅读。

立即用 AI 为您的数据提速?!

谢谢!您的提交已收到!
糟糕!提交表单时出现问题。