【可能是全网最丝滑的LangChain教程】二十、LangChain进阶之Chains

news2024/9/24 15:26:44

我们笑着说再见,却深知再见遥遥无期。

01 Chain介绍

在LangChain 中,“Chain” 是指一系列可以串联起来执行特定任务的组件或模型。这些链条可以包括预处理、模型调用、后处理等步骤,它们共同工作以完成一个复杂的语言处理任务。

咱说点人话:Chain 是对我们之前介绍的一系列组件(LLM、Retrieval、Output parsers…)的组合与调用。

如果没有Chain我们能不能实现这些功能?答案是可以!因为再怎么花里胡哨,给到LLM的都是文本或者说都是矢量。(这里还是要提一嘴,技术还是要学到本质~)

02 基本使用

既然是基本使用,这里我们以LLMChain为例。

from langchain import OpenAI, PromptTemplate, LLMChain

# 创建一个提示模板
template = "帮我起一个最好的公司名,要求名字寓意好,与产品相关,这个公司是生产{product}的。"
prompt = PromptTemplate(input_variables=["product"], template=template)

# 初始化语言模型
llm = OpenAI(temperature=0.9)

# 创建 LLMChain
chain = LLMChain(llm=llm, prompt=prompt)

# 运行 Chain
result = chain.run(product="智能手表")
print(result)

03 LangChain内置Chain介绍

之所以有内置的Chain,目的就是为了简化LangChain的使用,将一些可能常用的LLM使用场景封装成Chain,开箱即用,简单方便~

create_stuff_documents_chain

该链获取文档列表并将它们全部格式化为提示,然后将该提示传递给 LLM。它传递所有文档,因此应该确保它适合正在使用的 LLM 的上下文窗口。

create_sql_query_chain

用于从自然语言构造 SQL 数据库的查询。

create_history_aware_retriever

该链接收对话历史记录,然后使用它来生成搜索查询,该查询将传递给底层检索器。

create_retrieval_chain

该链接收用户查询,然后将其传递给检索器以获取相关文档。然后,这些文档(和原始输入)被传递给 LLM 以生成响应。

load_qa_with_sources_chain

对传递的文件进行问题解答,并引用其来源。如果希望答案响应在文本响应中包含源,请使用此选项。当想要直接传入文档(而不是依赖检索器来获取文档)时,请使用 RetrievalQAWithSourcesChain。

load_summarize_chain

用于总结文档。

RetrievalQA

该链首先执行检索步骤以获取相关文档,然后将这些文档传递到 LLM 中以生成响应。

RetrievalQAWithSourcesChain

对检索到的文件进行问答,并引用其来源。如果希望答案响应在文本响应中包含源,请使用此选项。当想使用检索器将相关文档作为链的一部分(而不是传入它们)时,请使用 load_qa_with_sources_chain。

QAGenerationChain

从文档创建问题和答案。用于生成用于评估检索项目的问答对。

04 总结

LangChain 的 Chains 模块是一系列调用的序列,可以涉及 LLM(大型语言模型)、工具或数据预处理步骤。

基于LangChain内置的一些预定义Chain,我们可以非常方便的创建我们的AI应用。比如总结文档、知识库问答等等。但是本篇文章并没有涉及代码的输出,各位在使用的时候还是要自己去看下相关文档,锻炼一下自己阅读源码的能力~为防止有些同学实在需要代码,我这里贴了一部分代码截图,如下:

在这里插入图片描述

如果能帮我点个免费的关注,那就是对我个人的最大的肯定。如果觉得写的还行,分享一下也是我生活的小确幸~

以上内容依据官方文档编写,官方地址:https://python.langchain.com/docs/modules/chains

Peace Guys~

在这里插入图片描述

  • 【LangChain进阶教程】十二、LangChain进阶之Agents
  • 【LangChain进阶教程】十一、LangChain进阶之Tools
  • 【LangChain进阶教程】十、LangChain进阶之Retrievers
  • 【LangChain进阶教程】九、LangChain进阶之Vector Stores

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2033674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3:svgicon的使用的整体步骤

