LangChain转换链:让数据处理更精准
创作时间:
作者:
@小白创作中心
LangChain转换链:让数据处理更精准
引用
1
来源
1.
https://developer.aliyun.com/article/1545104
LangChain中的转换链(TransformChain)是一个强大的工具,主要用于在数据发送给LLM之前进行预处理。本文将详细介绍转换链的概念、使用场景,并通过一个具体案例展示其应用。
1. 转换链的概念
在开发AI Agent(智能体)时,我们经常需要对输入数据进行预处理,这样可以更好地利用LLM。LangChain提供了一个强大的工具——转换链(TransformChain),它可以帮我们轻松实现这一任务。
转换链(TransformChain)主要是将给定的数据按照某个函数进行转换,再将转换后的结果输出给LLM。所以转换链的核心是:根据业务逻辑编写合适的转换函数。
其实,转换链的设计也很精妙,从源码可以看出,它只是做了一条链,然后具体的任务完全丢给了外部的函数来实现。在LangChain里只要是链,就可以随处链接。
2. 转换链的使用场景
转换链只有1个核心类,TransformChain。
有时,我们在将数据发送给LLM之前,希望对其做一些操作时(比如替换一些字符串、截取部分文本等等),就会用到转换链。
TransformChain在NLP中很重要,有些场景还很实用。一般使用转换链有几个固定步骤:
- 根据需求定义转换函数transform_func,入参和出参都是字典。
- 实例化转换链TransformChain。
- 因为转换链只能做内容转换的事情,后续的操作还需要LLM介入,所以需要实例化LLMChain。
- 最终通过顺序连SimpleSequentialChain将TransformChain和LLMChain串起来完成任务。
3. 使用转换链的案例
比如,给定LLM一篇很长的文章,但是我只想让LLM帮我总结文章前3自然段的内容,同时,总结之前,我还需要将自然段里的部分字段替换成给定字段。
具体代码如下:
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain, TransformChain, SimpleSequentialChain
from langchain_openai import OpenAI, ChatOpenAI
file_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,
)
# 定义LLM
model = 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)
代码执行结果符合预期。总结的结果很精通,同时也是按照给定的字符串返回的。
4. 总结
这篇博客主要介绍了LangChain中的转换链(TransformChain)的概念,它主要用在需要对输入的内容进行转换的场景下。希望对你有帮助!
热门推荐
46.06%热效率+0.2元/公里,比亚迪第五代DM技术引领插混市场
智能温控让地暖更节能:三种控制模式对比分析
两类消炎药或致血压升高,医生建议定期监测
水溶性膳食纤维:养生新宠的科学解读
2024届浙大计算机研究生秋招经历:斩获美团、百度等多家企业Offer
秋冬情绪管理,中医食疗来帮忙!
水产养殖LOGO设计:5大要素确保专业与吸引力
辽宁成立G228旅游联盟,打造中国最北海岸旅游新地标
像素风数学游戏《找数学游戏卡片》走红,寓教于乐受追捧
2022年中国供应链管理市场规模超4万亿元,智能化转型提速
告别算式依赖:名师教你如何培养孩子数学思维
“小先生行动”让学习效率提升90%,这种教育模式火了
红光二极管:LED技术的先驱
规模化猪场中合理利用种猪提高生产效益
消炎药不是万能药!使用不当或致严重健康风险
布洛芬与降压药存在风险性相互作用,医生提醒谨慎使用
达克罗宁软膏:常见皮肤问题的外用良药,这样使用最安全
海口五大美食街全攻略:从海大南门到金盘夜市
英国10月零售额仅增0.3%,能源成本飙升致消费疲软
试用期不是“白用期”:三个真实案例详解劳动权益保护
入职前必问HR:从薪资到试用期的8个关键问题
2025新版劳动合同法下,企业HR必备的试用期协议指南
紧固工具完全指南:种类、应用与安全使用要点
猪蹄筋这样选、这样洗,美容效果才最好!
秘制炖猪蹄,年夜饭必备!
京青自驾攻略:700公里行程、3500元预算,玩转泰山趵突泉
刘邦在“灞上之战”中的逆袭之路
胆囊炎患者饮用普洱茶指南:急性期禁饮,慢性期可适量
专家建议:急性胆囊炎禁饮普洱茶,慢性期可适量饮用
薄荷茶、金银花茶等七种茶饮,助力胆囊炎患者缓解症状