首页
学习
活动
专区
圈层
工具
发布

Agent设计模式——第 14 章:知识检索(RAG)

这种能力使它们能够准确执行复杂任务,例如访问最新的公司政策来回答特定问题,或在下订单前检查当前库存。...这就是向量数据库的优势所在。它们专门为语义搜索而构建。通过将文本存储为数值向量,它们可以基于概念含义而不仅仅是关键字重叠来找到结果。...识别到这个差距,它可以激活一个工具——例如实时网络搜索 API——来查找最近的新闻文章和社交媒体情绪。然后 agent 使用这些新收集的外部信息来提供最新的答案,克服其静态内部数据库的限制。...关键要点 知识检索(RAG)通过允许 LLM 访问外部的、最新的和特定的信息来增强它们。 该过程涉及检索(在知识库中搜索相关片段)和增强(将这些片段添加到 LLM 的提示中)。...该过程通过首先检索相关信息片段,然后增强用户的提示来工作,使 LLM 能够生成更准确和上下文感知的响应。这是通过嵌入、语义搜索和向量数据库等基础技术实现的,这些技术基于含义而不仅仅是关键字来查找信息。

91010

如何在API中实现搜索和过滤功能🦉

当你构建一个API时,添加搜索和过滤功能是非常有用的。假设你正在为一本图书馆书籍创建API——用户可能希望按特定作者查找书籍、按某个年份后出版的书籍查找,或按标题中的关键字查找书籍。...实现搜索和过滤使你的API变得更强大、更灵活。在本文中,我们将介绍如何:实现简单的关键字搜索。基于特定字段过滤结果。结合搜索和过滤功能,使你的API更加强大。让我们开始吧!...实现简单的关键字搜索用户与API交互的最常见方式之一是通过搜索框。用户可能输入一个单词或短语,API应该返回匹配该搜索查询的结果。...Scott Fitzgerald", "year": 1925}]实现基于特定字段的过滤搜索非常有用,但有时用户希望根据特定字段来过滤结果。...无论是按关键字搜索,按特定字段过滤,还是同时组合搜索和过滤功能,这些特性都能为用户提供更多对数据的控制。Apipost 进一步提升了这一功能,提供了一整套强大且灵活的工具,简化了API开发的各个方面。