1:在src下创建icons文件放入svg文件的icon,并切创建index.js, 来处理icon 主要创建:1:src/icons/svg/svg格式icon 2:src/icons/index.js 2:src/icons/index.js 写入代码如下(注释比较明确&#…

【数据结构】六、图:5.图的最小生成树MST(普里姆(Prim)算法、克鲁斯卡尔(Kruskal)算法、Boruvka 算法)

2.最小生成树MST 文章目录 2.最小生成树MST2.1 普里姆(Prim)算法算法思路 2.2 克鲁斯卡尔(Kruskal)算法算法思路 2.3 Boruvka 算法2.3.1基本原理2.3.2基本过程 一个图可以有多个生成树,我们定义无向连通图的 最小生成树(Minimum Spanning Tree&#xff…

PHP餐厅点餐系统小程序源码

🍽️【餐厅点餐新纪元,点餐系统让用餐更便捷!】📱 🔍 一键浏览,菜单尽在掌握 📱 走进餐厅,无需再担心找不到服务员或菜单被抢光!餐厅点餐系统让你轻松扫描桌上的二维码…

机器学习笔记:门控循环单元的建立

目录 介绍 结构 模型原理 重置门与更新门 候选隐状态 输出隐状态 模型实现 引入数据 初始化参数 定义模型 训练与预测 简洁实现GRU 思考 介绍 门控循环单元(Gated Recurrent Unit,简称GRU)是循环神经网络一种较为复杂的构成形式…

轻量级的灰度配置平台|得物技术

一、前言 随着近几年得物的业务和技术的快速发展,我们不管是在面向C端场景还是B端供应链;业务版本的迭代更新,技术架构的不断升级;不管是业务稳定性还是架构稳定性,业务灰度的能力对我们来说都是一项重要的技术保障&a…

x264 编码器 PSNR算法源码分析

PSNR PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)是一种常用的图像质量评价指标,用于衡量图像或视频的清晰度和质量。PSNR是基于信号的最大可能功率与影响信号的噪声功率之间的比率。在图像处理领域,PSNR通常用来评估图像压缩或图像增强算法的效果。 PSNR的计算公式是…

思科CCNP最新考证流程

CCNP CCNP全称思科网络高级工程师认证(Cisco Certified Network Professional),是Cisco思科认证中的中级认证。获得ccnp证书表示着资深网络工程师具有对100个节点到超过500个节点的融合局域网和广域网进行安装、配置和故障排除的能力。能够管…

LeetCode257 二叉树的所有路径

前言 题目: 257. 二叉树的所有路径 文档: 代码随想录——二叉树的所有路径 编程语言: C 解题状态: 没思路,简单题强度好高… 思路 本题利用了递归加回溯的思路。 这道题目要求从根节点到叶子的路径,所以需…

一个Indie Hacker的微SaaS技术栈

如今,可用的技术非常多,我们每个月都会看到各种新的 JS 框架发布,有时,如果你一开始没有选择正确的技术堆栈,以后扩展起来就会很困难。因此,在今天的文章中,我将与你分享我用于开发微型 SaaS 的…

vue使用富文本编辑器+自由伸缩图片

首先要下载依赖,下方是本人使用的package.json,下载完依赖如果有启动项目失败的情况,建议将依赖版本降低或使用和下方一样的版本 package.json代码 {"name": "l","version": "0.1.0","privat…

Linux中线程常用接口(创建,等待,退出,取消)

pthread_create #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); Compile and link with -pthread. 编译时应注意。 #include<iostream> #in…

使用Playwright解决reCAPTCHA的分步指南

您是否在您的网络爬虫中遇到过CAPTCHA&#xff1f;许多网站使用CAPTCHA系统&#xff08;最常见的是reCAPTCHA&#xff09;来防止自动化访问。但是&#xff0c;本文将指导您使用Playwright&#xff08;一种强大的浏览器自动化工具&#xff09;和CapSolver&#xff08;一个设计用…

# 利刃出鞘_Tomcat 核心原理解析(二)

利刃出鞘_Tomcat 核心原理解析&#xff08;二&#xff09; 一、 Tomcat专题 - Tomcat架构 - HTTP工作流程 1、Http 工作原理 HTTP 协议&#xff1a;是浏览器与服务器之间的数据传送协议。作为应用层协议&#xff0c;HTTP 是基于 TCP/IP 协议来传递数据的&#xff08;HTML文件…

AI 的偏见来自数据集,而数据集的偏见来自人类 | Open AGI Forum

作者 | Annie Xu 采访、责编 | Eric Wang 出品丨GOSIM 开源创新汇 Richard Vencu&#xff0c;现任 Stability AI 机器学习运维负责人、LAION 工程负责人兼创始人&#xff0c;他的人生可谓十分精彩。 已过知天命之年的他是个中国通&#xff0c;极其热爱中国的武术、茶叶、诱人…

BugKu CTF Misc:被勒索了 disordered_zip simple MQTT 请攻击这个压缩包

前言 BugKu是一个由乌云知识库&#xff08;wooyun.org&#xff09;推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。 BugKu旨在提供一个实践和学习网络安全的平台&#xff0c;供安全爱好者和渗透测试人员进行挑战和练习。它包含了…

03. 剑指offer刷题-二叉树篇(第二部分)

class Solution { public:TreeNode* Convert(TreeNode* pRootOfTree) {if(pRootOfTree nullptr) return nullptr;vector<TreeNode*> cur traversal(pRootOfTree);return cur[0];}// 这道题需要用到「分解问题」的思维&#xff0c;想把整棵链表&#xff0c;可以先把左右…

[upload]-做题笔记

项目下载地址&#xff1a;https://github.com/c0ny1/upload-labs 第一关 查看源代码&#xff0c;可以看到是前端js限制上传jpg,png,gif后缀文件 function checkFile() {var file document.getElementsByName(upload_file)[0].value;if (file null || file "") …

Unity读取Android外部文件

最近近到个小需求,需要读Android件夹中的图片.在这里做一个记录. 首先读写部分,这里以图片为例子: 一读写部分 写入部分: 需要注意的是因为只有这个地址支持外部读写,所以这里用到的地址都以 :Application.persistentDataPath为地址起始. private Texture2D __CaptureCamera…

促进服务消费高质量发展虽好,但不能缺钱

近日&#xff0c;国务院印发《关于促进服务消费高质量发展的意见》&#xff0c;提出6方面20项重点任务。 百度图片&#xff1a;2024讲党课ppt国务院关于促进服务消费高质量发展​ 一是挖掘餐饮住宿、家政服务、养老托育等基础型消费潜力&#xff1b; 二是激发文化娱乐、旅游、…

Upload 上传图标不显示

el-upload如果在使用 Element UI 的 <el-upload> 组件时上传图标不显示&#xff0c;可能是由几个不同的原因造成的。以下是一些排查和解决这个问题的步骤&#xff1a; 如果在使用 Element UI 的 <el-upload> 组件时上传图标不显示&#xff0c;可能是由几个不同的原…