目录
介绍
学习目标
目录
QDRANT中的混合搜索
使用LlamainDex的记忆和混合搜索
步骤1:安装要求
步骤2:定义LLM和嵌入模型
步骤3:加载数据
步骤4:通过混合搜索设置QDRANT
步骤5:索引您的文档
步骤6:查询索引查询引擎
步骤7:定义内存
步骤8:创建带有内存的聊天引擎
步骤9:测试内存
结论
关键要点
常见问题
首页 科技周边 人工智能 使用llamaindex在抹布中的记忆和混合搜索

使用llamaindex在抹布中的记忆和混合搜索

Apr 11, 2025 am 10:33 AM

介绍

检索增强生成(RAG)管道正在改善AI系统与自定义数据的交互方式,但是我们将重点关注的两个关键组件:内存和混合搜索。在本文中,我们将探讨如何整合这些强大的功能可以将您的抹布系统从简单的提问工具转换为上下文感知的,智能的对话代理。

RAG中的内存使您的系统可以维护和利用对话历史记录,创建更连贯和上下文相关的交互。同时,混合搜索将对矢量搜索的语义理解与基于关键字的方法的精确度相结合,从而大大提高了抹布管道的检索准确性。

在本文中,我们将使用LlamainDex使用QDRANT作为矢量商店和Google的Gemini作为我们的大语言模型来实施内存和混合搜索。

学习目标

  • 对内存在抹布系统中的作用及其对生成上下文准确响应的影响获得实施理解。
  • 学习将Google的Google的Gemini LLM和QDrant快速嵌入在LlamainDex框架中,这很有用,因为OpenAI是LlamainDex中使用的默认LLM和嵌入模型。
  • 使用Qdrant矢量存储来开发混合搜索技术的实现,结合向量和关键字搜索以增强抹布应用程序中的检索精度。
  • 探索Qdrant作为矢量商店的功能,重点关注其内置的混合搜索功能和快速嵌入功能。

本文作为数据科学博客马拉松的一部分发表

目录

  • QDRANT中的混合搜索
  • 使用LlamainDex的记忆和混合搜索
    • 步骤1:安装要求
    • 步骤2:定义LLM和嵌入模型
    • 步骤3:加载数据
    • 步骤4:通过混合搜索设置QDRANT
    • 步骤5:索引您的文档
    • 步骤6:查询索引查询引擎
    • 步骤7:定义内存
    • 步骤8:创建带有内存的聊天引擎
    • 步骤9:测试内存
  • 常见问题

QDRANT中的混合搜索

想象一下,您正在为大型电子商务网站构建聊天机器人。用户问:“向我展示最新的iPhone型号。”通过传统的矢量搜索,您可能会获得语义上相似的结果,但是您可能会错过确切的匹配。另一方面,关键字搜索可能太严格了。混合搜索为您提供了两全其美的最好:

  • 向量搜索捕获语义含义和上下文
  • 关键字搜索确保特定术语的精度

Qdrant是我们本文首选的矢量商店,也是充分的理由:

  • Qdrant在定义时只需启用混合参数即可轻松实现混合搜索。
  • 它带有使用快速培训的优化嵌入模型,其中该模型以ONNX格式加载。
  • QDRANT实施优先考虑保护敏感信息,提供多功能部署选项,最小化响应时间并减少运营费用。

使用LlamainDex的记忆和混合搜索

我们将深入研究LlamainDex框架内的内存和混合搜索的实际实施,展示这些功能如何增强检索增强发电(RAG)系统的功能。通过集成这些组件,我们可以创建一个更聪明,更感知的对话代理,该代理有效地利用了历史数据和高级搜索技术。

步骤1:安装要求

好吧,让我们逐步分解这一点。我们将使用LlamainDex,Qdrant矢量商店,从QDRANT进行了快进,以及Google的Gemini模型。确保已安装这些库:

 !
!
登录后复制

步骤2:定义LLM和嵌入模型

首先,让我们导入依赖关系并设置API密钥:

导入操作系统
从GetPass Import GetPass
来自llama_index.llms.gemini Import gemini
来自llama_index.embeddings.Fastembed进口fastembedembedding

Google_api_key = getPass(“输入您的双子座API:”)
os.environ [“ Google_api_key”] = Google_api_key

