基于大语言模型的多意图增强搜索

随着人工智能技术的蓬勃发展,大语言模型(LLM)如Claude等在多个领域展现出了卓越的能力。如何利用这些模型的语义分析能力,优化传统业务系统中的搜索性能是个很好的研究方向。

在传统业务系统中,数据匹配和检索常常面临诸多挑战,例如用户使用门槛高、业务变化适应性差以及搜索匹配效果不佳。生成式AI的出现为这些问题提供了新的解决方案。

传统搜索系统的局限

  • 用户的使用门槛较高,必须了解系统提供的查询的每个条件的含义,还需要了解不同条件的组合方式。结构化的查询,无法适应自然语言的模式,也很难贴近人的自然想法,例如查询上海徐汇区有哪些三甲医院,传统查询模式,你必须要分解成多个不同的条件:省市、区域、机构类型、机构级别等。显然用户必须要熟悉和符合业务系统要求,非常不方便。
  • 很难适应业务变化,当业务对象发生变化的时候,需要增加和修改条件,就必然导致整个 UI 的变化和修改,开发成本上升。
  • 传统搜索算法,无法通过语义层面进行分析和理解,导致匹配和搜索效果不佳,例如系统记录里有一家北京 306 医院,如果用户输入三零六可能就无法匹配到这家医院,从而无法查询到结果。再例如:系统记录里有一家虹桥医院,如果用户输入拼音 hongqiao
    hospital ,传统系统也无法应对这种查询。甚至有时候多几个空格也会导致搜索结果出错。

大语言模型的优化方案

意图识别与智能匹配

利用大语言模型如Claude,我们可以对用户输入进行意图识别,并智能匹配相关数据。这一过程主要分为两个部分:

  1. 意图识别:通过语义分析能力,识别用户输入的意图,并进行格式化输出。
  2. 匹配处理:根据识别的意图,选择适当的检索方式,如传统RAG模式或Text2SQL。

方案架构

基于Amazon的解决方案架构,构建一个智能检索系统。

当然,可以更进一步对不同的文件进行类别划分,利用意图分类器提高应答得准确率。
在这里插入图片描述

实践案例

多意图识别

以下是一个多意图识别的代码示例,展示如何根据用户问题生成JSON格式的结果:

def intent_recognizer(user_question):intents = {"search_name": "只查询机构名称","search_name_with_attribute": "查询机构名称的同时有相关属性限制","search_with_attribute": "根据属性查询医院列表","other": "未知意图"}# 模拟意图识别逻辑if "医院" in user_question:intent_type = "search_name"elif "状态" in user_question:intent_type = "search_name_with_attribute"elif "有哪些" in user_question:intent_type = "search_with_attribute"else:intent_type = "other"return {"intent": intent_type,"description": intents[intent_type]}# 示例
user_question = "上海第一人民医院"
result = intent_recognizer(user_question)
print(result)

增强召回

接下来是一个增强召回的示例,展示如何从候选机构列表中筛选出与用户问题最相关的机构:

def filter_institutions(candidate_list, user_question):# 假设的候选机构列表institutions = [{"code": "776446", "name": "药店A", "address": "康宁路"},{"code": "436446", "name": "药店B", "address": "柳营路"}]# 根据用户问题筛选相关机构relevant_institutions = [inst for inst in institutions if user_question in inst["address"]]return {"kept": [inst["code"] for inst in relevant_institutions],"removed": [inst["code"] for inst in institutions if inst not in relevant_institutions]}# 示例
user_question = "康宁路有什么药店?"
result = filter_institutions(candidate_list, user_question)
print(result)

结论

通过结合大语言模型的语义分析能力和智能匹配技术,能够显著提升传统业务系统中的搜索性能,降低用户使用门槛,同时提高系统的适应性和匹配精度。随着技术的不断进步,生成式AI将在更多领域发挥重要作用。

参考文献

大语言模型的多意图增强搜索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/361962.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain之Agent代理(下)

LangChain之Agent代理 OpenAI Functions Agent概述配置环境变量基本使用实际应用示例 OpenAI Tools Agent概述基本使用实际应用示例 ReAct Agent概述Google搜索APIinitialize_agentcreate_react_agent Structured Chat AgentSelf-Ask with Search Agent OpenAI Functions Agent…

stl之string

