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

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

随着人工智能技术的蓬勃发展,大语言模型(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将在更多领域发挥重要作用。

参考文献

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

相关文章:

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

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

【ai】ubuntu18.04 找不到 nvcc --version问题

nvcc --version显示command not found问题 这个是cuda 库: windows安装了12.5 : 参考大神:解决nvcc --version显示command not found问题 原文链接:https://blog.csdn.net/Flying_sfeng/article/details/103343813 /usr/local/cuda/lib64 与 /usr/local/cuda-11.3/lib64 完…...

深入了解DDoS攻击及其防护措施

深入了解DDoS攻击及其防护措施 分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是当今互联网环境中最具破坏性和普遍性的网络威胁之一。DDoS攻击不仅危及企业的运营,还可能损害其声誉,造成客户信任度的下降。…...

【面试系列】产品经理高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...

前端特殊字符数据,后端接收产生错乱,前后端都需要处理

前端&#xff1a; const data {createTime: "2024-06-11 09:58:59",id: "1800346960914579456",merchantId: "1793930010750218240",mode: "DEPOSIT",channelCode: "if(amount > 50){iugu2pay;} else if(amount < 10){iu…...

力扣热100 哈希

哈希 1. 两数之和49.字母异位词分组128.最长连续序列 1. 两数之和 题目&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。…...

[图解]SysML和EA建模住宅安全系统-05-参数图

1 00:00:01,140 --> 00:00:03,060 这是实数没错&#xff0c;这是分钟 2 00:00:03,750 --> 00:00:07,490 但是你在这里选&#xff0c;选不了的 3 00:00:07,500 --> 00:00:09,930 因为它这里不能够有那个 4 00:00:11,990 --> 00:00:13,850 但是我们前面这里 5 00…...

JavaScript——对象的创建

目录 任务描述 相关知识 对象的定义 对象字面量 通过关键字new创建对象 通过工厂方法创建对象 使用构造函数创建对象 使用原型(prototype)创建对象 编程要求 任务描述 本关任务&#xff1a;创建你的第一个 JavaScript 对象。 相关知识 JavaScript 是一种基于对象&a…...

大二暑假 + 大三上

希望&#xff0c;暑假能早睡早起&#xff0c;胸围达到 95&#xff0c;腰围保持 72&#xff0c;大臂 36&#xff0c;小臂 32&#xff0c;小腿 38&#x1f36d;&#x1f36d; 目录 &#x1f348;暑假计划 &#x1f339;每周进度 &#x1f923;寒假每日进度&#x1f602; &…...

C语言使用先序遍历创建二叉树

#include<stdio.h> #include<stdlib.h>typedef struct node {int data;struct node * left;struct node * right; } Node;Node * createNode(int val); Node * createTree(); void freeTree(Node * node);void preOrder(Node * node);// 先序创建二叉树 int main()…...

如何在服务器中安装anaconda

文章目录 Step1: 下载 Anaconda方法1&#xff1a;下载好sh文件上传到服务器安装方法2&#xff1a;在线下载 Step2: 安装AnacondaStep3: 配置环境变量Step 4: 激活AnacondaStep4: 检验安装是否成功 Step1: 下载 Anaconda 方法1&#xff1a;下载好sh文件上传到服务器安装 在浏览…...

夸克网盘拉新暑期大涨价!官方授权渠道流程揭秘

夸克网盘拉新暑期活动来袭&#xff0c;价格大涨&#xff01;从7月1日开始持续两个月&#xff0c;在这两个月里夸克网盘拉新的移动端用户&#xff0c;一个从原来的5元涨到了10元。这对做夸克网盘拉新的朋友来说&#xff0c;真的是福利的。趁着暑期时间多&#xff0c;如果有想做夸…...

机器学习(三)

机器学习 4.回归和聚类算法4.1 线性回归4.1.1 线性回归的原理4.1.2 线性回归的损失和优化原理 4.2 欠拟合与过拟合4.2.1 定义4.2.2 原因以及解决方法4.2.3 正则化 4.3 线性回归改进-岭回归4.3.1 带L2正则化的线性回归-岭回归4.3.2 API 4.4 分类算法-逻辑回归与二分类4.4.1 定义…...

PostgreSQL 基本SQL语法(二)

1. SELECT 语句 1.1 基本 SELECT 语法 SELECT 语句用于从数据库中检索数据。基本语法如下&#xff1a; SELECT column1, column2, ... FROM table_name; 例如&#xff0c;从 users 表中检索所有列的数据&#xff1a; SELECT * FROM users; 1.2 使用 WHERE 条件 WHERE 子…...

linux 控制台非常好用的 PS1 设置

直接上代码 IP$(/sbin/ifconfig eth0 | awk /inet / {print $2}) export PS1"\[\e[35m\]^o^\[\e[0m\]$ \[\e[31m\]\t\[\e[0m\] [\[\e[36m\]\w\[\e[0m\]] \[\e[32m\]\u\[\e[0m\]\[\e[33m\]\[\e[0m\]\[\e[34m\]\h(\[\e[31m\]$IP\[\e[m\])\[\e[0m\]\n\[\e[35m\].O.\[\e[0m\]…...

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十二章)Wifi透传实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PG2L50H_MBG324开发平台&#xff08;盘古PGX-Nano&#xff09; 一&#xff1a;…...

详述乙级资质企业在城市综合管廊与隧道一体化设计中的挑战与机遇

挑战 1. 技术与设计复杂性 城市综合管廊与隧道项目往往涉及复杂的地质条件、地下水位、周边建筑物影响等因素&#xff0c;要求企业具备高水平的岩土工程、结构工程和流体力学等专业知识。此外&#xff0c;一体化设计需要跨学科合作&#xff0c;协调不同系统的兼容性&#xff…...

如何借助物联网实现农情监测与预警

如何借助物联网实现农情监测与预警&#xff1f; 物联网技术&#xff0c;作为信息技术与传统行业的深度融合产物&#xff0c;正逐步变革着农业生产的管理模式&#xff0c;特别是在农情监测与预警领域展现出巨大潜力。其核心在于通过感知层的各类传感器、通信层的数据传输技术以…...

一个项目学习Vue3---响应式基础

观察下面一段代码&#xff0c;学习响应式基础的全部内容 <template><div><div>将下面的msg属性放到上面来:{{ msg }}</div><button click"count">{{ count }}</button><button click"object.count.value">{{ o…...

白骑士的Python教学基础篇 1.5 数据结构

系列目录​​​​​​​ 上一篇&#xff1a;白骑士的Python教学基础篇 1.4 函数与模块 数据结构是编程语言中用于存储和组织数据的基本构件。在Python中&#xff0c;常见的数据结构包括列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、字典&#xff08…...

数据库角色管理(Role Management)

1.1、角色基础角色是权限的集合&#xff0c;是 Oracle 权限管理的核心机制。12c 增强了角色的安全特性。创建角色&#xff1a;CREATE ROLE app_developer;创建带密码的角色&#xff08;需激活时提供密码&#xff09;&#xff1a;CREATE ROLE sensitive_role IDENTIFIED BY &quo…...

MASA模组汉化包终极指南:3分钟告别Minecraft英文界面困扰

MASA模组汉化包终极指南&#xff1a;3分钟告别Minecraft英文界面困扰 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 你是否曾在Minecraft中使用Litematica、Minihud等MASA模组时&#…...

Wonder3D完整教程:如何用单张图片快速生成3D模型

Wonder3D完整教程&#xff1a;如何用单张图片快速生成3D模型 【免费下载链接】Wonder3D Single Image to 3D using Cross-Domain Diffusion for 3D Generation 项目地址: https://gitcode.com/gh_mirrors/wo/Wonder3D 想要将一张普通的图片变成立体的3D模型吗&#xff1…...

101种美食-图像分类数据集

101种美食图像分类数据集 数据集&#xff08;文章最后关注公众号获取数据集&#xff09;&#xff1a; 通过网盘分享的文件&#xff1a; 链接: https://pan.baidu.com/s/1MWasy2HPJSknwgA5IrrNSA?pwdzj6u 提取码: zj6u 数据集信息介绍 apple_pie&#xff08;苹果派&#xff09;…...

基于RAG与智能分块构建LLM本地知识库:llm-books开源工具实战

1. 项目概述&#xff1a;一个为LLM“喂书”的开源工具最近在折腾大语言模型本地应用的朋友&#xff0c;可能都遇到过同一个头疼的问题&#xff1a;怎么让模型“读懂”我手头那几百页的PDF报告、电子书或者研究论文&#xff1f;直接复制粘贴&#xff1f;上下文长度不够。手动分段…...

TLM通信:从基础操作到UVM高级连接模式

1. TLM通信基础&#xff1a;从信号级到事务级的跨越 第一次接触TLM这个概念时&#xff0c;我正被一堆信号线搞得焦头烂额。当时在做一个以太网MAC验证项目&#xff0c;每次调试都要跟踪几十根信号线的时序&#xff0c;简直像在解一团乱麻。直到同事提醒我&#xff1a;"为什…...

RISC-V SoC上DNN加速的内存优化与FTL算法实践

1. RISC-V SoC上的DNN加速内存优化挑战在边缘计算场景下&#xff0c;深度神经网络(DNN)的部署面临严峻的内存带宽挑战。典型的RISC-V异构SoC&#xff08;如Siracusa&#xff09;采用多级软件管理内存架构&#xff0c;包含L1紧耦合存储器&#xff08;32KB&#xff09;、L2共享缓…...

OpenFold实战指南:在Linux系统部署蛋白质结构预测模型

1. 从仰望到上手&#xff1a;OpenFold如何让蛋白质结构预测走进寻常实验室去年AlphaFold2横空出世&#xff0c;几乎以一己之力解决了困扰生物学界半个世纪的“蛋白质折叠问题”&#xff0c;其意义不亚于在生命科学领域投下了一颗重磅炸弹。一时间&#xff0c;无论是结构生物学家…...

Arm Development Studio 2025.1:嵌入式开发与多核调试实战

1. Arm Development Studio 2025.1 核心定位解析作为Arm官方推出的旗舰级开发套件&#xff0c;Arm Development Studio 2025.1&#xff08;后简称DS-2025&#xff09;延续了其"芯片级开发瑞士军刀"的产品定位。不同于通用型IDE&#xff0c;这套工具链从底层就为Arm架…...

企业内部分享Taotoken在代码审查与生成场景下的应用实践

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业内部分享Taotoken在代码审查与生成场景下的应用实践 在软件开发团队中&#xff0c;代码审查与代码生成是提升代码质量、保障项…...