llm = gemini()#gemini 1.5闪光灯
embed_model = fastembedembedding()
登录后复制

现在,让我们测试API当前是否是通过在示例用户查询上运行该LLM来定义的。

 llm_response = llm.complete(“一件开始?”)。
打印(llm_response)
登录后复制

在Llamaindex中,OpenAI是默认的LLM和嵌入模型,以覆盖我们需要从LlamainDex Core定义设置。在这里,我们需要覆盖LLM和嵌入模型。

来自llama_index.core导入设置

settings.llm = llm
settings.embed_model = embed_model
登录后复制

步骤3:加载数据

在此示例中,假设我们在数据文件夹中有一个PDF,我们可以使用LlamainDex中的SimpleDirectory Reader加载数据文件夹。

来自llama_index.core导入simpledirectoryReader
documents = simpleDirectoryReader(“ ./ data/”)。load_data()
登录后复制

步骤4:通过混合搜索设置QDRANT

我们需要定义一个QDRANTVECTORSTORE实例,并将其设置在此示例中。我们还可以使用其云服务或Localhost来定义QDrant客户端,但是在我们的内存文章中,具有收集名称的定义应该可以。

确保enable_hybrid = true,因为这允许我们使用QDRANT的混合搜索功能。我们的收藏名称是“纸”,因为数据文件夹在有关代理商的研究论文中包含PDF。

来自llama_index.core导入vectorstoreindex,StorageContext
来自llama_index.vector_stores.qdrant导入QDRANTVECTORSTORE
导入qdrant_client

客户端= qdrant_client.qdrantclient(
    位置=“:内存:”,
)

vector_store = qdrantVectorstore(
    collection_name =“纸”,
    客户端=客户端,
    enable_hybrid = true,#混合搜索将进行
    batch_size = 20,
)
登录后复制

步骤5:索引您的文档

通过在我们的抹布系统中实现内存和混合搜索,我们创建了一个更聪明,更聪明的上下文-A

 Storage_Context = StorageContext.from_defaults(vector_store = vector_store)

index = vectorstoreIndex.from_documents(
    文件,
    storage_context = storage_context,
)
登录后复制

步骤6:查询索引查询引擎

索引是我们在LlamainDex中定义猎犬和发电机链的部分。它处理文档集合中的每个文档,并为每个文档的内容生成嵌入式。然后,它将这些嵌入在我们的Qdrant矢量存储中。它创建了一个索引结构,可有效检索。在定义查询引擎时,请确保在混合动力车中查询模式。

 query_engine = index.as_query_engine(
    vector_store_query_mode =“ hybrid”
)

revertmon1 = query_engine.query(“生活的含义是什么?”)
打印(响应1)
revertmon2 = query_engine.query(“在2个句子中给出摘要”)
打印(响应2)
登录后复制

在上面的查询引擎中,我们运行两个查询,一个是在上下文中,另一个在上下文之外。这是我们得到的输出:

输出

#响应1
提供的文本着重于使用大语模型(LLMS)在自主代理中计划。 
它没有讨论生活的含义。 

#响应2

本文档探讨了大型语言模型(LLM)作为解决复杂任务的代理。 
它专注于两种主要方法: 
分解优先的方法, 
在执行前将任务分解为子任务,而 
交错分解方法,该方法基于反馈动态调整分解。
登录后复制

步骤7:定义内存

虽然我们的聊天机器人表现良好并提供了改进的响应,但它仍然缺乏多个交互之间的上下文意识。这是记忆进入图片的地方。

来自llama_index.core.memory Import ChatMemorybuffer

内存= chatmemorybuffer.from_defaults(token_limit = 3000)
登录后复制

步骤8:创建带有内存的聊天引擎

我们将创建一个使用混合搜索和内存的聊天引擎。在LlamainDex中,当我们拥有外部或外部数据时,请确保聊天模式是上下文。

 chat_engine = index.as_chat_engine(
    chat_mode =“上下文”, 
    内存=内存,
    system_prompt =(
        “您是AI助手,他们回答用户问题”
    ),
)
登录后复制

步骤9:测试内存

让我们进行一些查询,并检查内存是否按预期工作。

从ipython.display导入降价,显示

check1 = chat_engine.chat(“在2句中给摘要”)

check2 = chat_engine.chat(“继续摘要,在上两个句子中再添加一个句子”)

