
一、Transform Chain
1. Transform Chain:实现快捷处理超长文本

场景示例:法律文档分析
from langchain.chains import TransformChainfrom langchain.llms import OpenAIfrom langchain.text_splitter import CharacterTextSplitter# 初始化文本分割器text_splitter = CharacterTextSplitter(separator="nn", chunk_size=1000, chunk_overlap=200)# 初始化语言模型llm = OpenAI(api_key="your_openai_api_key")# 定义Transform Chaindef text_transformer(inputs):texts = text_splitter.split_text(inputs['text'])return {'texts': texts}transform_chain = TransformChain(transformer=text_transformer, llm=llm)# 处理输入文本input_text = "这是一个超长的法律文档..."result = transform_chain.run({'text': input_text})
2. 使用Sequential Chain编排
from langchain.chains import SequentialChain# 定义后续处理链def summarizer_chain(inputs):summaries = [llm.predict(text) for text in inputs['texts']]return {'summary': "n".join(summaries)}# 创建Sequential Chainsequential_chain = SequentialChain(chains=[transform_chain, summarizer_chain])# 生成最终摘要final_result = sequential_chain.run({'text': input_text})
二、Router Chain:实现条件判断的大模型调用
1. Router Chain构建一个可定制的链路系统

场景示例:智能客服系统
from langchain.chains import MultiPromptChain, LLMChain, ConversationChainfrom langchain.prompts import PromptTemplate# 定义不同的提示信息和对应的LLMChainprompt_infos = {"tech_support": PromptTemplate(template="技术支持:{query}"),"order_query": PromptTemplate(template="订单查询:{query}")}llm_chains = {key: LLMChain(prompt=prompt, llm=llm) for key, prompt in prompt_infos.items()}default_chain = ConversationChain(llm=llm)# 创建MultiPromptChainmulti_prompt_chain = MultiPromptChain(prompt_infos=llm_chains, default_chain=default_chain)# 处理用户输入user_input = "我想查询我的订单状态"response = multi_prompt_chain.run({'query': user_input})
2. 使用LLMRouterChain实现条件判断调用
我们可以定义一个LLMRouterChain对象,该对象首先使用router_chain来决定哪个destination_chain应该被执行,如果没有合适的目标链,则默认使用default_chain。
from langchain.chains import LLMRouterChain# 定义Router Chainrouter_chain = LLMRouterChain(prompt_infos=llm_chains, default_chain=default_chain)# 根据条件判断调用适当的链response = router_chain.run({'query': user_input})


