运用亚马逊云科技Amazon Kendra,快速部署企业智能搜索应用

news2025/1/25 4:42:46

 亚马逊云科技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设计)、全面的数据源连接器生态系统、对常见文件格式的支持以及安全性,可以快速开始部署自己的智能搜索应用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线性代数的学习和整理7:各种特殊效果矩阵汇总

目录 1 矩阵 1.1 1维的矩阵 1.2 2维的矩阵 1.3 没有3维的矩阵---3维的是3阶张量 1.4 下面本文总结的都是各种特殊效果矩阵特例 2 方阵: 正方形矩阵 3 单位矩阵 3.1 单位矩阵的定义 3.2 单位矩阵的特性 3.3 为什么单位矩阵I是 [1,0;0,1] 而不是[0,1;1,0] 或[1,1;1,1]…

Flink流批一体计算(16):PyFlink DataStream API

目录 概述 Pipeline Dataflow 代码示例WorldCount.py 执行脚本WorldCount.py 概述 Apache Flink 提供了 DataStream API,用于构建健壮的、有状态的流式应用程序。它提供了对状态和时间细粒度控制,从而允许实现高级事件驱动系统。 用户实现的Flink程…

React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗?

背景 突然发现 antd 的 getFieldsValue()是可以传一个 true 参数的,如题,React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗? 验证 确实不一样 结论 getFieldsValue 提供了多种重载方法: getFieldsValue(name…

Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)

目录 1267. 统计参与通信的服务器 题目描述: 实现代码与解析: 写法一:两次遍历 hash 原理思路: 写法二:三次遍历 原理思路: 1267. 统计参与通信的服务器 题目描述: 这里有一幅服务器分…

SpringIoC三层架构实战

目录 一、需求分析 二、创建相关数据库 三、导入相关依赖 四、实体类准备 五、相关技术讲解(Druid、JDBCTemplate) 六、三层架构实现案例 一、需求分析 搭建一个三层架构案例,模拟查询全部学生(学生表)信息&#x…

美团发布2023年Q2财报:营收680亿元,同比增长33.4%

8月24日,美团(股票代码:3690.HK)发布2023年第二季度及半年业绩报告。今年二季度,美团实现营收680亿元(人民币,下同),同比增长33.4%。 财报显示,二季度,美团继续深入推进“零售科技”战略,持续加…

leetcode:2011. 执行操作后的变量值(python3解法)

难度:简单 存在一种仅支持 4 种操作和 1 个变量 X 的编程语言: X 和 X 使变量 X 的值 加 1--X 和 X-- 使变量 X 的值 减 1 最初,X 的值是 0 给你一个字符串数组 operations ,这是由操作组成的一个列表,返回执行所有操作…

算法与数据结构(十)--图的入门

一.图的定义和分类 定义:图是由一组顶点和一组能够将两个顶点连接的边组成的。 特殊的图: 1.自环:即一条连接一个顶点和其自身的边; 2.平行边:连接同一对顶点的两条边; 图的分类: 按照连接两个顶点的边的…

Flask 单元测试

如果一个软件项目没有经过测试,就像做的菜里没加盐一样。Flask 作为一个 Web 软件项目,如何做单元测试呢,今天我们来了解下,基于 unittest 的 Flask 项目的单元测试。 什么是单元测试 单元测试是软件测试的一种类型。顾名思义&a…

idea使用tomcat

1. 建立javaweb项目 2. /WEB-INF/web.xml项目配置文件 如果javaweb项目 先建立项目,然后在项目上添加框架支持,选择javaee 3. 项目结构 4.执行测试:

按软件开发阶段的角度划分:单元测试、集成测试、系统测试、验收测试

1.单元测试(Unit Testing) 单元测试,又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件里测试的最小单位:模块。 测试阶段:编码后或者编码前(…

服务器(容器)开发指南——code-server

文章目录 code-server简介code-server的安装与使用code-server的安装code-server的启动code-server的简单启动指定配置启动code-server code-server环境变量配置 code-server端口转发自动端口转发手动添加转发端口 nginx反向代理code-servercode-server打包开发版镜像 GitHub官…

Qt --- QTimer

在Qt开发界面的时候,非常多的时候都得使用定时器,定时器具体可以干什么呢?比如:控制时钟、定时改变样式、改变进度等。。。说到这里,经常使用QQ,而不同的时段都会显示不同的背景,我认为如果用Qt…

商城-学习整理-集群-K8S-集群环境部署(二十四)

目录 一、MySQL集群1、mysql集群原理2、Docker安装模拟MySQL主从复制集群1、下载mysql镜像2、创建Master实例并启动3、创建 Slave 实例并启动4、为 master 授权用户来同步数据1、进入 master 容器2、进入 mysql 内部 (mysql –uroot -p)3、查看 master 状…

告别数字化系统“物理叠加”,华为云推动智慧门店价值跃迁

文|智能相对论 作者|叶远风 有大屏幕滚动播放广告; 有人脸识别系统让消费者自助结账; 有订单管理系统综合分析一段时间内总体经营情况; 有全门店监控直连总部机房; …… 以搭载数字化系统的硬件设备为表面特征的智慧门店&a…

Seaborn 基本语法及特点

文章目录 简介图类型关系型图数据分布型图分类数据型图回归模型分析型图多子图网格型图FacetGrid () 函数PairGrid () 函数 绘图风格、颜色主题和绘图元素缩放比例绘图风格颜色主题绘图元素缩放比例 简介 Seaborn 是 Python 中一个非常受用户欢迎的可视化库。Seaborn 在 Matpl…

webpack5 (二)

什么是bable 是 js 编译器,主要的作用是将 ES6 语法编写的代码转换为向后兼容的 js 语法,以便可以运行在当前版本和旧版本的浏览器或其他环境中。 它的配置文件有多种写法: babel.config.*(js/json) babelrc.*(js/json) package.json 中的…

centos7物理机安装并配置外网访问

安装准备工作 安装之前需要准备一下,需要一个U盘,其次需要准备以下内容 1.需要centos7的ISO系统镜像 2.使用UltraISO软件写入ISO镜像 3.一台windows系统 将系统写入到U盘,写入步骤 打开UltraISO点击文件 → 打开,选择Linux镜…

飞天使-k8s基础组件分析-安全

文章目录 名称空间解释访问kubernetes API的控制RBAC的介绍 kubeconfig用户的创建集群默认角色 给组创建授权针对pod配置服务账户参考文档 名称空间解释 名字是啥? 答:集群中每个对象的名称对于该类型的资源都是唯一的。并且每一个对象在整个集群中也有…

『C语言入门』初识C语言

文章目录 前言C语言简介一、Hello World!1.1 编写代码1.2 代码解释1.3 编译和运行1.4 结果 二、数据类型2.1 基本数据类型2.2 复合数据类型2.3 指针类型2.4 枚举类型 三、C语言基础3.1 变量和常量3.2 运算符3.3 控制流语句3.4 注释单行注释多行注释注释的作用 四、 …