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

✅ 所有工单处理完成!
相关推荐
有点笨的蛋3 小时前
LangChain 入门与实践:从 LLM 调用到 AI 工作流的工程化思维
前端·langchain
工藤学编程3 小时前
AI Ping 赋能:基于 GLM-4.7(免费!)+ LangChain + Redis 打造智能AI聊天助手
人工智能·redis·langchain
啊吧怪不啊吧3 小时前
新品限免|国产大模型工程化实战:GLM-4.7与MiniMax M2.1 免费选型对比
人工智能·机器学习·langchain
闻道且行之4 小时前
NLP 部署实操:Langchain-Chatchat 完整部署教程与踩坑记录
人工智能·自然语言处理·langchain
xhxxx17 小时前
别再让 AI 自由发挥了!用 LangChain + Zod 强制它输出合法 JSON
前端·langchain·llm
San30.19 小时前
从零到一:开启 LangChain 的 AI 工程化之旅
人工智能·langchain·node.js
kimi-2221 天前
create_tool_calling_agent、create_react_agent区别
langchain
大模型教程1 天前
大模型LLM入门篇:小白入门一文快速了解大模型(附教程)
langchain·llm·agent
用户12039112947261 天前
从零上手 LangChain:用 JavaScript 打造强大 AI 应用的全流程指南
javascript·langchain·llm