首页 > 其他分享 >LangChain 快速入门:构建你的第一个智能应用

LangChain 快速入门:构建你的第一个智能应用

时间:2024-07-15 20:29:30浏览次数:14  
标签:深色 入门 Python langchain 构建 LangChain 版本 import

引言

随着大型语言模型(LLM)的崛起,开发人员现在可以利用这些强大的工具来创建一系列创新的应用程序,从自动文档摘要到聊天机器人,再到智能客服系统。LangChain 是一个开源框架,旨在简化与 LLM 的交互,帮助开发者轻松地构建和部署基于 LLM 的应用程序。本文将带你快速入门 LangChain,通过一个简单的例子来展示其基本用法。

安装 LangChain

首先,你需要安装 LangChain 和其他必要的依赖包。在你的终端中运行以下命令:

Bash

深色版本

1pip install langchain
2pip install openai
3pip install python-dotenv

python-dotenv 是用来管理环境变量的,而 openai 是用于与 OpenAI 的 API 进行交互的库。

配置 API 密钥

LangChain 需要你的 OpenAI API 密钥来访问其模型。你可以通过创建 .env 文件并添加以下内容来配置:

Bash

深色版本

1touch .env
2echo "OPENAI_API_KEY=<your-api-key>" > .env

记得将 <your-api-key> 替换为你的实际 API 密钥。

创建你的第一个 LangChain 应用

让我们创建一个简单的 LangChain 应用,该应用将使用 OpenAI 的 GPT 模型来回答问题。

步骤 1: 导入必要的模块

Python

深色版本

1from langchain.chains import ConversationalRetrievalChain
2from langchain.chat_models import ChatOpenAI
3from langchain.memory import ConversationBufferMemory
4from langchain.vectorstores import Chroma
5from langchain.embeddings.openai import OpenAIEmbeddings
6import os
7from dotenv import load_dotenv

步骤 2: 加载环境变量

Python

深色版本

1load_dotenv()

步骤 3: 初始化 OpenAI 模型和嵌入

Python

深色版本

1chat_model = ChatOpenAI(temperature=0.5, model_name='gpt-3.5-turbo')
2embeddings = OpenAIEmbeddings()

步骤 4: 创建向量数据库

这里我们使用 Chroma 向量数据库来存储文档的嵌入,以便后续检索。

Python

深色版本

1vectorstore = Chroma(persist_directory='./db', embedding_function=embeddings)

如果你没有预先存在的数据库,你可以通过以下方式创建一个:

Python

深色版本

1from langchain.text_splitter import CharacterTextSplitter
2from langchain.document_loaders import TextLoader
3
4loader = TextLoader('data.txt') # 假设你有一个包含文本数据的文件 data.txt
5documents = loader.load()
6
7text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
8texts = text_splitter.split_documents(documents)
9
10vectorstore = Chroma.from_documents(texts, embeddings)

步骤 5: 设置记忆链

为了使会话具有上下文,我们需要设置记忆链。

Python

深色版本

1memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)

步骤 6: 创建问答链

Python

深色版本

1qa_chain = ConversationalRetrievalChain.from_llm(llm=chat_model, retriever=vectorstore.as_retriever(), memory=memory)

步骤 7: 开始会话

现在我们可以开始与模型的交互了:

Python

深色版本

1query = "告诉我关于量子计算的一些事情。"
2result = qa_chain({"question": query})
3print(result['answer'])

这就是使用 LangChain 构建一个基本的问答机器人的完整流程。你可以继续扩展这个应用,比如添加更多的文档来源,使用更复杂的逻辑处理用户的请求,或者将其部署到一个Web服务器上,使其成为一个实时的在线应用。

结语

LangChain 为开发基于 LLM 的应用程序提供了一个强大的框架,通过本文的快速入门,你应该对如何使用 LangChain 有了初步的了解。随着你对 LangChain 的深入了解,你将能够构建出更加复杂和智能的应用程序,以满足不同场景下的需求。

标签:深色,入门,Python,langchain,构建,LangChain,版本,import
From: https://blog.csdn.net/qq_42072014/article/details/140448151

