【langchain框架—组合链】利用组合链完成客服优先等级的划分

组合链作用

组合链是能够让模型按照不同的链路顺序执行,有点像工作流的概念,工作过程可以通过以下形式展示出来:
输入-> [链1] -> [链2] -> ... -> 最终输出

用到的函数

from langchain_classic.chains import SequentialChain

客服优先级划分代码实现

python 复制代码
# 组合链 将多个链的重要组件按照顺序执行: 输入-> [链1] -> [链2] -> ... -> 最终输出
from langchain_classic.chains import SequentialChain, LLMChain
from langchain_classic.prompts import PromptTemplate
from langchain_core.runnables import RunnableParallel, RunnableLambda
def classify_name(output):
    return {"classify_result":output.content}
def urgency_name(output):
    return {"urgency_result":output.content}
def extraction_name(output):
    return {"extract_result":output.content}
print("🚀 客服工单处理系统流水线")
print("=" * 60)
classification_chain = LLMChain(llm=llm, prompt=PromptTemplate.from_template("已知现有的分类标签有[订单问题,产品质量,技术问题,咨询问题,客服渠道]这5个标签,现在你需要将用户的问题:{input}分配到合适的一个标签,请直接输出标签结果"), 
                                output_key='classify_result', verbose=True)
urgency_chain = LLMChain(llm=llm, prompt=PromptTemplate.from_template("请根据当前标签划分紧急程度,高级包括订单问题,产品质量;中级包括技术问题和客服渠道;低级包括咨询问题,请直接输出高级/中级/低级中的某一个级别即可,现在标签为:{classify_result}"), 
                                output_key='urgency_result', verbose=True) 
extraction_chain = LLMChain(llm=llm, prompt=PromptTemplate.from_template("请提取用户的问题描述,总结用户核心的问题。用户问题为{input},请总结核心问题"), 
                                output_key='extract_result', verbose=True) 
custom_service_pipeline = SequentialChain(chains=[classification_chain, urgency_chain, extraction_chain], input_variables=['input'], output_variables=['classify_result', 'urgency_result','extract_result'], verbose=True)
customer_issues = [
    "我的订单 #12345 还没发货,已经过了承诺的3天发货时间了,我很着急!",
    "昨天刚买的手机屏幕有裂痕,我要退货退款!",
    "你们的APP闪退问题什么时候能修复?已经持续一周了",
    "我想咨询一下VIP会员的特权有哪些?",
    "客服电话一直打不通,有没有其他联系方式?"
]
for i, issue in enumerate(customer_issues, 1):
    print(f"\n{'='*60}")
    print(f"处理工单 #{i}:")
    print(f"问题: {issue}")
    print(f"{'-'*60}")
    result = custom_service_pipeline({"input": issue})
    print(f"📋 分类: {result['classify_result']}")
    print(f"🚨 紧急程度: {result['urgency_result']}")
    print(f"📝 提取信息: {result['extract_result']}")
    print(f"{'='*60}")
print("\n✅ 所有工单处理完成!")

输出结果可视化

powershell 复制代码
处理工单 #1:
问题: 我的订单 #12345 还没发货,已经过了承诺的3天发货时间了,我很着急!
------------------------------------------------------------
/www/learning_langchain/./langchain_leaning1.py:102: LangChainDeprecationWarning: The method `Chain.__call__` was deprecated in langchain-classic 0.1.0 and will be removed in 1.0. Use `invoke` instead.
  result = custom_service_pipeline({"input": issue})


> Entering new SequentialChain chain...


> Entering new LLMChain chain...
Prompt after formatting:
已知现有的分类标签有[订单问题,产品质量,技术问题,咨询问题,客服渠道]这5个标签,现在你需要将用户的问题:我的订单 #12345 还没发货,已经过了承诺的3天发货时间了,我很着急!分配到合适的一个标签,请直接输出标签结果

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请根据当前标签划分紧急程度,高级包括订单问题,产品质量;中级包括技术问题和客服渠道;低级包括咨询问题,请直接输出高级/中级/低级中的某一个级别即可,现在标签为:订单问题

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请提取用户的问题描述,总结用户核心的问题。用户问题为我的订单 #12345 还没发货,已经过了承诺的3天发货时间了,我很着急!,请总结核心问题

> Finished chain.

> Finished chain.
📋 分类: 订单问题
🚨 紧急程度: 高级
📝 提取信息: 用户的核心问题是:订单#12345超过了承诺的3天发货时间还未发货,用户对此感到着急。
============================================================

============================================================
处理工单 #2:
问题: 昨天刚买的手机屏幕有裂痕,我要退货退款!
------------------------------------------------------------


> Entering new SequentialChain chain...


> Entering new LLMChain chain...
Prompt after formatting:
已知现有的分类标签有[订单问题,产品质量,技术问题,咨询问题,客服渠道]这5个标签,现在你需要将用户的问题:昨天刚买的手机屏幕有裂痕,我要退货退款!分配到合适的一个标签,请直接输出标签结果

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请根据当前标签划分紧急程度,高级包括订单问题,产品质量;中级包括技术问题和客服渠道;低级包括咨询问题,请直接输出高级/中级/低级中的某一个级别即可,现在标签为:产品质量

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请提取用户的问题描述,总结用户核心的问题。用户问题为昨天刚买的手机屏幕有裂痕,我要退货退款!,请总结核心问题

> Finished chain.

> Finished chain.
📋 分类: 产品质量
🚨 紧急程度: 高级
📝 提取信息: 用户的核心问题是:新购买的手机屏幕出现裂痕,要求退货退款。
============================================================

============================================================
处理工单 #3:
问题: 你们的APP闪退问题什么时候能修复?已经持续一周了
------------------------------------------------------------


> Entering new SequentialChain chain...


> Entering new LLMChain chain...
Prompt after formatting:
已知现有的分类标签有[订单问题,产品质量,技术问题,咨询问题,客服渠道]这5个标签,现在你需要将用户的问题:你们的APP闪退问题什么时候能修复?已经持续一周了分配到合适的一个标签,请直接输出标签结果

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请根据当前标签划分紧急程度,高级包括订单问题,产品质量;中级包括技术问题和客服渠道;低级包括咨询问题,请直接输出高级/中级/低级中的某一个级别即可,现在标签为:技术问题

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请提取用户的问题描述,总结用户核心的问题。用户问题为你们的APP闪退问题什么时候能修复?已经持续一周了,请总结核心问题

> Finished chain.

> Finished chain.
📋 分类: 技术问题
🚨 紧急程度: 中级
📝 提取信息: 用户的核心问题是:你们的APP存在闪退问题,这种情况已经持续了一周时间,用户希望知道这个问题什么时候能够得到修复。
============================================================

============================================================
处理工单 #4:
问题: 我想咨询一下VIP会员的特权有哪些?
------------------------------------------------------------


> Entering new SequentialChain chain...


> Entering new LLMChain chain...
Prompt after formatting:
已知现有的分类标签有[订单问题,产品质量,技术问题,咨询问题,客服渠道]这5个标签,现在你需要将用户的问题:我想咨询一下VIP会员的特权有哪些?分配到合适的一个标签,请直接输出标签结果

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请根据当前标签划分紧急程度,高级包括订单问题,产品质量;中级包括技术问题和客服渠道;低级包括咨询问题,请直接输出高级/中级/低级中的某一个级别即可,现在标签为:咨询问题

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请提取用户的问题描述,总结用户核心的问题。用户问题为我想咨询一下VIP会员的特权有哪些?,请总结核心问题

> Finished chain.

> Finished chain.
📋 分类: 咨询问题
🚨 紧急程度: 低级
📝 提取信息: 用户的核心问题是:VIP会员有哪些特权?
============================================================

============================================================
处理工单 #5:
问题: 客服电话一直打不通,有没有其他联系方式?
------------------------------------------------------------


> Entering new SequentialChain chain...


> Entering new LLMChain chain...
Prompt after formatting:
已知现有的分类标签有[订单问题,产品质量,技术问题,咨询问题,客服渠道]这5个标签,现在你需要将用户的问题:客服电话一直打不通,有没有其他联系方式?分配到合适的一个标签,请直接输出标签结果

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请根据当前标签划分紧急程度,高级包括订单问题,产品质量;中级包括技术问题和客服渠道;低级包括咨询问题,请直接输出高级/中级/低级中的某一个级别即可,现在标签为:客服渠道

> Finished chain.


> Entering new LLMChain chain...
Prompt after formatting:
请提取用户的问题描述,总结用户核心的问题。用户问题为客服电话一直打不通,有没有其他联系方式?,请总结核心问题

> Finished chain.

> Finished chain.
📋 分类: 客服渠道
🚨 紧急程度: 中级
📝 提取信息: 用户的核心问题是:客服电话无法接通,询问是否有其他联系方式。
============================================================

✅ 所有工单处理完成!
相关推荐
是一碗螺丝粉16 小时前
5分钟上手LangChain.js:用DeepSeek给你的App加上AI能力
前端·人工智能·langchain
是一碗螺丝粉16 小时前
LangChain 核心组件深度解析:模型与提示词模板
前端·langchain·aigc
大模型真好玩1 天前
大模型训练全流程实战指南工具篇(七)——EasyDataset文档处理流程
人工智能·langchain·deepseek
勇气要爆发2 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
勇气要爆发2 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain
SunnyRivers2 天前
LangChain中间件详解
中间件·langchain
fish_study_csdn3 天前
LangChain学习二:LangChain使用之Model I/O
langchain·大模型·ai agent
ZaneAI3 天前
🚀 Claude Agent SDK 使用指南:文件检查点与回退 (File Checkpointing)
langchain·agent·claude
chaors3 天前
Langchain入门到精通0x00:hello Langchain
人工智能·langchain·aigc