ToB企服应用市场:ToB评测及商务社交产业平台

标题: 利用LangChain实现大语言模型与数据库的交互对话 [打印本页]

作者: 东湖之滨    时间: 2025-1-11 04:04
标题: 利用LangChain实现大语言模型与数据库的交互对话
大语言模型利用LangChain与数据库对话

大型语言模型(LLMs)的兴起在技术上带来了庞大转变,使开发者能够创建曾经不可思议的应用步伐。LangChain 是一个提示编排工具,利用LLMs的能力改变你与数据库的通信方式。通过LangChain,你可以轻松地与数据库对话,并及时获得精确的响应,就像与密切朋友攀谈一样。
在本教程中,我们将毗连到PostgreSQL数据库,并利用LangChain与之对话,而无需通过SQL查询数据库。
入门指南

目录


LangChain简介

LangChain 是一个开源库,为开发者提供了一系列资源,以开发在大型语言模型(LLMs)上运行的应用步伐。通过建立LLMs与外部数据源(如个人文档或互联网)的链接机制。开发者可以利用LangChain串联一系列命令来创建复杂的应用步伐。简而言之,LangChain作为一个框架,使得执行一系列提示以获得特定结果成为可能。
为什么要利用LangChain

LangChain 对开发者来说是一个紧张的工具,因为它使得利用LLMs构建复杂应用步伐变得更加容易。它允许用户将LLMs毗连到其他数据源。通过将LLMs毗连到其他数据源,应用步伐可以处置惩罚更广泛的信息,使应用步伐更加强大和多功能。
LangChain 还提供了以下特性:

LangChain布局

该框架分为七个模块。每个模块允许你管理与LLM交互的差别方面。


LangChain的应用

以下是LangChain的一些应用。

利用LangChain创建问答应用

在上一节中,我们介绍了LangChain的根本知识。在接下来的部分中,我们将利用LangChain构建一个问答应用。请按照以下步骤构建一个根本的问答应用。
安装依赖

通过执行以下命令创建并激活虚拟环境。
  1. python -m venv venv
  2. source venv/bin/activate
  3. venv/Scripts/activate
复制代码
利用pip安装langchain、openai和python-environ库。
  1. pip install langchain openai python-environ
复制代码
设置环境变量

你可以利用任何开源模型与langchain一起利用。然而,openai模型比开源模型提供更好的结果。如果你利用的是任何openai模型,需要openai密钥来访问langchain。本教程是针对openai模型设计的。按照以下步骤创建一个新的openai密钥。

  1. OPENAI_API_KEY=<your_openai_key>
复制代码
利用LangChain创建简单的LLM调用

创建一个新的python文件langchain_demo.py,并添加以下代码。
  1. from langchain.llms import OpenAI
  2. import environ
  3. env = environ.Env()
  4. environ.Env.read_env()
  5. API_KEY = env('OPENAI_API_KEY')
  6. llm = OpenAI(model_name="text-davinci-003", openai_api_key=API_KEY)
  7. question = "Which language is used to create chatgpt?"
  8. print(question, llm(question))
复制代码
运行脚本。
  1. python langchain_demo.py
复制代码
你将得到以下输出。
  1. python langchain_demo.py
  2. Which language is used to create chatgpt ?ChatGPT is written in Python,using the PyTorch deep learning framework
复制代码
创建提示模板

创建一个新的python文件langchain_demo.py,并添加以下代码。
  1. from langchain.llms import OpenAI
  2. import environ
  3. env = environ.Env()
  4. environ.Env.read_env()
  5. API_KEY = env('OPENAI_API_KEY')
  6. llm = OpenAI(model_name="text-davinci-003", openai_api_key=API_KEY)
  7. template = "What are the top {n} resources to learn {language} programming?"
  8. prompt = PromptTemplate(template=template, input_variables=['n', 'language'])
  9. chain = LLMChain(llm=llm, prompt=prompt)
  10. input = {'n': 3, 'language': 'Python'}
  11. print(chain.run(input))
复制代码
运行脚本。
  1. python langchain_demo.py
