【学习记录】智能客服小桃(进度更新ing)

目录

一、系统架构

二、简单框架代码

[2.1 意图识别【判官】](#2.1 意图识别【判官】)

[2.2 咨询模式【打工1号】](#2.2 咨询模式【打工1号】)

[2.3 投诉通道【打工2号】](#2.3 投诉通道【打工2号】)

[2.4 闲聊时光【打工3号】](#2.4 闲聊时光【打工3号】)

[2.5 逻辑路由【委派任务】](#2.5 逻辑路由【委派任务】)

[2.6 用户输入](#2.6 用户输入)


一、系统架构

  • 用户输入
  • 意图识别
    • 咨询
      • 知识库检索
    • 投诉
      • 工单系统
    • 闲聊
      • 对话生成
  • 结果格式化
  • 输出响应

二、简单框架代码

2.1 意图识别【判官】

python 复制代码
"""
小桃根据用户输入判断用户诉求
引入大模型对用户输入进行分析,划分为三类:
1、咨询
2、投诉
3、闲聊
"""
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

# 1.初始化大语言模型
llm_if=ChatOpenAI(
    base_url="https://api.siliconflow.cn/v1",
    openai_api_key="sk-akvxpfqszjjtgohotfwfqhjaemigkxbgyhqfkkyzaburmukv",
    model="Qwen/Qwen2.5-7B-Instruct",
    temperature=0.5
)

# 2.意图识别
def intent(question):
    intent_prompt=ChatPromptTemplate.from_template("""
    你是经过客服培训的智能客服,现在你需要从文本的情感色彩、文字内容、用户需求等多角度分析用户输入的内容{user},\n
    根据你的分析,将用户的意图归为以下三类中的一个:\n
    第一类是咨询\n
    第二类是投诉\n
    第三类是闲聊\n
    然后直接输出咨询或投诉或闲聊
    """)
    # 构建链
    intent_chain =intent_prompt | llm_if | StrOutputParser()
    response=intent_chain.invoke({"user":question})
    return response

2.2 咨询模式【打工1号】

2.3 投诉通道【打工2号】

2.4 闲聊时光【打工3号】

python 复制代码
"""
小桃认为用户希望与她闲聊
引入大模型与用户进行聊天
"""
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate

# 1.初始化大语言模型
from intent_recognize import llm_if

def chat(user_content):
    # 与用户闲聊
    chat_prompt=ChatPromptTemplate.from_template("""
    你是一个经过培训的网店客服,现在你需要与用户进行简单的闲聊,针对用户的问题{chat_text},和用户简单的聊几句,\n
    回复内容尽量控制在50字以内,\n
    """)
    # 构建链
    chat_chain=chat_prompt|llm_if|StrOutputParser()
    response=chat_chain.invoke({"chat_text":user_content})
    return response

2.5 逻辑路由【委派任务】

python 复制代码
from chat import chat

# 定义逻辑路由
def route(info):
    # 根据小桃意图分析的结果 路由到不同的处理链
    if info=="咨询":
        print("【进入咨询模式】")
        return "待开发咨询对话"
    elif info=="投诉":
        print("【进入投诉通道】")
        return "待开发投诉对话"
    else:
        print("【开启闲聊时光】")
        response=chat(info)
        return response

2.6 用户输入

python 复制代码
from intent_recognize import intent
from route import route

def main():
    print("你好!我是优购的智能客服【小桃】,很高兴为您服务,有什么是我能帮到您的吗?")
    print("**** 输入 再见 ,将结束本次服务。****")
    while True:
        user_question=input("user:")
        if user_question=="再见":
            break
        # 模型判官
        small_peach = intent(user_question)
        print("判官:", small_peach)
        xiao_tao = route(small_peach)
        print("小桃", xiao_tao)
        print("--" * 50)

if __name__ == '__main__':
    main()

三、当前进度演示

python 复制代码
您好,亲~ 欢迎光临[优购],我是客服[小桃],很高兴为您服务!😊 请问有什么可以帮您的吗?
**** 输入 再见 ,将结束本次服务。****
user:你好
判官: 闲聊
【开启闲聊时光】
小桃 您好😊,亲,最近购物愉快吗?有什么好东西可以分享一下哦❤️
----------------------------------------------------------------------------------------------------
user:我的快递发货了吗
判官: 咨询
【进入咨询模式】
小桃 待开发咨询对话
----------------------------------------------------------------------------------------------------
user:你们给我发的商品质量太差了!
判官: 投诉
【进入投诉通道】
小桃 待开发投诉对话
----------------------------------------------------------------------------------------------------
user:再见

进程已结束,退出代码为 0
相关推荐
YF云飞20 分钟前
数据仓库进化:Agent驱动数智化新范式
数据仓库·人工智能·ai
多打代码20 分钟前
2025.09.05 用队列实现栈 & 有效的括号 & 删除字符串中的所有相邻重复项
python·算法
@CLoudbays_Martin1127 分钟前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
悠哉悠哉愿意35 分钟前
【数学建模学习笔记】机器学习分类:KNN分类
学习·机器学习·数学建模
ningmengjing_36 分钟前
理解损失函数:机器学习的指南针与裁判
人工智能·深度学习·机器学习
四谎真好看41 分钟前
Java 学习笔记(进阶篇2)
java·笔记·学习
程序猿炎义1 小时前
【NVIDIA AIQ】自定义函数实践
人工智能·python·学习
小陈phd1 小时前
高级RAG策略学习(四)——上下文窗口增强检索RAG
人工智能·学习·langchain
居然JuRan1 小时前
阿里云多模态大模型岗三面面经
人工智能
THMAIL1 小时前
深度学习从入门到精通 - BERT与预训练模型:NLP领域的核弹级技术详解
人工智能·python·深度学习·自然语言处理·性能优化·bert