运用亚马逊云科技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就…...

如何拼接两个视频在一起?
如何拼接两个视频在一起?在度过一个美好周末的时候,我和朋友一起拍摄了两组视频,准备将两个视频合并成一个并发布到朋友圈。这个想法非常棒,但是我在第一步就遇到了麻烦:如何将这两个视频拼接在一起?这听起…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...