当前位置: 首页 > ops >正文

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

目录

一、系统架构

二、简单框架代码

2.1 意图识别【判官】

2.2 咨询模式【打工1号】

2.3 投诉通道【打工2号】

2.4 闲聊时光【打工3号】

2.5 逻辑路由【委派任务】

2.6 用户输入


一、系统架构

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

二、简单框架代码

2.1 意图识别【判官】

"""
小桃根据用户输入判断用户诉求
引入大模型对用户输入进行分析,划分为三类:
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号】

"""
小桃认为用户希望与她闲聊
引入大模型与用户进行聊天
"""
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate# 1.初始化大语言模型
from intent_recognize import llm_ifdef 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 逻辑路由【委派任务】

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

2.6 用户输入

from intent_recognize import intent
from route import routedef 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()

 三、当前进度演示

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

http://www.xdnf.cn/news/15737.html

相关文章:

  • Elastic Search 8.x 分片和常见性能优化
  • UniApp 自定义导航栏:解决安全区域适配问题的完整实践
  • 当OT遇见IT:Apache IoTDB如何用“时序空间一体化“破解工业物联网数据孤岛困局
  • 【黄山派-SF32LB52】—硬件原理图学习笔记
  • NLP中情感分析与观念分析、价值判断、意图识别的区别与联系,以及四者在实际应用中的协同
  • 疯狂星期四文案网第12天运营日报
  • 最少标记点问题:贪心算法解析
  • RabbitMQ面试精讲 Day 3:Exchange类型与路由策略详解
  • Astro:前端性能革命!从原生 HTML 到 Astro + React 的升级指南
  • Java机考题:815. 公交路线 图论BFS
  • 消息队列与信号量:System V 进程间通信的基础
  • P1816 忠诚 题解
  • Flutter基础(前端教程①④-data.map和assignAll和fromJson和toList)
  • 使用C#对象将WinRiver项目文件进行复杂的XML序列化和反序列化实例详解
  • 多模态交互视角下生成式人工智能在中小学探究式学习中的认知支架效能研究
  • 立创EDA中双层PCB叠层分析
  • 锂电池生产过程图解
  • 【OD机试】停车场收费
  • 暑假训练七
  • 【52】MFC入门到精通——(CComboBox)下拉框选项顺序与初始化不一致,默认显示项也不一致
  • Three.js与AIGC的化学反应:AI生成3D模型在实时渲染中的优化方案
  • Weavefox 图片 1 比 1 生成前端源代码
  • 基于Electron打包jar成Windows应用程序
  • LangGraph教程6:LangGraph工作流人机交互
  • [MySQL基础3] 数据控制语言DCL和MySQL中的常用函数
  • 基于Socket来构建无界数据流并通过Flink框架进行处理
  • 软考 系统架构设计师系列知识点之杂项集萃(112)
  • 根据ARM手册,分析ARM架构中,原子操作的软硬件实现的底层原理
  • LeetCode|Day19|14. 最长公共前缀|Python刷题笔记
  • 财务术语日常学习:存货跌价准备