相关文章

  • 【CTF入门】BUUCTF N1BOOK闯关(持续更新)
    【CTF入门】BUUCTFN1BOOK闯关(持续更新)[第一章web入门]常见的搜集点击启动靶机,为我们生成了一个链接,这就是我们要攻击的地址。点击链接进入,发现这个页面:可以看出这道题目的考点是信息搜集敏感文件,在这里简单介绍下常见的敏感文件(来源于《从0到1CTFer成长之路》)敏感目录泄露......
  • Spring MVC入门5
    你能学到什么获取header的两种方式学习SpringMVC的第三部分“响应”返回静态页面返回HTML代码返回JSON设置状态码正文获取header获取Header也是从HttpServletRequest中获取再举个例子获取header的简洁方法(@RequestHeader)@RequestHeader注解的参数值为HT......
  • Python基础入门(一)
    Python基础入门(一)一、python语言介绍​ python是一种解释型、面向对象、动态数据类型的高级程序设计语言。​ Python由GuidvanRossum于1989年底发明,​ 第一个公开发行版发行于1991年。​ Python源代码遵循GPL(GNUGeneralPublicLicense)协议二、python特点​ ......
  • Python基础入门(二)
    Python基础入门(二)一、学习目标:掌握各种分支结构的使用方法掌握各种循环结构的使用方式掌握分支结构与循环结构的嵌套使用方式二、分支结构介绍根据指定条件是否成立确定是否执行相应的代码块:单分支结构二分支结构多分支结构分支结构嵌套三、单分支结......
  • 探索GraphRAG:构建高效的知识图谱索引与查询引擎
    GraphRAG系统简介GraphRAG是一个基于图的检索增强生成系统,它通过索引文本数据,然后使用这些索引数据来回答有关文档的问题。系统的核心在于其索引管道和查询引擎,它们共同工作,以提供快速且准确的信息检索服务。环境准备在开始之前,请确保你的开发环境中已安装Python3.10至3......
  • 构建之美:精通Gradle多模块项目的配置艺术
    构建之美:精通Gradle多模块项目的配置艺术在现代软件开发中,随着项目的规模和复杂性的增长,单模块项目往往难以满足需求。多模块项目因其结构清晰、易于管理和可扩展性强而成为大型项目的首选。Gradle,作为一款功能强大的构建工具,提供了对多模块项目的原生支持。本文将带你深入......
  • AI绘画Stable Diffusion 零基础入门 —AI 绘画原理与工具介绍,万字解析AI绘画的使用教
    大家好,我是设计师阿威想要入门AI绘画,首先需要了解它的原理是什么样的。其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。直到近两年,AI产出的图像内容的质量变高、而且有一定的艺术价值,这时它才算正式拥有了理......
  • HTTP请求的发送:构建与传输的详细剖析
    摘要在网络通信的世界里,HTTP(超文本传输协议)是构建Web应用的基石。HTTP请求是客户端与服务器通信的语言。本文将深入探讨HTTP请求的发送过程,从构建请求到通过TCP/IP协议栈传输的每个细节。1.HTTP请求概述介绍HTTP请求的基本概念和作用。解释HTTP请求与响应的通信模式。2......
  • 简单的小波分析入门教程(第一部分,Python)
    importnumpyasnpimportmatplotlib.pyplotaspltimportpywtSimpleSignalAnalysisusingDWT#Generatethesignalt=np.linspace(0,1,1000,endpoint=False)signal=np.cos(2.0*np.pi*7*t)+np.sin(2.0*np.pi*13*t)#ApplyDWTcoeffs=p......
  • Windows环境黑客入侵应急与排查(非常详细)零基础入门到精通,收藏这一篇就够了
    “在网络安全的世界里,预防是上策,而有效的应急响应则是最后的防线。”INSPIRATION1文件分析1.1临时目录排查黑客往往可能将病毒放在临时目录(tmp/temp),或者将病毒相关文件释放到临时目录,因此需要检查临时目录是否存在异常文件。假设系统盘在C盘,则通常情况下的临时目录......