运用亚马逊云科技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就…...
如何拼接两个视频在一起?
如何拼接两个视频在一起?在度过一个美好周末的时候,我和朋友一起拍摄了两组视频,准备将两个视频合并成一个并发布到朋友圈。这个想法非常棒,但是我在第一步就遇到了麻烦:如何将这两个视频拼接在一起?这听起…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
算法—栈系列
一:删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
Excel 怎么让透视表以正常Excel表格形式显示
目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总...
