当前位置: 首页 > news >正文

构建LangChain应用程序的示例代码:20、使用LangChain的SQLDatabase包装器连接到Databricks运行时并执行查询操作教程

Databricks SQL 数据库连接

概述

这个笔记本介绍了如何使用LangChain的SQLDatabase包装器连接到Databricks运行时和Databricks SQL。
内容分为三个部分:安装和设置、连接到Databricks以及示例。

安装和设置

!pip install databricks-sql-connector  # 安装Databricks SQL连接器

连接到Databricks

您可以使用SQLDatabase.from_databricks()方法连接到Databricks运行时和Databricks SQL。

语法
SQLDatabase.from_databricks(catalog: str,schema: str,host: Optional[str] = None,api_token: Optional[str] = None,warehouse_id: Optional[str] = None,cluster_id: Optional[str] = None,engine_args: Optional[dict] = None,**kwargs: Any)
必需参数
  • catalog: Databricks数据库中的目录名称。
  • schema: 目录中的架构名称。
可选参数

示例

使用SQLDatabase包装器连接到Databricks
from langchain_community.utilities import SQLDatabasedb = SQLDatabase.from_databricks(catalog="samples", schema="nyctaxi")  # 连接到Databricks,目录为"samples",架构为"nyctaxi"
创建OpenAI Chat LLM包装器
from langchain_openai import ChatOpenAIllm = ChatOpenAI(temperature=0, model_name="gpt-4")  # 创建一个OpenAI Chat LLM包装器,温度设置为0,模型名称为"gpt-4"
SQL链示例

这个示例演示了如何使用SQL链在Databricks数据库上回答一个问题。

from langchain_community.utilities import SQLDatabaseChaindb_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)  # 创建SQL链,使用上面创建的LLM和数据库连接
db_chain.run("What is the average duration of taxi rides that start between midnight and 6am?"  # 运行SQL链,查询午夜到早上6点之间开始的出租车行程的平均持续时间
)
SQL数据库代理示例

这个示例演示了如何使用SQL数据库代理在Databricks数据库上回答问题。

from langchain.agents import create_sql_agent
from langchain_community.agent_toolkits import SQLDatabaseToolkittoolkit = SQLDatabaseToolkit(db=db, llm=llm)  # 创建SQL数据库工具包,传入数据库连接和LLM
agent = create_sql_agent(llm=llm, toolkit=toolkit, verbose=True)  # 创建SQL代理,传入LLM和工具包
agent.run("What is the longest trip distance and how long did it take?")  # 运行代理,查询最长的行程距离以及所需时间

总结

本文详细介绍了如何通过LangChain的SQLDatabase包装器连接到Databricks SQL数据库,并执行查询操作。首先,介绍了安装Databricks SQL连接器的步骤,然后展示了如何建立连接,包括必需和可选参数的说明。接着,通过几个示例代码块,演示了如何创建OpenAI Chat LLM包装器,如何使用SQL链和SQL数据库代理来查询Databricks数据库中的数据。这些示例为使用LangChain与Databricks SQL进行交互提供了清晰的指导。

http://www.lryc.cn/news/365488.html

相关文章:

  • PHP Standards Recommendations(PSR)
  • [word] word2019中制表符的妙用 #媒体#笔记#知识分享
  • 太阳能航空障碍灯在航空安全发挥什么作用_鼎跃安全
  • NineData云原生智能数据管理平台新功能发布|2024年5月版
  • 【Android面试八股文】使用equals和==进行比较的区别?
  • 利用架构挖掘增强云管理
  • 力扣 48.旋转图像
  • 前端角色负责人岗
  • git根据历史某次提交创建新分支
  • 如何评价GPT-4o?GPT-4o和ChatGPT4.0的区别是啥呢?
  • 病理级Polymer酶标二抗IHC试剂盒上线!
  • 动态规划(多重背包问题+二进制优化)
  • AI学习指南机器学习篇-逻辑回归正则化技术
  • Django按照文章ID删除文章
  • Java | Leetcode Java题解之第136题只出现一次的数字
  • 文件系统小册(FusePosixK8s csi)【1 Fuse】
  • Bootstrap 环境安装
  • GWT 与 Python App Engine 集成
  • golang的函数为什么能有多个返回值?
  • 一次 K8s 故障诊断:从 CPU 高负载到存储挂载泄露根源揭示
  • python大作业:实现的简易股票简易系统(含源码、说明和运行截图)
  • python-NLP常用数据集0.1.012
  • 【大事件】docker可能无法使用了
  • 探索Linux中的gzip命令:压缩与解压缩的艺术
  • Shell 输入/输出重定向
  • 为什么RPC要比Http高效?
  • 局域网电脑监控软件是如何监控到内网电脑的?
  • 精妙无比的App UI 风格
  • SQL优化系列-快速学会分析SQL执行效率(下)
  • 交流非线性RCD负载的核心功能