当前位置:首页 > 技术分析 > 正文内容

LangChain快速上手

ruisui883个月前 (03-19)技术分析39

前言

本章节将带你快速搭建一个 LangChain 开发环境,并完成你的第一个应用程序。通过简单示例,你将熟悉 LangChain 的基础操作流程。

安装与环境配置

  1. 系统需求

o Python 版本:>=3.9

o 推荐使用虚拟环境(如 venv 或 conda)以便隔离依赖。

  1. 安装 LangChain

因为openai国内挂代理访问比较慢,我为了图方便也是为了方便学习我使用百度的千帆模型来演示,所以在安装langchain之前,你最好去注册一个千帆的帐号,具体操作如下图所示:

帐号注册成功后,进入到控制台找到”百度智能云千帆AppBuilder“,鼠标点击进入到AppBuilder页面

AppBuilder页面如下所示:

点击密钥管理选项,进入到“我的应用页面”,如下所示:

点击创建应用按钮,填写对应用的名称和描述完成应用的创建,然后在应用列表中,找到刚刚创建的应用,将API key和secret key复制保存起来,后续会用到。

在申请完千帆模型所需的key之后,我们可以运行以下命令安装最新版本的 LangChain 和相关依赖:

mkdir langchain
cd langchain/
python3 -m venv .venv
source .venv/bin/activate
pip install langchain-core langgraph>0.2.27 langchain langchain_community qianfan

注意: 为了图方便我将其他依赖也安装了

  1. 第一个 LangChain例子:调用 千帆 API
import os
from langchain_community.llms.baidu_qianfan_endpoint import QianfanLLMEndpoint

os.environ["QIANFAN_AK"] = "千帆apikey"
os.environ["QIANFAN_SK"] = "千帆secret key"

llm = QianfanLLMEndpoint(temperature=0.9)

text = "百度是一家什么样的公司?"

print(llm.invoke(text))

运行结果如下图所示:

以上代码设置了API key,初始化了QianfanLLMEndpoint对象,并调用了invoke方法完成对百度这家公司的评价。

LangChain 的基本模块概览

LangChain 提供了一系列模块化工具,便于开发复杂的应用程序。在后续章节中会详细讲解各模块的使用,这里提供一个概览

  1. Prompt Templates(提示词模板)

提示模板用于构建动态提示,适用于需要变量插值的场景。示例代码如下所示:

from langchain.prompts import PromptTemplate


template = "请使用{word_count}个词描述langchain。"

prompt = PromptTemplate(input_variables=["word_count"], template=template)

print(prompt.format(word_count=10))

运行结果如下所示:

(.venv)   python prompt.py
请使用10个词描述langchain。
  1. Chains (链)

Chains 用于串联多个步骤,比如将用户输入传递到模型,然后将模型输出传递到另一个处理步骤。类似于Linux的管道,即将前面的结果作为条件传给下一个程序来处理。

import os
from langchain.chains.llm import LLMChain
from langchain.prompts import PromptTemplate
from langchain_community.llms import QianfanLLMEndpoint

os.environ["QIANFAN_AK"] = "千帆apikey"
os.environ["QIANFAN_SK"] = "千帆secret key"

template = "用一句话总结以下内容: {text}"

prompt = PromptTemplate(input_variables=['text'], template=template)

llm = QianfanLLMEndpoint(temperature=0.9)

chain = LLMChain(llm=llm, prompt=prompt)

response = chain.run("LangChain 是一个帮助构建 AI 应用的框架。")
print(response)

运行结果如下所示:

(.venv)   python chains.py
[WARNING][2024-12-15 01:40:49.177] redis_rate_limiter.py:21 [t:8428670784]: No redis installed, RedisRateLimiter unavailable. Ignore this warning if you don't need to use qianfan SDK in distribution environment
/langchain/chains.py:15: LangChainDeprecationWarning: The class `LLMChain` was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use :meth:`~RunnableSequence, e.g., `prompt | llm`` instead.
  chain = LLMChain(llm=llm, prompt=prompt)
/langchain/chains.py:17: LangChainDeprecationWarning: The method `Chain.run` was deprecated in langchain 0.1.0 and will be removed in 1.0. Use :meth:`~invoke` instead.
  response = chain.run("LangChain 是一个帮助构建 AI 应用的框架。")
[INFO][2024-12-15 01:40:49.207] oauth.py:277 [t:8428670784]: trying to refresh token for ak `2ctEom***`
[INFO][2024-12-15 01:40:49.385] oauth.py:304 [t:8428670784]: successfully refresh token
LangChain是一个AI应用框架的助建工具。
  1. Tools

工具允许模型访问外部数据源或执行特定功能,例如调用搜索引擎、数据库或 API。

  1. Memory

Memory 提供对话的上下文记忆功能,允许在多轮对话中保留历史记录。

  1. Agents

代理能够动态决策,结合提示、工具和记忆实现复杂的多工具交互。

  1. 模型I/O

是langchain与大模型的接口,负责处理输入和数据输出,以及各种大模型的交互。

  1. 回调 (callbacks)

记录和传输链的中间步骤。

今天的内容到此就结束了,通过本章节,你已经成功安装 LangChain,运行了一个基本示例,并初步了解了核心模块的功能。接下来可以深入探索各个模块的详细应用。

如果你觉得这篇文件对你有所帮助的话,还请您转发分享一下,让更多的编程爱好者看到!!!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2892.html

分享给朋友:

“LangChain快速上手” 的相关文章

财务未来:数字化全流程自动化报销,让预算管理更轻松

财务管理是企业经营的重中之重,费控管理则是财务管理的核心之一。上至管理层下至普通员工,面对繁琐的费控管理却是“家家有本难念的经”。举个常见的例子:在传统企业的费用管理模式下,员工在进行商务活动时,通常需要自行垫资,之后再经过一系列繁杂的报销审批流程,才能最终实现打款。对于普通员工来说,申报流程繁琐,...

Vue组件通信之props深入详解!

props 是 Vue 组件中一个很重要的概念。它是用来从父组件向子组件传递数据的。为什么需要props?这是因为在Vue中,组件是相互隔离的。每个组件都有自己的作用域,子组件无法直接访问父组件的状态或值。通过props,父组件可以将数据传递给子组件。使用props的步骤:1. 在子组件中定义pro...

代码管理-9-gitlab的使用和设置

gitlab使用1、外观设置完成后保存,返回登录页面查看关于注册,有些公司是不允许打开的,,有些人数非常多的公司就需要打开注册的功能,让人员自己注册,我们来给他特定的权限就可以,毕竟人非常多的时候还由我们来给她们注册就非常不现实了,工作量会很大2、自动注册3、组&用户&项目创建组设置组名称、描述等创...

Git 分支管理策略汇总

最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。Git flow在这种模式下,主要维护了两类分支...

掌握版本控制:Git的那些常见用法与技巧

Git作为现代开发中最常用的版本控制系统,它的普及和高效性使得程序员几乎每天都在与它打交道。无论是个人项目,还是团队协作,Git都能帮助我们追踪代码的修改历史,保证代码版本的管理井井有条,并在多人协作时有效地避免冲突。本文将分享一些常见的Git用法与技巧,帮助你更好地掌握Git的强大功能,并提升你在...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...