构造函数 void test1() {string s1;//不传参cout << s1 << endl;string s2("123456");cout << s2 << endl;string s3(s2);cout << s3 << endl;string s4(s2, 1, 5);cout << s4 << endl;string s5("123456&quo…

LLM vs SLM 大模型和小模型的对比

语言模型是能够生成自然人类语言的人工智能计算模型。这绝非易事。 这些模型被训练为概率机器学习模型——预测适合在短语序列中生成的单词的概率分布&#xff0c;试图模仿人类智能。语言模型在科学领域的重点有两个方面&#xff1a; 领悟情报的本质。 并将其本质体现为与真实…

gin-vue-amdin 新增路由

1&#xff1a;在api目录的example 下新建controller 层如下图&#xff08;&#xff09;&#xff1a; 在enter.go 中 加入 这个新建的结构体&#xff1a; 2&#xff1a;在router 的example 文件夹下 新建对应的路由文件 3&#xff1a;在initlize 的router 中 添加对应的代码&a…

推动多模态智能模型发展:大型视觉语言模型综合多模态评测基准

随着人工智能技术的飞速发展&#xff0c;大型视觉语言模型&#xff08;LVLMs&#xff09;在多模态应用领域取得了显著进展。然而&#xff0c;现有的多模态评估基准测试在跟踪LVLMs发展方面存在不足。为了填补这一空白&#xff0c;本文介绍了MMT-Bench&#xff0c;这是一个全面的…

【数学建模】——【python库】——【Pandas学习】

专栏&#xff1a;数学建模学习笔记 pycharm专业版免费激活教程见资源&#xff0c;私信我给你发 python相关库的安装&#xff1a;pandas,numpy,matplotlib&#xff0c;statsmodels 总篇&#xff1a;【数学建模】—【新手小白到国奖选手】—【学习路线】 第一卷&#xff1a;【数学…

互联网信息服务算法备案流程与要求

一、备案申请的办理流程 企业通过网信办的互联网信息服务算法备案系统&#xff08;https://beian.cac.gov.cn/#/index&#xff09;提交算法备案申请。填报信息包括三部分&#xff0c;分别是算法主体信息、产品及功能信息、算法信息。备案中比较重要的文件包括主体信息中的《落…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch5 蒙特卡洛方法【model-based ——> model-free】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、 过 电子书 是否遗漏 【下载&#xff1a;本章 PDF GitHub 页面链接 】 【第二轮 才整理的&#xff0c;忘光了。。。又看了一遍视频】 3、 过 MOOC 习题 看 PDF 迷迷糊糊&#xff0c; 恍恍惚惚。…

深度学习 - Transformer 组成详解

整体结构 1. 嵌入层&#xff08;Embedding Layer&#xff09; 生活中的例子&#xff1a;字典查找 想象你在读一本书&#xff0c;你不认识某个单词&#xff0c;于是你查阅字典。字典为每个单词提供了一个解释&#xff0c;帮助你理解这个单词的意思。嵌入层就像这个字典&#xf…

道路救援入驻派单小程序开源版开发

道路救援入驻派单小程序开源版开发 1、用户立即救援 2、后台收到救援通知&#xff0c;派单救援师傅. 道路救援入驻派单小程序通常会包含一系列功能&#xff0c;旨在方便救援服务提供商、用户和后台管理系统之间的交互。以下是一个可能的功能列表&#xff1a; 用户端功能&…

Camera开发-相机输出常用数据格式

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

OpenGL-ES 学习(6)---- 立方体绘制

目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成&#xff0c;共6个面&#xff0c;所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示&#xff0c;三维坐标…

【极速入门版】编程小白也能轻松上手Comate AI编程插件

文章目录 概念使用错误检测与修复能力API生成代码生成json格式做开发测试 在目前的百模大战中&#xff0c;AI编程助手是程序员必不可少的东西&#xff0c;市面上琳琅满目的产品有没有好用一点的&#xff0c;方便一点的呢&#xff1f;今天工程师令狐向大家介绍一款极易入门的国产…

three.js - MeshStandardMaterial(标准网格材质)- 金属贴图、粗糙贴图

金属贴图、粗糙贴图 金属贴图&#xff1a;metalnessMap 和 粗糙贴图&#xff1a;roughnessMap&#xff0c;是用于模拟物体表面属性的两种重要贴图技术&#xff0c;这两种贴图&#xff0c;通常与基于物理的渲染&#xff08;PBR&#xff09;材质&#xff08;如&#xff1a;MeshSt…

nuxt3项目打包后获取.env设置的环境变量无效的解决办法

问题描述 在nuxt3项目开发过程中&#xff0c;设置了开发环境变量和生产环境变量&#xff0c;在本地开发时都能正常获取&#xff0c;但打包部署时获取不到&#xff0c;设置如下&#xff1a; //.env.development文件示例 SERVER_API_PATHhttp://192.168.25.100//.env.productio…

Elasticsearch环境搭建|ES单机|ES单节点模式启动|ES集群搭建|ES集群环境搭建

文章目录 版本选择单机ES安装与配置创建非root用户导入安装包安装包解压配置JDK环境变量配置single-node配置JVM参数后台启动|启动日志查看启动成功&#xff0c;访问终端访问浏览器访问 Kibana安装修改配置后台启动|启动日志查看浏览器访问 ES三节点集群搭建停止es服务域名配置…

小区物业管理收费系统源码小程序

便捷、透明、智能化的新体验 一款基于FastAdminUniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统&#xff0c;贴合物业工作场景&#xff0c;轻…

未来20年人工智能将如何塑造社会

照片由Brian McGowan在Unsplash上拍摄 更多资讯&#xff0c;请访问 2img.ai “人工智能会成为我们的救星还是我们的末日&#xff1f;” 几十年来&#xff0c;这个问题一直困扰着哲学家、科学家和科幻爱好者。 当我们踏上技术革命的边缘时&#xff0c;是时候透过水晶球&#x…

【java算法专场】双指针(上)

目录 前言 基本原理 对撞指针 快慢指针 移动零 算法思路 算法步骤 代码实现 算法分析 复写零 算法思路 算法步骤 代码实现 快乐数 算法思路 算法步骤 代码实现 盛最多水的容器 ​编辑算法思路 代码实现 前言 双指针是一种在数组或链表等线性数据结构中高效…

CV每日论文--2024.6.26

1、StableNormal: Reducing Diffusion Variance for Stable and Sharp Normal 中文标题&#xff1a;StableNormal&#xff1a;减少扩散方差以实现稳定且锐利的法线 简介&#xff1a;本文介绍了一种创新解决方案&#xff0c;旨在优化单目彩色输入&#xff08;包括静态图片与动态…