当前位置:首页 > 科技  > 软件

LangChain转换链:让数据处理更精准

来源: 责编: 时间:2024-06-25 17:15:04 227观看
导读上篇文章《5分钟了解LangChain的路由链》里主要介绍了路由链,核心类是LLMRouterChain和MultiPromptChain。本文介绍LangChain里的另外1个重要的链:转换链。转换链的概念在开发AI Agent(智能体)时,我们经常需要对输入数据进

上篇文章《5分钟了解LangChain的路由链》里主要介绍了路由链,核心类是LLMRouterChain和MultiPromptChain。本文介绍LangChain里的另外1个重要的链:转换链。yU928资讯网——每日最新资讯28at.com

yU928资讯网——每日最新资讯28at.com

转换链的概念

在开发AI Agent(智能体)时,我们经常需要对输入数据进行预处理,这样可以更好地利用LLM。LangChain提供了一个强大的工具——转换链(TransformChain),它可以帮我们轻松实现这一任务。yU928资讯网——每日最新资讯28at.com

转换链(TransformChain)主要是将 给定的数据 按照某个函数进行转换,再将 转换后的结果 输出给LLM。 所以转换链的核心是:根据业务逻辑编写合适的转换函数。yU928资讯网——每日最新资讯28at.com

其实,转换链的设计也很精妙,从源码可以看出,它只是做了一条链,然后具体的任务完全丢给了外部的函数来实现。在LangChain里只要是链,就可以随处链接。yU928资讯网——每日最新资讯28at.com

yU928资讯网——每日最新资讯28at.com

转换链的使用场景

转换链只有1个核心类,TransformChain。yU928资讯网——每日最新资讯28at.com

有时,我们在将数据发送给LLM之前,希望对其做一些操作时(比如替换一些字符串、截取部分文本等等),就会用到转换链。TransformChain 在 NLP 中很重要,有些场景还很实用。yU928资讯网——每日最新资讯28at.com

一般使用转换链有几个固定步骤:yU928资讯网——每日最新资讯28at.com

  • 根据需求定义转换函数transform_func,入参和出参都是字典。
  • 实例化转换链TransformChain。
  • 因为转换链只能做内容转换的事情,后续的操作还需要LLM介入,所以需要实例化LLMChain。
  • 最终通过顺序连SimpleSequentialChain将TransformChain和LLMChain串起来完成任务。

使用转换链的案例

比如,给定LLM一篇很长的文章,但是我只想让LLM帮我总结文章前3自然段的内容,同时,总结之前,我还需要将自然段里的 部分字段 替换成 给定字段。yU928资讯网——每日最新资讯28at.com

具体代码如下:yU928资讯网——每日最新资讯28at.com

from langchain.prompts import PromptTemplatefrom langchain.chains import LLMChain, TransformChain, SimpleSequentialChainfrom langchain_openai import OpenAI, ChatOpenAIfile_content = ""with open("./file_data.txt", "r") as file:    file_content = file.read()# 定义转换函数,截取文章前8段,再替换部分字符串def transform_func(data):    text = data["input_text"]    shortened_text = "/n".join(text.split("/n")[:7])    transform_shortened_text: str = shortened_text.replace(        "PVC", "PersistentVolumeClaim"    ).replace("PV", "PersistentVolume")    return {"output_text": transform_shortened_text}# 定义转换链transform_chain = TransformChain(    input_variables=["input_text"],    output_variables=["output_text"],    transform=transform_func,)# 定义LLMmodel = ChatOpenAI(    model_name="gpt-3.5-turbo",    openai_api_key="sk-xxxxxx",    openai_api_base="https://api.302.ai/v1",)# 定义提示词模板 和 LLM链prompt_template = """请你对下面的文字进行总结:{output_text}总结:"""prompt = PromptTemplate(input_variables=["output_text"], template=prompt_template)llm_chain = LLMChain(    llm=model,    prompt=prompt,)# 使用顺序链连接起来final_chain = SimpleSequentialChain(chains=[transform_chain, llm_chain])res = final_chain.run(file_content)print(res)

代码执行结果符合预期。总结的结果很精通,同时也是按照给定的字符串返回的。yU928资讯网——每日最新资讯28at.com

总结

这篇博客主要介绍了LangChain中的转换链(TransformChain)的概念,它主要用在需要对输入的内容进行转换的场景下。希望对你有帮助!yU928资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-96420-0.htmlLangChain转换链:让数据处理更精准

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Java 流式编程的七个必学技巧

下一篇: 一键掌握:Python 函数声明与调用的 20 个优秀实践

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • K60至尊版刚预热 一加Ace2 Pro正面硬刚

    Redmi这边刚如火如荼的宣传了K60 Ultra的各种技术和硬件配置,作为竞品的一加也坐不住了。一加中国区总裁李杰发布了两条微博,表示在自家的一加Ace2上早就已经采用了和PixelWo
  • 8月总票房已突破10亿!《封神》第一:口碑已经成了

    8月5日消息,据灯塔专业版数据,截至8月5日9时35分,8月总票房(含预售)已突破10亿。其中,《封神》以大比分的优势领先。根据官方消息,目前该片总票房已经超过14.
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    日前iQOO手机官方宣布,新一代电竞旗舰iQOO 11S将会在7月4日19:00正式与大家见面。随着发布时间的日益临近,官方关于该机的预热也更加密集,截至目前已
Top