当前位置: 首页 > article >正文

【RAG】【vector_stores047】Lantern向量存储索引示例

案例目标本案例演示如何使用PostgreSQL数据库和Lantern扩展与LlamaIndex框架结合实现高效的向量搜索和混合搜索功能。主要目标包括展示如何创建基于Lantern的向量索引演示如何使用HNSW索引参数优化搜索性能展示如何实现混合搜索向量搜索全文搜索演示如何从现有向量存储创建索引展示如何配置文本搜索语言参数技术栈与核心依赖核心技术LlamaIndex: 用于构建文档索引和查询的框架PostgreSQL: 关系型数据库作为向量存储的基础Lantern: PostgreSQL的向量扩展提供向量搜索功能OpenAI: 用于生成文本嵌入向量核心依赖pip install llama-index-vector-stores-lanternpip install llama-index-embeddings-openaipip install psycopg2-binarypip install asyncpg环境配置在开始之前需要进行以下环境配置1. 安装必要的依赖包%pip install llama-index-vector-stores-lantern %pip install llama-index-embeddings-openai !pip install psycopg2-binary llama-index asyncpg2. 配置OpenAI API密钥import os os.environ[OPENAI_API_KEY] your_key openai.api_key your_key3. 配置嵌入模型from llama_index.embeddings.openai import OpenAIEmbedding from llama_index.core import Settings # 设置全局嵌入模型 Settings.embed_model OpenAIEmbedding(modeltext-embedding-3-small)4. 创建PostgreSQL数据库import psycopg2 connection_string postgresql://postgres:postgreslocalhost:5432 db_name postgres conn psycopg2.connect(connection_string) conn.autocommit True with conn.cursor() as c: c.execute(fDROP DATABASE IF EXISTS {db_name}) c.execute(fCREATE DATABASE {db_name})案例实现1. 导入必要的库from llama_index.core import SimpleDirectoryReader, StorageContext from llama_index.core import VectorStoreIndex from llama_index.vector_stores.lantern import LanternVectorStore import textwrap import openai from sqlalchemy import make_url2. 加载文档数据# 创建目录并下载数据 !mkdir -p data/paul_graham/ !wget https://raw.githubusercontent.com/run-llama/llama_index/main/docs/examples/data/paul_graham/paul_graham_essay.txt -O data/paul_graham/paul_graham_essay.txt # 加载文档 documents SimpleDirectoryReader(./data/paul_graham).load_data() print(Document ID:, documents[0].doc_id)3. 创建Lantern向量存储和索引url make_url(connection_string) vector_store LanternVectorStore.from_params( databasedb_name, hosturl.host, passwordurl.password, porturl.port, userurl.username, table_namepaul_graham_essay, embed_dim1536, # openai embedding dimension ) storage_context StorageContext.from_defaults(vector_storevector_store) index VectorStoreIndex.from_documents( documents, storage_contextstorage_context, show_progressTrue ) query_engine index.as_query_engine()4. 执行查询# 查询作者做了什么 response query_engine.query(What did the author do?) print(textwrap.fill(str(response), 100)) # 查询1980年代中期发生了什么 response query_engine.query(What happened in the mid 1980s?) print(textwrap.fill(str(response), 100))5. 从现有向量存储创建索引vector_store LanternVectorStore.from_params( databasedb_name, hosturl.host, passwordurl.password, porturl.port, userurl.username, table_namepaul_graham_essay, embed_dim1536, # openai embedding dimension m16, # HNSW M parameter ef_construction128, # HNSW ef construction parameter ef64, # HNSW ef search parameter ) index VectorStoreIndex.from_vector_store(vector_storevector_store) query_engine index.as_query_engine() response query_engine.query(What did the author do?) print(textwrap.fill(str(response), 100))6. 实现混合搜索# 创建支持混合搜索的向量存储 hybrid_vector_store LanternVectorStore.from_params( databasedb_name, hosturl.host, passwordurl.password, porturl.port, userurl.username, table_namepaul_graham_essay_hybrid_search, embed_dim1536, # openai embedding dimension hybrid_searchTrue, text_search_configenglish, ) storage_context StorageContext.from_defaults( vector_storehybrid_vector_store ) hybrid_index VectorStoreIndex.from_documents( documents, storage_contextstorage_context ) # 创建混合查询引擎 hybrid_query_engine hybrid_index.as_query_engine( vector_store_query_modehybrid, sparse_top_k2 ) hybrid_response hybrid_query_engine.query( Who does Paul Graham think of with the word schtick ) print(hybrid_response)案例效果通过本案例的实现可以达到以下效果查询效果示例查询What did the author do?结果返回关于Paul Graham职业生涯和创业经历的详细信息查询What happened in the mid 1980s?结果返回关于1980年代中期AI发展的相关信息混合搜索查询Who does Paul Graham think of with the word schtick结果通过向量搜索和全文搜索的组合返回更精确的结果技术效果高效的向量搜索和检索支持HNSW索引优化搜索性能支持混合搜索向量全文可以从现有向量存储创建索引支持多种文本搜索语言配置案例实现思路本案例的实现思路如下环境准备安装必要的依赖库包括LlamaIndex、Lantern向量存储和PostgreSQL连接器数据库准备创建PostgreSQL数据库配置连接参数数据准备下载并加载Paul Graham的散文作为示例文档向量存储初始化创建LanternVectorStore实例配置嵌入维度索引创建使用加载的文档创建向量索引查询执行执行查询并获取结果展示基本向量搜索功能索引复用展示如何从现有向量存储创建索引并配置HNSW参数混合搜索实现创建支持混合搜索的向量存储结合向量搜索和全文搜索关键技术点HNSW索引使用分层可导航小世界图索引提高搜索性能混合搜索结合向量搜索和全文搜索提高搜索准确性向量存储复用从现有向量存储创建索引避免重复构建文本搜索配置支持多语言文本搜索配置扩展建议基于本案例可以考虑以下扩展方向功能扩展实现更复杂的元数据过滤功能添加自定义重排序策略实现多语言混合搜索添加向量相似度阈值过滤实现增量更新索引功能应用场景扩展构建企业知识库检索系统实现文档相似性分析工具开发智能问答系统构建学术论文检索平台实现多模态搜索系统性能优化建议调整HNSW索引参数(m, ef_construction, ef)以平衡索引构建速度和查询性能优化向量维度和嵌入模型以提高检索精度考虑使用PostgreSQL分区表处理大规模数据调整混合搜索中的sparse_top_k参数以优化全文搜索结果总结本案例展示了如何使用LlamaIndex和Lantern向量存储构建高效的向量搜索系统。通过PostgreSQL和Lantern扩展我们可以利用关系型数据库的强大功能和向量搜索的高效性实现高性能的向量检索。案例中介绍了两种主要的搜索方式纯向量搜索和混合搜索。纯向量搜索适用于语义相似性查询而混合搜索结合了向量搜索和全文搜索的优势能够提供更准确和全面的搜索结果。通过调整HNSW索引参数我们可以根据具体应用场景优化搜索性能。Lantern作为PostgreSQL的向量扩展不仅提供了高效的向量搜索能力还保持了与PostgreSQL生态系统的兼容性使得开发者可以利用PostgreSQL的丰富功能如事务、并发控制和扩展性。总的来说LlamaIndex和Lantern的结合为构建高性能的向量搜索应用提供了一个强大而灵活的解决方案适用于各种需要高效向量搜索的应用场景。