1.8K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    KG4Py:Python代码知识图谱和语义搜索的工具包

    如何构建Python的代码知识图谱,又该如何进行搜索呢?现在的项目程序中存在着大量重复的代码片段,尤其是在软件开发的时候。...传统的代码搜索主要基于关键词,无法挖掘搜索语句的深层语义信息。目前,在GitHub上搜索代码片段仅限于关键字搜索,这是基于用户能够预测他们正在查找的代码片段相关的关键字来完成的。...受这些知识图谱的启发,研究人员思考了如何在软件工程中构建知识图谱。代码的大数据为知识图谱构建提供了数据源,基于深度学习的方法为自动知识图谱构建(Wang等人,2020a)提供了帮助。...这也为我们的代码语义搜索提供了灵感。对于图数据库的选择,知识图谱通常使用Neo4j、GraphDB和其他图数据库来存储数据,并使用特定语句来检索数据。...对于软件公司,我们的工具包可用于通过理解函数注释的语义来查找企业代码库中的类似代码片段,并推荐给开发人员(如果存在)。这样,不仅减少了开发人员工作的重复,而且降低了软件公司的开发成本。

    2.7K30

    KG4Py:Python代码知识图谱和语义搜索的工具包

    如何构建Python的代码知识图谱,又该如何进行搜索呢?现在的项目程序中存在着大量重复的代码片段,尤其是在软件开发的时候。...传统的代码搜索主要基于关键词,无法挖掘搜索语句的深层语义信息。目前,在GitHub上搜索代码片段仅限于关键字搜索,这是基于用户能够预测他们正在查找的代码片段相关的关键字来完成的。...受这些知识图谱的启发,研究人员思考了如何在软件工程中构建知识图谱。代码的大数据为知识图谱构建提供了数据源,基于深度学习的方法为自动知识图谱构建(Wang等人,2020a)提供了帮助。...这也为我们的代码语义搜索提供了灵感。对于图数据库的选择,知识图谱通常使用Neo4j、GraphDB和其他图数据库来存储数据,并使用特定语句来检索数据。...对于软件公司,我们的工具包可用于通过理解函数注释的语义来查找企业代码库中的类似代码片段,并推荐给开发人员(如果存在)。这样,不仅减少了开发人员工作的重复,而且降低了软件公司的开发成本。

    2.6K40

    全文搜索引擎 Elasticsearch 还是 Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.6K20

    全文搜索引擎选 ElasticSearch 还是 Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.5K10

    搜索引擎选 ElasticSearch 还是 Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 1、顺序扫描 2、全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...Elasticsearch 是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.5K40

    全文搜索引擎选 ElasticSearch 还是 Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 1、顺序扫描 2、全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...Elasticsearch 是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.3K20

    全文搜索引擎选ElasticSearch还是Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.2K10

    Hi,Java工程师:关于全文搜索引擎,这篇文章不得不看!

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    2K31

    全文搜索,ElasticSearch和Solr哪个更好用?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    2.9K20

    全文搜索引擎选ElasticSearch还是Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    1.4K10

    ElasticSearch和Solr,你还傻傻分不清楚吗?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法: 顺序扫描 全文检索 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...Solr Apache Solr 是一个基于名为 Lucene 的 Java 库构建的开源搜索平台。它以用户友好的方式提供 Apache Lucene 的搜索功能。...是一个开源(Apache 2 许可证),基于 Apache Lucene 库构建的 RESTful 搜索引擎。...对于 95% 的用例,任何一种选择在性能方面都会很好,剩下的 5% 需要用它们的特定数据和特定的访问模式来测试这两种解决方案。

    6.1K40

    LlamaIndex :面向QA 系统的全新文档摘要索引

    在这篇博文中,我们介绍了一种全新的 LlamaIndex 数据结构:文档摘要索引。我们描述了与传统语义搜索相比,它如何帮助提供更好的检索性能,并通过一个示例进行了介绍。...今天大多数构建 LLM 支持的 QA 系统的用户倾向于执行以下某种形式的操作: 获取源文档,将每个文档拆分为文本块 将文本块存储在向量数据库中 在查询期间,通过嵌入相似性和/或关键字过滤器来检索文本块。...它有助于索引比单个文本块更多的信息,并且比关键字标签具有更多的语义。它还允许更灵活的检索形式:我们可以同时进行 LLM 检索和基于嵌入的检索。...这利用了 LLM 的推理能力,它比基于嵌入的查找更先进,但避免了将整个文档提供给 LLM 的成本/延迟 想法 带有摘要的文档检索可以被认为是语义搜索和所有文档的强力摘要之间的“中间地带”。...我们可以构建GPTDocumentSummaryIndex一组文档,并传入一个ResponseSynthesizer对象来合成文档的摘要。

    1.7K20

    想快速部署机器学习项目?来看看几大主流机器学习服务平台对比吧

    姿势、笑容和面部毛发 Emotion API:用来识别面部表情的工具 Custom Vision Service:支持使用自己的数据构建自定义的图像识别模型 Video indexer:是一种在视频中查找任务的工具...,对于查找特定的图像属性非常有用: 标记对象 检测人脸并分析表情 寻找标志性事件并描述现场(例如假期、婚礼等) 在图像中查找文本并识别语言 图像中的主色调 Cloud Video Intelligence...特定的 API 和工具 这一部分,我们将讨论微软和谷歌的特定 API 产品和工具。这里没有亚马逊,因为其 API 跟上面提到的文本分析和图像视频分析是一样的。...但是,一些其他公司提供的特定 API 的一些功能也集成于 Amazon 的产品中。 Azure Service Bot 框架 微软为了给用户提供更灵活的开发工具集付出了很多努力。...这个 API 的主要特点: 修正工作搜索查询中的拼写错误 匹配所需的资历水平 查找和区分可能具有不同表现形式和行业术语的相关工作(例如,查询「server」(服务员)会返回「barista」(咖啡师)」

    5.3K170

    AI 文档搜索系统:基于 LangChain + FAISS 的智能搜索

    引言在企业内部,文档管理是一个常见但复杂的问题。随着公司文档量的增长,如何快速、精准地查找相关信息成为一项挑战。...传统的关键字搜索方式往往存在以下问题: 只能匹配精确的关键词,无法理解语义 文档格式多样(PDF、Word、TXT),难以统一解析 大量非结构化数据,查询结果不够精准 为了解决这些问题,我们可以结合...原理解析2.1 传统搜索 VS AI 搜索传统文档搜索依赖于 全文搜索(Full-text Search) 或 基于关键词的索引。...这种方式虽然能快速定位到包含特定单词的文档,但无法理解用户查询背后的语义。...部署与优化5.1 本地运行streamlit run ai_document_search.py5.2 云端部署(可选) 使用 FastAPI 构建 API,提供 RESTful 接口 使用 Docker

    1.4K01

    全文搜索引擎选ElasticSearch还是Solr?

    对于非结构化数据,也即对全文数据的搜索主要有两种方法:顺序扫描法,全文检索。 顺序扫描:通过文字名称也可了解到它的大概搜索方式,即按照顺序扫描的方式查询特定的关键字。...例如 Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。...3.2 Solr Apache Solr是一个基于名为Lucene的Java库构建的开源搜索平台。它以用户友好的方式提供Apache Lucene的搜索功能。...(Apache 2许可证),是一个基于Apache Lucene库构建的RESTful搜索引擎。...对于95%的用例,任何一种选择在性能方面都会很好,剩下的5%需要用它们的特定数据和特定的访问模式来测试这两种解决方案。 从操作上讲,Elasticsearch使用起来比较简单 - 它只有一个进程。

    1.3K00

    DataStax旨在通过RAGStack简化AI应用的构建

    “让我们去检索这些非常准确的知识来源,这些来源是通过传统的数据库查找检索到的,”他说。...“在某些情况下——在很多情况下——[你] 使用向量数据库查找来获取信息并将其馈送到 LLM,然后 LLM 只使用其语言功能来构建该响应。”...根据该公司介绍,Langflow 1.0 允许开发人员利用 LangSmith 的可观察性服务来跟踪应用程序的响应,从而获得更相关、更准确的基于 LLM 的应用程序。...“在我想通过含义而不是特定关键字检索内容的这些设置中,这是一个非常强大的工具,因为你可能永远不会使用特定关键字,但含义可能非常接近。”...该公司在其新闻发布会上表示,这种合作关系将使 开发人员能够提取和转换复杂数据,以便存储在 Astra DB Vector 中,用于为基于 LLM 的应用程序提供支持。

    34110

    Elastic发布Elasticsearch Relevance Engine™ — 为AI革命提供高级搜索能力

    无论是扩展关键字搜索以提供语义搜索,还是为视频和图像启用新的搜索模式,新技术都需要独特的工具来为搜索用户提供更好的体验。...该模型将稀疏向量与基于关键字的传统 BM25 搜索配对,为混合搜索提供了一个易于使用的Reciprocal Rank Fusion (RRF)评分器。...使用Elastic的平台,开发团队可以使用密集向量检索来创建更直观的问答,不受关键字或同义词的限制。...他们可以使用图像等非结构化数据来构建多模态搜索,甚至可以对用户画像进行建模来获取个性化的搜索结果,以用于产品和发现、求职或配对应用程序。...开发者通常需要专业机器学习或数据科学团队的支持来构建高度相关的AI驱动的搜索。这些团队花费大量时间选择合适的模型,在特定领域的数据集上进行训练,并随着数据及其关系变化而维护模型。

    1.1K00

    解密Elastic如何用生成式AI提升内部的工作效率

    和所有组织一样,Elastic面临着越来越多的信息和数据,使得我们的团队很难保持信息的最新,也让员工从相关资源中找到答案。作为一家领先的搜索AI公司,我们的客户至上理念从我们自己开始。...我们能否构建一个可扩展的解决方案,作为多个用例的平台,同时提供使用多个LLMs的灵活性?我们如何通过提供托管服务来推动特定领域的创新?...在市场营销团队工作时,我开始使用ElasticGPT来验证撰写内容时特定产品功能的技术能力。产品市场营销2. HR、IT、法律和公司信息:用户可以提出问题,例如,“如何请求访问特定工具?”...使用托管API服务进行扩展:基于我们的“中央着陆点”方法,我们希望使我们的业务团队更容易开始使用生成式AI。我们正在开发一个托管API服务,团队可以使用它来进行实验。...构建特定功能的体验:我们计划添加专门的内部模型来支持特定功能用例,如财务和法律,不同的模型使用我们的Elastic推理API。

    42121
    领券