首页 > 其他分享 >为何选择Spring AI Alibaba开发智能客服平台?

为何选择Spring AI Alibaba开发智能客服平台?

时间:2024-11-09 20:46:48浏览次数:1  
标签:机票 AI Spring 用户 Alibaba 应用 改签

0 前言

本文来看如何使用Spring AI Alibaba构建Agent应用。

1 需求

智能客服平台,可帮助用户完成机票预定、问题解答、机票改签、取消等动作,具体要求:

  • 基于 AI 大模型与用户对话,理解用户自然语言表达的需求
  • 支持多轮连续对话,能在上下文中理解用户意图
  • 理解机票操作相关的术语与规范并严格遵守,如航空法规、退改签规则等
  • 在必要时可调用工具辅助完成任务

2 技术架构

2.1 接入AI大模型

不过是用 Spring Boot 开发普通 Java 应用,要能持续接收用户提问,解决机票相关问题,叫它Agent应用是因为这应用可与 AI 交互,由 AI 帮助应用理解用户问题并为用户做决策,简化分解后的架构:

2.2 利用RAG增加机票退改签规则

应用由 AI 模型理解用户问题,决策下一步动作、驱动业务流程。但任一通用大模型都能解决机票相关问题吗?依赖模型的决策是可靠的吗?如有用户提出机票改签的诉求,模型一定能很好理解用户意图,没疑问。但:

  • 它咋知当前用户符不符合退票规则?毕竟每个航空公司改签规则都不同
  • 它咋知改签手续费的规定?在这样一个可能带来经济纠纷、法律风险的应用场景下,AI模型必须要知道改签规则的所有细节,并逐条确认用户信息复合规则后,才能最终作出是否改签的决策

显然,单纯依赖 AI 模型本身不能满足需求,就要用到RAG模式。通过 RAG 将机票退改签相关领域知识输入给应用和 AI 模型,让 AI 结合这些规则与要求辅助决策,增加 RAG 后的架构:

有了RAG,应用才真正成为智能化的机票问题专家,就像一个经公司业务培训的客服代表,既能人性化与用户对话,又能根据规则引导用户行为。

2.3 使用Function Calling执行业务动作

AI Agent可帮应用理解用户需求并决策,但没法代替应用完成决策执行,决策执行还是要由应用自己完成,这点和传统应用无区别,不论智能化的还是预先编排好的应用,都是要由应用本身去调用函数修改数据库记录实现数据持久化。

通过 Spring AI 框架,可将模型的决策转换为对某个具体函数的调用,从而完成机票的最终改签或者退票动作,将用户数据写入数据库,即Function Calling模式。

2.4 使用 Chat Memory 增加多轮对话能力

大模型是无状态的,它看到的只有当前这轮对话的内容。因此若要支持多轮对话效果,需应用每次都将之前对话上下文保留,并与最新问题一并作为 prompt 发送给模型。这时,我们可以利用 Spring AI Alibaba 提供的内置 Conversation Memory 支持,方便的维护对话上下文。

至此,让我们总结在这个智能客服平台应用使用到的

3 Spring AI Alibaba 核心能力

  1. 基本模型对话能力,通过 Chat Model API 与通义模型交互
  2. Prompt 管理能力
  3. Chat Memory 聊天记忆,支持多轮对话
  4. RAG、Vector Store,机票预定、改签、退票等相关规则

4 使用 ChatClient 完成编码

Spring AI Alibaba 不止提供了以上原子能力抽象,还提供了高阶 “智能体” API 抽象 ChatClient,让我们可以非常方便的使用流式 Fluent API 把多个组件组装起来,成为一个AI Agent。

具体使用:

this.chatClient = modelBuilder
        .defaultSystem("""
            您是“Funnair”航空公司的客户聊天支持代理。请以友好、乐于助人且愉快的方式来回复。
             您正在通过在线聊天系统与客户互动。
             在提供有关预订或取消预订的信息之前,您必须始终
             从用户处获取以下信息:预订号、客户姓名。
             在询问用户之前,请检查消息历史记录以获取此信息。
             在更改预订之前,您必须确保条款允许这样做。
             如果更改需要收费,您必须在继续之前征得用户同意。
             使用提供的功能获取预订详细信息、更改预订和取消预订。
             如果需要,可以调用相应函数调用完成辅助动作。
             请讲中文。
             今天的日期是 {current_date}.
          """)
        .defaultAdvisors(
            new PromptChatMemoryAdvisor(chatMemory), // Chat Memory
            new VectorStoreChatMemoryAdvisor(vectorStore)),
            new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()), // RAG
            new LoggingAdvisor())
        .defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking") // FUNCTION CALLING

        .build();

