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

✅ 所有工单处理完成!
相关推荐
Csvn1 天前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
InKomorebi1 天前
LangChain Tools:BaseTool/Callable/Runnable 核心类型 | 三种工具定义方式 | 串行与并行调用 | 错误处理与重试降级
langchain
怕浪猫1 天前
第10章 RAG(检索增强生成)系统构建(LangChain实战)
langchain·aigc·ai编程
阿捞21 天前
python-langchain框架(3-20-智能问答ZeroShot_ReAct Agent 从零搭建)
python·react.js·langchain
qyhua1 天前
开源推荐 | ModelX RAG:基于 LangChain + Ollama 的企业级知识库系统
python·langchain·开源
斯外戈的小白2 天前
【Agent】LangChain 1.0架构
架构·langchain
tkevinjd2 天前
基于LangChain的简易智能旅游助手Agent
langchain·agent
liu****2 天前
LangChain-AI应用开发框架(七)
人工智能·python·langchain·大模型应用·本地部署大模型
秦jh_2 天前
【LangChain】大模型介绍
langchain
InKomorebi2 天前
LangChain Agent 中间件完全指南:六种钩子函数从入门到生产(附完整教学代码)
langchain