复制代码
你将得到以下输出。
  1. python langchain_demo.py
  2. 1. Codecademy(https://www.codecademy.com/learn/learn-python)2. LearnPython.org (https://www.learnpython.org/)3. Automate the Boring Stuff with Python (https://automatetheboringstuff.com/)
复制代码
利用LangChain与数据库交互

在本节中,我们将创建一个应用步伐,以自然的方式(不直接查询)与postgres数据库交互。
安装postgres

打开企业版下载页面(enterprisedb.com),并根据你的操作系统下载相应的包。
嫌麻烦,可以直接注册一个免费的云数据库。 MemFireDB
创建数据库

创建一个名为tasks的数据库表来生存任务详情。这个数据库可以作为langchain的数据源。

安装依赖

通过执行以下命令创建并激活虚拟环境。
  1. python -m venv venv
  2. source venv/bin/activate
  3. venv/Scripts/activate
复制代码
利用pip安装langchain、openai、python-environ和psycopg2库。
  1. pip install langchain openai python-environ
  2. psycopg2
复制代码
创建表和插入数据

注意替换数据库毗连信息。
创建一个新的python文件db.py,并添加以下代码。
  1. import psycopg2
  2. import environ
  3. env = environ.Env()
  4. environ.Env.read_env()
  5. conn = psycopg2.connect(
  6.     host='localhost',
  7.     port=5432,
  8.     user='postgres',
  9.     password=env('DBPASS'),
  10.     database=env('DATABASE')
  11. )
  12. cursor = conn.cursor()
  13. cursor.execute('''
  14. CREATE TABLE IF NOT EXISTS tasks
  15. (id SERIAL PRIMARY KEY,
  16. task TEXT NOT NULL,
  17. completed BOOLEAN,
  18. due_date DATE,
  19. completion_date DATE,
  20. priority INTEGER)
  21. ''')
  22. # 插入数据的代码...
  23. conn.commit()
  24. conn.close()
复制代码
运行脚本

要创建任务表并插入值,请利用以下命令运行db.py脚本。
  1. python db.py
复制代码
设置SQL数据库链

创建一个新的python文件app.py,并添加以下代码。
  1. from langchain import OpenAI, SQLDatabase, SQLDatabaseChain
  2. import environ
  3. env = environ.Env()
  4. environ.Env.read_env()
  5. API_KEY = env('OPENAI_API_KEY')
  6. db = SQLDatabase.from_uri(
  7.     f"postgresql+psycopg2://postgres:{env('DBPASS')}@localhost:5432/{env('DATABASE')}"
  8. )
  9. llm = OpenAI(temperature=0, openai_api_key=API_KEY)
  10. QUERY = """
  11. Given an input question, first create a syntactically correct postgresql query to run, then look at the results of the query and return the answer.
  12. Use the following format:
  13. Question: Question here
  14. SQLQuery: SQL Query to run
  15. SQLResult: Result of the SQLQuery
  16. Answer: Final answer here
  17. {question}
  18. """
  19. db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)
  20. def get_prompt():
  21.     print("Type 'exit' to quit")
  22.     while True:
  23.         prompt = input("Enter a prompt: ")
  24.         if prompt.lower() == 'exit':
  25.             print('Exiting...')
  26.             break
  27.         else:
  28.             try:
  29.                 question = QUERY.format(question=prompt)
  30.                 print(db_chain.run(question))
  31.             except Exception as e:
  32.                 print(e)
  33. get_prompt()
复制代码
代码分析:


运行应用步伐

利用以下命令运行SQL数据库链。
  1. python app.py
复制代码
您将获得以下输出:

这就是您的第一个LangChain应用步伐!感谢阅读本文。

大模型&AI产品经理怎样学习

求各人的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图


第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商范畴虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体范畴构建适合当前范畴大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小步伐案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程

网上固然也有许多的学习资源,但根本上都残破不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


(都打包成一块的了,不能一一睁开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是现在行业最新的。

4.LLM口试题和面经合集

这里主要整理了行业现在最新的大模型口试题和各种大厂offer面经合集。






欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4