大家好,我是小寒。
大型语言模型 (LLM) 的兴起带来了技术的重大转变,使开发人员能够创建曾经超出想象的应用程序。
LangChain 是一种提示编排工具,它利用 LLM(大型语言模型)的功能来改变你与数据库通信的方式。
通过 LangChain,你可以轻松地与你的数据库进行对话,并实时获得精确的回复,就像你在与亲密的朋友交谈一样。
在本文中,我将使用 Langchain 连接到 Mysql 数据库并与其发起对话,而无需通过 SQL 查询数据库。
LangChain 简介
LangChain 是一个开源库,通过建立将 LLM 与外部数据源(例如个人文档或互联网)链接的机制,为开发人员提供了一套全面的资源来开发在大型语言模型 (LLM) 上运行的应用程序。
开发人员可以利用 LangChain 将一系列命令串在一起来创建复杂的应用程序。
简而言之,LangChain 作为一个框架,可以执行一系列提示以获得特定结果。
LangChain 的结构
该框架分为七个模块。每个模块都允许你管理与 LLM 互动的不同方面。
LLM
LLM 是 LangChain 的基础组成部分。它是大型语言模型的包装器,可以利用模型的功能和能力。
Chains
很多时候,要解决任务,对 LLM 的单次调用是不够的。
该模块允许集成其他工具。
例如,你可能需要从特定 URL 获取数据,总结返回的文本,并使用生成的摘要回答问题。该模块允许连接多个工具以解决复杂的任务。
Prompts
提示是任何 NLP 应用程序的核心。这是用户与模型交互以尝试从中获取输出的方式。
了解如何编写有效的提示非常重要。
LangChain 提供提示模板,使用户能够格式化输入。
Document Loaders and Utils
LangChain 的 Document Loaders and Utils 模块分别有助于连接数据源和计算。
Agents
一个 Agent 是一个 LLM,负责做出决定、采取行动并对已完成的工作进行观察,并继续此循环直至任务完成。
LangChain 库提供的代理可以根据沿途的输入而不是硬编码的确定性序列采取行动。
Indexes
最好的模型通常是与一些文本数据相结合的模型,以便为模型添加上下文或解释某些内容。这个模块可以帮助我们做到这一点。
Memory
该模块使用户能够在模型调用之间创建持久状态。
使用 LangChain 与数据库交互
在本节中,我们将创建一个应用程序以对话的方式与 mysql 数据库进行交互,而无需写 SQL 语句。
对于 Mysql 的安装配置这里就不再赘述。
首先,我们现在 mysql 中创建一个数据库 student,并创建一个表 student,并插入几条数据。
结果如下图所示。
下面,我们来创建使用 LangChain 与数据库交互的代码。
下面我们来看一下运行的结果。
效果是相当不错的。