check3 = chat_engine.chat(“将上述抽象变成诗”) 
登录后复制

使用llamaindex在抹布中的记忆和混合搜索

使用llamaindex在抹布中的记忆和混合搜索

结论

我们探讨了将内存和混合搜索集成到检索增强发电(RAG)系统中如何显着增强其功能。通过将LlamainDex与Qdrant用作矢量商店和Google的双子座作为大语言模型,我们演示了混合搜索如何结合向量和基于关键字的检索的优势,以提供更精确的结果。内存的添加进一步改善了上下文理解,从而使聊天机器人能够在多个交互之间提供连贯的响应。这些功能共同创造了一个更聪明,更智能的上下文感知系统,使破布管道对复杂的AI应用程序更有效。

关键要点

  • RAG管道中的内存组件的实现显着增强了聊天机器人的上下文意识和在多个交互之间保持连贯对话的能力。
  • 使用QDRANT作为矢量存储的混合搜索集成,结合了向量和关键字搜索的优势,以提高抹布系统中的检索准确性和相关性,从而最大程度地减少了幻觉的风险。免责声明,它并没有完全消除幻觉,而是降低了风险。
  • 利用Llamaindex的ChatMemoryBuffer进行对话历史的有效管理,并具有可配置的令牌限制,以平衡上下文保留和计算资源。
  • 将Google的双子座模型纳入Llamaindex框架中,并将其嵌入提供商嵌入,展示了LlamainDex在适应不同的AI模型和嵌入技术方面的灵活性。

常见问题

1。什么是混合搜索,为什么在抹布中很重要?

答:混合搜索结合了矢量搜索以获取语义理解和关键字搜索精度。它通过允许系统同时考虑上下文和确切的术语来提高结果的准确性,从而可以更好地检索结果,尤其是在复杂的数据集中。

Q2。为什么在抹布中使用QDrant进行混合搜索?

答:QDRANT支持框开的混合搜索,可针对快速嵌入式进行优化,并且可扩展。这使其成为在抹布系统中同时实施基于向量和关键字的搜索的可靠选择,从而确保大规模的性能。

Q3。内存如何改善抹布系统?

A.抹布系统中的内存可以保留对话历史记录,从而使聊天机器人能够在交互之间提供更连贯和上下文的准确响应,从而显着增强了用户体验。

Q 4。我可以将本地模型代替基于云的API用于抹布应用吗?

答:是的,您可以运行本地LLM(例如Ollama或HuggingFace),而不是使用OpenAI之类的基于云的API。这使您可以在不上传到外部服务器的情况下保持对数据的完全控制,这是对隐私敏感应用程序的普遍关注点。

本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。

以上是使用llamaindex在抹布中的记忆和混合搜索的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

最佳AI艺术生成器(免费付款)创意项目 最佳AI艺术生成器(免费付款)创意项目 Apr 02, 2025 pm 06:10 PM

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

开始使用Meta Llama 3.2 -Analytics Vidhya 开始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) 最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) Apr 02, 2025 pm 06:09 PM

本文比较了诸如Chatgpt,Gemini和Claude之类的顶级AI聊天机器人,重点介绍了其独特功能,自定义选项以及自然语言处理和可靠性的性能。

顶级AI写作助理来增强您的内容创建 顶级AI写作助理来增强您的内容创建 Apr 02, 2025 pm 06:11 PM

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成

AV字节:Meta' llama 3.2,Google的双子座1.5等 AV字节:Meta' llama 3.2,Google的双子座1.5等 Apr 11, 2025 pm 12:01 PM

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

构建AI代理的前7个代理抹布系统 构建AI代理的前7个代理抹布系统 Mar 31, 2025 pm 04:25 PM

2024年见证了从简单地使用LLM进行内容生成的转变,转变为了解其内部工作。 这种探索导致了AI代理的发现 - 自主系统处理任务和最少人工干预的决策。 Buildin

向员工出售AI策略:Shopify首席执行官的宣言 向员工出售AI策略:Shopify首席执行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

选择最佳的AI语音生成器:评论的顶级选项 选择最佳的AI语音生成器:评论的顶级选项 Apr 02, 2025 pm 06:12 PM

本文评论了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高级AI语音生成器,重点介绍其功能,语音质量和满足不同需求的适用性。

See all articles