百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

LangChain快速上手

liuian 2025-03-02 18:03 24 浏览

前言

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

安装与环境配置

  1. 系统需求

? Python 版本:>=3.9

? 推荐使用虚拟环境(如 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,运行了一个基本示例,并初步了解了核心模块的功能。接下来可以深入探索各个模块的详细应用。

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

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...