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

✅ 所有工单处理完成!
相关推荐
大流星8 小时前
LangChainJs之基础模型(一)
javascript·langchain
AIOps打工人8 小时前
我以为 LangChain 就是调用大模型,直到我写出第一条 Chain
langchain
大模型真好玩1 天前
LangChain DeepAgents 速通指南(十)—— DeepAgents Code 智能体服务核心源码解读
人工智能·langchain·agent
花千树_0102 天前
多工具调用只是开始:用 Regnexe 构建真正会反思的 Java Agent
langchain·agent
大模型真好玩6 天前
LangChain DeepAgents 速通指南(九)—— 生产级智能体框架 DeepAgents Code 源码导读
人工智能·langchain·agent
早点睡啊8 天前
精读 LangChain 官方文档(二)Model 篇:把模型调用升级成工程化推理接口
人工智能·langchain
星始流年10 天前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
codedx10 天前
LangChain 和 LangGraph 构建的 Agent 项目模版
后端·langchain·agent
颜酱11 天前
LangGraph 入门指南
langchain
武子康12 天前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm