运用亚马逊云科技Amazon Kendra,快速部署企业智能搜索应用
亚马逊云科技Amazon Kendra是一项由机器学习(ML)提供支持的企业搜索服务。Kendra内置数据源连接器,支持快速访问Amazon S3、AmazonRDS、AmazonFSX以及其他外部数据源,帮助用户自动提取文档并建立索引。Kendra支持超过30多种多国语言,支持简体中文与繁体中文。
Amazon Kendra与Amazon OpenSearch比较
Kendra和OpenSearch都可以用作搜索引擎,在二者的选择上,可以从两个方面进行考虑:
-
按搜索内容:如果搜索内容是以非结构化的、主要是人工生成的内容(例如客服网站、指导文档、专利、票据等各式文档)——并且需要更高的准确性、获得类似互联网搜索的基于自然语言的搜索体验,Kendra可能是更佳的选择。反之,如果搜索内容为结构化的、主要由机器生成的内容(例如日志、目录和数据库搜索),OpenSearch Service则更适合。
-
按搜索需求:如果需要外部连接器、UI和OOTB功能的完全托管搜索服务的客户,尤其是目前已经在使用其他商业文本搜索产品(例如Coveo、Lucidworks、Sinequa、Attivio、Mindbreeze Inspire和Algolia)对客户,建议选择Kendra。对于希望获得最大灵活性和能够访问功能的构建者,OpenSearch更适合。
Amazon Kendra适用场景
目前Kendra可支持繁体中文与简体中文的语意搜索,还可以通过了解文章或FAQ语义内容撷取答案回复用户。此外Kendra还支持同义字检索,查询建议与拼字检查,但相关功能目前只支持英文,建议如果要使用全功能的部分,以英文搜索为主。针对出海用户的多语言搜索场景,使用Kendra可以加速建置流程。
Kendra目前支持数十种不同的连接器(Connector),包含S3,RDS与外部的Atlassian Confluence,Jira,Web Crawler等,协助客户快速接入数据到Kendra进行搜索,减少用户在资料接入的负担。假设用户所在的搜索资料来源种类较多,建议可以考虑使用Kendra来加速搜索。
Kendra支持自定义文件(Custom Document Enrichment),将文档引入Kendra时,可以创建、修改或删除文档属性和内容。这意味着可以根据需求操纵和获取数据。自定义文件扩充支持以下两种操作:
更改元数据的基本操作:可以使用基本逻辑来操作文档字段和内容。这包括删除字段中的值、使用条件修改字段中的值或创建字段。
-
通过Lambda函数提取和更改元数据或内容:如果想超越基本逻辑并应用高级数据操作,可以结合Lambda函数进行实现,同时借助Lambda还可以快速其他亚马逊云科技服务。例如,使用光学字符识别(OCR),它解析图像中的文本,并将每张图像视为文本文档。或者使用Amazon Transcribe将视频內容转成文字后写入Kendra。

相较于单一文件搜索的Query API,Kendra还提供专为RAG使用案例设计的Retrieve API。使用Retrieve API,可以检索最多100个语义相关的段落,每个段落最多200个标记词,按相关性排序。这些段落是可以从多个文档和同一文档的多个部分中语义提取的文本摘录。针对提供搜索资料给大语言模型进行解析出准确的结果,有更大的助益。
不过Kendra在同义字设定,拼字矫正等功能的支持方面以英文检索为主,且与其他AI服务的搭配使用时需要考量语系的搭配。建议在出海场景,选定适当的语系和文件来源多样化的情况下,在写入索引器之前配置适当的文字处理工作,利用Kendra自动创建索引的能力可以达到最大程度的优化效果。
基于智能搜索的大语言模型增强解决方案指南
结合LangChain的各类功能接口和亚马逊云科技的基础服务,构建了亚马逊云科技基于智能搜索的大语言模型增强解决方案指南,在支持OpenSearch的同时,也同步支持Kendra服务(根据实际场景二选一即可)。