相关文章:

【RAG】【vector_stores047】Lantern向量存储索引示例

案例目标本案例演示如何使用PostgreSQL数据库和Lantern扩展与LlamaIndex框架结合,实现高效的向量搜索和混合搜索功能。主要目标包括:展示如何创建基于Lantern的向量索引演示如何使用HNSW索引参数优化搜索性能展示如何实现混合搜索(向量搜索全…...

中国人饮食结构缺乏那些营养元素呢

根据最新营养监测数据,国人普遍存在矿物质、维生素、膳食纤维摄入不足的问题,属于典型的 “隐性饥饿”(热量充足但微量营养缺乏)。一、最普遍缺乏的矿物质钙现状:人均每日摄入约 356mg,仅达推荐量&#xff…...

告别AI开发混乱:用Spec Workflow MCP + Cursor/Claude,实现从需求到代码的规范流水线

告别AI开发混乱:用Spec Workflow MCP Cursor/Claude实现规范化的需求到代码流水线 当你在深夜第12次修改同一个登录模块时,是否怀疑过AI辅助开发反而让工作变得更复杂?我们常陷入这样的循环:向AI助手抛出一句模糊的指令&#xff…...

Speechless:终极微博备份神器,5分钟掌握完整PDF导出指南

Speechless:终极微博备份神器,5分钟掌握完整PDF导出指南 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 你是否曾担心那些记录…...

终极指南:3分钟彻底卸载Microsoft Edge,还你干净Windows系统 [特殊字符]

终极指南:3分钟彻底卸载Microsoft Edge,还你干净Windows系统 🚀 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_m…...

从Audition到Python:手把手教你用代码复刻一个参数均衡器(附完整源码)

从Audition到Python:手把手教你用代码复刻一个参数均衡器(附完整源码) 在音频处理领域,参数均衡器(Parametric EQ)是专业音频工程师和音乐制作人最常用的工具之一。与固定频段的图示均衡器不同,…...

Speechless:一键将微博内容永久保存为PDF的智能备份工具

Speechless:一键将微博内容永久保存为PDF的智能备份工具 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在信息飞速流转的社交媒体时代&a…...

终极Windows优化指南:让旧电脑重获新生的开源神器

终极Windows优化指南:让旧电脑重获新生的开源神器 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and custom…...

Marimo 高危预认证 RCE 漏洞已遭活跃利用

聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士开源响应式 Python 笔记本平台 Marimo 中存在一个严重漏洞CVE-2026-39987(CVSS评分9.3),攻击者无需认证即可实现远程代码执行 (RCE),影响 Mari…...

Windows Defender移除工具终极指南:3分钟彻底解决系统性能瓶颈

Windows Defender移除工具终极指南:3分钟彻底解决系统性能瓶颈 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mir…...

Coze OAuth授权码模式 vs JWT模式:Java后端如何选择并实现无感鉴权?

Coze OAuth授权码模式 vs JWT模式:Java后端如何选择并实现无感鉴权? 在构建需要与Coze平台深度集成的企业级应用时,鉴权机制的选择直接影响系统的稳定性和自动化程度。面对需要7x24小时稳定运行的后台服务,传统的OAuth授权码模式常…...

从零到一:在Ubuntu 22.04上构建Autoware.universe开发环境与实战演练

1. 环境准备:Ubuntu 22.04基础配置 在开始构建Autoware.universe开发环境之前,我们需要确保Ubuntu系统的基础环境已经正确配置。我建议使用全新安装的Ubuntu 22.04 LTS系统,这样可以避免很多潜在的依赖冲突问题。实测下来,8核CPU8…...

Prodigy-PDF的PDF标注与OCR技术

最近推出了Prodigy插件,通过直接支持第三方集成来扩展Prodigy的功能。其中一款插件是Prodigy-PDF,它提供了PDF标注的功能。 [00:00] 介绍Prodigy-PDF [00:24] 标注PDF分段 [02:22] PDF分段中的OCR [03:55] 折叠启发式算法 本教程相关资源 ● Prodig-ANN:…...

SpaceX 33台猛禽3蓄势待发,3D打印如何让发动机可重复使用性更高

近日,SpaceX公布了第12次星舰试飞的相关信息,预计于5月择机发射。4月12日,马斯克更是公布了搭载33台猛禽3发动机的第三代星舰(V3)现场图片,画面可谓相当震撼。猛禽3发动机在开发和制造过程中大量使用了金属…...

**发散创新:基于Solidity的通证经济模型在去中心化应用中的落地实践**在区块链技术

发散创新:基于Solidity的通证经济模型在去中心化应用中的落地实践 在区块链技术日益成熟的今天,通证经济(Tokenomics) 已成为构建可持续价值网络的核心驱动力。它不仅是激励机制的设计工具,更是重塑用户行为、资源分配…...

JDK1.8环境下的企业级应用:Phi-4-mini-reasoning智能工单分类与路由系统

JDK1.8环境下的企业级应用:Phi-4-mini-reasoning智能工单分类与路由系统 1. 传统工单系统面临的挑战 在仍使用JDK1.8的企业环境中,工单处理系统往往面临三大痛点: 分类效率低:客服人员需要手动阅读每份工单内容,凭经…...

Phi-3-mini-4k-instruct-gguf快速部署:仅需1条命令启动网页UI,支持中文提示词直输

Phi-3-mini-4k-instruct-gguf快速部署:仅需1条命令启动网页UI,支持中文提示词直输 1. 模型简介 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个经过优化的模型特别适合以下中文场景: 智能问答文本改写与…...

革命性AMD Ryzen硬件调试:SMUDebugTool深度解析与实战应用

革命性AMD Ryzen硬件调试:SMUDebugTool深度解析与实战应用 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

告别云桌面:用IDEA远程服务器开发提升效率的完整指南(附Maven配置技巧)

告别云桌面:用IDEA远程服务器开发提升效率的完整指南(附Maven配置技巧) 在传统开发模式中,云桌面曾是团队协作的标配解决方案,但其高昂的带宽成本和操作延迟问题始终困扰着开发者。如今JetBrains系列工具提供的远程开发…...

Typora隐藏技能:用Mermaid画专业级思维导图,附配色与样式美化全攻略

Typora视觉化思维导图设计:从基础到高级美化的完整实践指南 在信息爆炸的时代,思维导图已成为知识整理与创意发散的必备工具。但大多数工具生成的导图要么过于简陋,要么操作繁琐。作为一款优雅的Markdown编辑器,Typora内置的Merma…...

[特殊字符] 电动汽车BMS系统测试详解

目录🔋 电动汽车BMS系统测试详解一、BMS概述1.1 什么是BMS1.2 BMS核心功能二、电池参数测试2.1 电芯电压测试三、SOC估算测试3.1 SOC估算方法四、均衡功能测试五、安全保护测试六、通信与诊断测试七、性能测试八、总结🔋 电动汽车BMS系统测试详解 深入讲…...

LinkSwift:2025年最实用的网盘直链下载助手完整指南

LinkSwift:2025年最实用的网盘直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

影刀RPA实战:5分钟搞定小红书自动评论,解放双手高效养号

影刀RPA实战:小红书智能评论系统搭建指南 在内容创作者和小型运营团队的实际工作中,小红书账号的日常维护往往占据了大量时间。传统手动评论不仅效率低下,而且难以保持稳定的互动频率。影刀RPA作为一款轻量级自动化工具,能够有效解…...

cv_unet_image-colorization生产环境部署:支持批量处理+日志记录+错误重试机制

cv_unet_image-colorization生产环境部署:支持批量处理日志记录错误重试机制 你是不是遇到过这样的场景?手里有一堆珍贵的黑白老照片,想给它们上色,但一张张手动处理太费时,用在线工具又担心隐私泄露,而且…...

ThinkPad风扇智能控制终极指南:告别噪音,拥抱高效散热

ThinkPad风扇智能控制终极指南:告别噪音,拥抱高效散热 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾经被ThinkPad笔记本的风扇噪音困…...

3个关键步骤:ComfyUI-Impact-Pack图像增强插件完整使用指南

3个关键步骤:ComfyUI-Impact-Pack图像增强插件完整使用指南 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: htt…...

暗黑破坏神2存档编辑新纪元:告别复杂十六进制,拥抱可视化操作

暗黑破坏神2存档编辑新纪元:告别复杂十六进制,拥抱可视化操作 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为修改暗黑破坏神2存档而头疼吗?你是否曾经面对密密麻麻的十六进制代码感到无…...

Win11Debloat终极指南:免费快速优化Windows 11系统的完整方案

Win11Debloat终极指南:免费快速优化Windows 11系统的完整方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...

暗黑破坏神II角色编辑器:解放你的游戏创造力

暗黑破坏神II角色编辑器:解放你的游戏创造力 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾经在暗黑破坏神II中花费数小时刷装备,只为获得一件特定属性的传奇物品…...

3个技巧解锁AMD Ryzen隐藏性能:SMUDebugTool实战指南

3个技巧解锁AMD Ryzen隐藏性能:SMUDebugTool实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://git…...