【学习记录】智能客服小桃(进度更新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
相关推荐
im_AMBER6 分钟前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
apocalypsx20 分钟前
深度学习-深度卷积神经网络AlexNet
人工智能·深度学习·cnn
Jonathan Star34 分钟前
MediaPipe 在Python中实现人体运动识别,最常用且高效的方案是结合**姿态估计**(提取人体关键点)和**动作分类**(识别具体运动)
开发语言·python·分类
leafff12337 分钟前
一文了解LLM应用架构:从Prompt到Multi-Agent
人工智能·架构·prompt
BreezeJuvenile1 小时前
外设模块学习(17)——5V继电器模块(STM32)
stm32·单片机·嵌入式硬件·学习·5v继电器模块
山顶听风1 小时前
分页条初始化
python
一个数据大开发1 小时前
【零基础一站式指南】Conda 学习环境准备与 Jupyter/PyCharm 完全配置
学习·jupyter·conda
无风听海1 小时前
神经网络之特征值与特征向量
人工智能·深度学习·神经网络
艾莉丝努力练剑1 小时前
【C++:红黑树】深入理解红黑树的平衡之道:从原理、变色、旋转到完整实现代码
大数据·开发语言·c++·人工智能·红黑树
九章云极AladdinEdu1 小时前
论文分享 | BARD-GS:基于高斯泼溅的模糊感知动态场景重建
人工智能·新视角合成·动态场景重建·运动模糊处理·3d高斯泼溅·模糊感知建模·真实世界数据集