生成式人工智能应用程序需要根据用户请求和所使用的特定LLM来设计提示(Prompt),才能获得最佳的结果。对话式人工智能应用程序还需要管理聊天历史记录和上下文。生成式人工智能应用程序开发人员可以使用LangChain等开源框架,该框架提供与所选LLM集成的模块,以及用于聊天记录管理和提示工程等活动的编排工具。亚马逊云科技提供了Kendra Retriever类,它实现了LangChain检索器接口,应用程序可以将其与其他LangChain接口结合使用,以从Kendra索引检索到最正确的数据。
结论
由大型语言模型提供的生成式人工智能正在改变人们从信息中获取和应用见解的方式。然而对于企业客户,必须使用检索增强生成方法根据企业内容生成见解,确保回答资料的准确性。Kendra提供开箱即用的高精度语义搜索结果的功能,借助其Retrieve API(专为RAG设计)、全面的数据源连接器生态系统、对常见文件格式的支持以及安全性,可以快速开始部署自己的智能搜索应用。
相关文章:
运用亚马逊云科技Amazon Kendra,快速部署企业智能搜索应用
亚马逊云科技Amazon Kendra是一项由机器学习(ML)提供支持的企业搜索服务。Kendra内置数据源连接器,支持快速访问Amazon S3、AmazonRDS、AmazonFSX以及其他外部数据源,帮助用户自动提取文档并建立索引。Kendra支持超过30多种多国语…...
C# 使用 OleDbConnection 连接读取Excel的方法
Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。 (1)Sqlconnetcion类的对象连接是SQL Server数据库; (2)OracleConnection类的对象连接Oracle数据库&…...
【LeetCode-中等题】98. 验证二叉搜索树
文章目录 题目方法一:BFS 层序遍历方法二: 递归方法三: 中序遍历(栈)方法四: 中序遍历(递归) 题目 思路就是首先得知道什么是二叉搜索树 左孩子在(父节点的最小值&#x…...
Leetcode-每日一题【剑指 Offer 37. 序列化二叉树】
题目 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 …...
删除无点击数据offer数据分析使用
梳理思路: 1、 获取 7month 和 8month fullreport 报表中 所有offer;输出结果:offerid, totalClickCount; 2、 分析数据7month totalClickCount0 and 8month totalClickCount0 的offer去除; result.…...
【Apollo学习笔记】——规划模块TASK之SPEED_BOUNDS_PRIORI_DECIDER
文章目录 前言SPEED_BOUNDS_PRIORI_DECIDER功能简介SPEED_BOUNDS_PRIORI_DECIDER相关配置SPEED_BOUNDS_PRIORI_DECIDER流程将障碍物映射到ST图中ComputeSTBoundary(PathDecision* path_decision)ComputeSTBoundary(Obstacle* obstacle)GetOverlapBoundaryPointsComputeSTBounda…...
物理机ping不通windows server 2012
刚才尝试各种方法,在物理机上就是ping不能wmware中的windows server 2012 . 折腾了几个小时,原来是icmp 被windows server 2012 禁用了 现在使用使用以下协议就能启用Icmp协议。 netsh firewall set icmpsetting 8然后,就能正常ping 通虚…...
誉天HCIE-Datacom丨为什么选择誉天数通HCIE课程学习
大家好,我是誉天HCIE-Datacom的一名学员,在2022年觉得自己技术水平不够,想要提升自己,经朋友介绍在誉天报的名。 听朋友说誉天的阮Sir的课讲的非常好,我在B站上看了几节阮老师的课确实比之前在听得其他机构的课程讲的要…...
Python文本终端GUI框架详解
今天笔者带大家,梳理几个常见的基于文本终端的 UI 框架,一睹为快! Curses 首先出场的是 Curses。 Curses 是一个能提供基于文本终端窗口功能的动态库,它可以: 使用整个屏幕 创建和管理一个窗口 使用 8 种不同的彩色 为程序提供…...
01_lwip_raw_udp_test
1.打开UDP的调试功能 (1)设置宏定义 (2)打开UDP的调试功能 (3)修改内容,串口助手打印的日志信息自动换行 2.电脑端连接 UDP发送一帧数据 3.电路板上发送一帧数据...
学习ts(十一)本地存储与发布订阅模式
localStorage实现过期时间 目录 准备 安装 npm i rollup typescript rollup-plugin-typescript2// tsconfig.json"module": "ESNext","moduleResolution": "node", "strict": false, // rollup.config.js import …...
MySQL对NULL值处理
在使用数据库时,有时需要表示未知值,这时可以使用NULL值表示。引入NULL值后,会对原有的使用产生影响,这里记录下常见的场景,以做记录。 NULL含义 在MySQL中,NULL值表示一个未知值,表示不可知、…...
Vector 动态数组(迭代器)
C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 Vector<T> 动态数组(模板语法) 本文目标 1 熟悉迭代器设计模式; 2 实现数组的迭代器; 3 基于迭代器的容器遍历; 迭代器语法介绍 对迭…...
多组背包恰好装满方案数
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 现在有一个大小n*1的收纳盒,我们手里有无数个大小为1*1和2*1的小方块,我们需要用这些方块填满收纳盒,请问我们有多少种不同的方法填满这个收纳盒 分析&…...
Oracle查询语句中做日期加减运算
在Oracle中,可以使用日期函数来实现日期的加减。 若想在日期上加上一定的天数,可以使用"INTERVAL"关键字。例如,如果要将一个日期加上3天,可以使用以下代码: SELECT SYSDATE INTERVAL 3 DAY FROM DUAL; …...
Unity贝塞尔曲线的落地应用-驱动飞行特效
前言 本文教你怎么用贝塞尔曲线驱动一个飞行特效 中间点的准备 开放一些可以给策划配置的变量 startPos flyEffect.transform.position; var right (GetAimPoistion(targetActor) - flyEffect.transform.position).x > 0?1:-1; midPos startPos new Vector3(righ…...
VTK——设置交互样式上的鼠标回调函数
函数介绍 VTKPointPickerInteractorStyle是一个自定义的交互样式类,它是VTK库中vtkInteractorStyleTrackballCamera类的子类。VTK(Visualization Toolkit)是一个开源的,跨平台的库,用于处理、渲染和视觉化科学数据。它…...
Flutter实现动画列表AnimateListView
由于业务需要,在打开列表时,列表项需要一个从右边飞入的动画效果,故封装一个专门可以执行动画的列表组件,可以自定义自己的动画,内置有水平滑动,缩放等简单动画。花里胡哨的动画效果由你自己来定制吧。 功…...
【LeetCode-中等题】236. 二叉树的最近公共祖先
文章目录 题目方法一:后序遍历 回溯 题目 方法一:后序遍历 回溯 解题的核心就是:采用后序遍历 讨论p,q是否在当前的root的两边,如在两边则返回当前节点root 如何不在两边,只要出现一个节点等于p或者q就…...
如何拼接两个视频在一起?
如何拼接两个视频在一起?在度过一个美好周末的时候,我和朋友一起拍摄了两组视频,准备将两个视频合并成一个并发布到朋友圈。这个想法非常棒,但是我在第一步就遇到了麻烦:如何将这两个视频拼接在一起?这听起…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