这样ChatClient就为我们屏蔽了所有与大模型交互的细节,只需要把ChatClient注入常规的 Spring Bean 就可以为我们的机票应用加入智能化能力了。

5 运行效果

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

本文由博客一文多发平台 OpenWrite 发布!

标签:机票,AI,Spring,用户,Alibaba,应用,改签
From: https://www.cnblogs.com/JavaEdge/p/18537253

相关文章

  • SpringBoot信息工程学院学生社团一站是式管理平台c5wdb程序+源码+数据库+调试部署+开
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义在信息工程学院,学生社团作为校园文化的重要组成部分,不仅丰富了学生的课余生活,还促进了学生综合素质的提升和专业技能的拓展。然......
  • 思通数科AI平台在智慧城市地面垃圾分类中的项目案例分享
    一、系统概述在当今的城市环境管理中,垃圾分类与识别已成为推动环保与资源回收的重要手段。然而,传统的人工垃圾分类方法耗时、效率低,且容易出错,严重制约了垃圾处理的精细化与可持续发展。思通数科的AI平台专注于解决这一行业痛点。我们的系统通过深度学习和计算机视觉技术,能够精准......
  • 特朗普重点关注人工智能,我国的AI知识库行业有何机遇和挑战?
    近年来,人工智能(AI)技术的迅猛发展已经成为全球科技竞争的焦点。在美国,特朗普曾多次表示对人工智能技术的重视,并计划加大在该领域的投资,以巩固美国的科技领先地位。这一趋势不仅影响了国际科技格局,也为我国AI知识库行业带来了新的机遇和挑战。一、特朗普对人工智能的关注特......
  • 【Java项目】基于SpringBoot的【生鲜交易系统】
    技术简介:系统软件架构选择B/S模式、java技术和MySQL数据库等,总体功能模块运用自顶向下的分层思想。系统简介:考虑到实际生活中在生鲜交易方面的需要以及对该系统认真的分析,将系统权限按管理员,用户这两类涉及用户划分。(a)管理员;管理员使用本系统涉到的功能主要有:首页,个人......
  • AI产品独立开发变现实战营,删掉程序员的焦虑和精神内耗
    课程背景在经济下行和外部就业压力增大的背景下,为解决程序员的焦虑、失业和被裁员,我们开始了这门课程,课程基于3个真实已经盈利的商业项目,从0到1带你实践AI产品的设计、开发、运营和盈利模式的全流程开发。无论你是编程新手还是有经验的开发者,本课程都将引导你一步步构建自......
  • 基于Java+SpringBoot心理测评心理测试系统功能实现十
    免费下载:[猿来入此]一、前言介绍:1.1项目摘要心理测评和心理测试系统在当代社会中扮演着越来越重要的角色。随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态、诊断心理问题、制定心理治疗方案的工具,其需求和应用范围不断扩大。首先,现代社会节奏快速,......
  • spring整合mybatis解析(黑马SSM-26)
    spring整合mybatis文章目录spring整合mybatis前言一、核心对象分析1.环境准备数据库的创建项目创建(1)配置文件的创建及配置pom.xml文件的配置SqlMapConfig.xml文件的配置jdbc.properties文件的配置(2)相关类的创建模块目录:dao接口的创建domain类的创建service类的创建serv......
  • 对于spring的核心容器的理解(黑马SSM)
    对于spring的核心容器的理解(黑马SSM)文章目录对于spring的核心容器的理解(黑马SSM)对于我们spring的核心容器主要分三个部分:容器相关:BeanFactory:ApplicationContext:FileSystemXmlApplicationContext:ClassPathXmlApplicationContext:Bean相关:Bean的创建:Bean的属性依赖注......
  • MMPRETRAIN训练自己数据集全流程
    本文主要对mmpretrain训练自己数据集进行了一个分布讲解1、训练环境配置mmpretrain下载路径:open-mmlab/mmpretrainatv1.2.0环境配置具体内容在下述文章中有具体讲解:MMPRETRAIN安装环境配置指南_mmpretrain的安装-CSDN博客2、划分自己的数据集数据集划分代码及讲解在下述......
  • 基于SpringBoot动物之家平台的设计与实现
    博主主页:一点源码博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计,SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Python、Nodejs、小程序、安卓app、大数据等设计与开发......