【学习记录】智能客服小桃(进度更新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
相关推荐
双翌视觉6 分钟前
双翌全自动影像测量仪:以微米精度打造智能化制造
人工智能·机器学习·制造
编程小白_正在努力中41 分钟前
神经网络深度解析:从神经元到深度学习的进化之路
人工智能·深度学习·神经网络·机器学习
无风听海1 小时前
神经网络之经验风险最小化
人工智能·深度学习·神经网络
音视频牛哥1 小时前
轻量级RTSP服务的工程化设计与应用:从移动端到边缘设备的实时媒体架构
人工智能·计算机视觉·音视频·音视频开发·rtsp播放器·安卓rtsp服务器·安卓实现ipc功能
我命由我123451 小时前
微信开发者工具 - 模拟器分离窗口与关闭分离窗口
前端·javascript·学习·微信小程序·前端框架·html·js
DKPT1 小时前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
该用户已不存在2 小时前
在 Gemini CLI 中使用 Gemini 3 Pro 实操指南
人工智能·ai编程·gemini
烤汉堡2 小时前
Python入门到实战:post请求+cookie+代理
爬虫·python
东皇太星2 小时前
ResNet (2015)(卷积神经网络)
人工智能·神经网络·cnn
Main. 242 小时前
从0到1学习Qt -- 常见控件之显示类控件
qt·学习