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

【RAG】【retrievers09】Pathway检索器:实时数据索引与检索

案例目标

本案例展示如何使用Pathway框架构建实时数据索引与检索系统,实现动态数据源的持续监控和实时更新。Pathway是一个开源的数据处理框架,允许开发人员轻松构建处理实时数据源和变化数据的数据转换管道和机器学习应用程序。

通过PathwayRetriever,我们可以连接到实时更新的数据索引,获取最新的检索结果,而无需手动重新构建索引。这对于需要处理频繁变化数据的应用场景(如文档协作、实时数据流等)特别有价值。

技术栈与核心依赖

llama-index-retrievers-pathway

pathway

llama-index-embeddings-openai

llama-index-core

llama-index-llms-openai

环境配置

# 安装必要的依赖
pip install llama-index-retrievers-pathway pathway
pip install llama-index-embeddings-openai

# 设置API密钥
import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

案例实现

1. 使用公共演示管道

步骤 1

连接到Pathway提供的公共演示管道:

from llama_index.retrievers.pathway import PathwayRetriever

# 连接到公共演示管道
retriever = PathwayRetriever(
url="https://demo-document-indexing.pathway.stream"
)

# 执行检索
results = retriever.retrieve("what is pathway")
for result in results:
print(f"Score: {result.score}, Text: {result.text[:100]}...")

2. 构建自定义数据处理管道

步骤 2

定义数据源:

import pathway as pw

# 定义数据源列表
data_sources = []

# 添加本地文件系统数据源
data_sources.append(
pw.io.fs.read(
"./data",
format="binary",
mode="streaming",
with_metadata=True,
)
)

# 可以添加更多数据源,如Google Drive、SharePoint等
# data_sources.append(
# pw.io.gdrive.read(
# object_id="your_folder_id",
# service_user_credentials_file="credentials.json",
# with_metadata=True
# )
# )

步骤 3

创建文档索引管道:

from pathway.xpacks.llm.vector_store import VectorStoreServer
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core.node_parser import TokenTextSplitter

# 初始化嵌入模型
embed_model = OpenAIEmbedding(embed_batch_size=10)

# 定义转换管道
transformations_example = [
TokenTextSplitter(
chunk_size=150,
chunk_overlap=10,
separator=" ",
),
embed_model,
]

# 创建向量存储服务器
processing_pipeline = VectorStoreServer.from_llamaindex_components(
*data_sources,
transformations=transformations_example,
)

# 定义服务器主机和端口
PATHWAY_HOST = "127.0.0.1"
PATHWAY_PORT = 8754

# 运行服务器
processing_pipeline.run_server(
host=PATHWAY_HOST,
port=PATHWAY_PORT,
with_cache=False,
threaded=True
)

步骤 4

连接到自定义管道:

# 连接到自定义管道
retriever = PathwayRetriever(host=PATHWAY_HOST, port=PATHWAY_PORT)

# 执行检索
results = retriever.retrieve("what is pathway")
for result in results:
print(f"Score: {result.score}, Text: {result.text[:100]}...")

3. 在查询引擎中使用

步骤 5

创建查询引擎:

from llama_index.core.query_engine import RetrieverQueryEngine

# 创建查询引擎
query_engine = RetrieverQueryEngine.from_args(retriever)

# 执行查询
response = query_engine.query("Tell me about Pathway")
print(str(response))

案例效果

Pathway检索器提供了实时数据索引和检索能力,具有以下优势:

🔄实时更新

数据源中的任何更改都会自动反映在索引中,无需手动重建索引

📊多源集成

可以同时监控多个数据源,如本地文件、云存储、Google Drive等

⚡高效处理

使用流式处理模式,高效处理数据变化和更新

🔧灵活配置

支持自定义数据转换管道和嵌入模型

案例实现思路

Pathway检索器的核心思路是通过流式数据处理管道实现实时索引更新:

  1. 数据源监控:使用Pathway的连接器持续监控各种数据源的变化
  2. 实时处理:当检测到数据变化时,自动触发数据处理管道
  3. 增量更新:只处理变化的数据部分,而不是重建整个索引
  4. 向量存储:将处理后的数据转换为向量并存储在向量数据库中
  5. 检索接口:提供标准检索接口,与LlamaIndex生态系统无缝集成

这种实时索引方法特别适用于需要处理频繁变化数据的应用场景,如协作文档、实时数据流、动态内容网站等。通过Pathway框架,开发人员可以构建复杂的数据处理管道,包括SQL类操作、时间窗口分组、数据源连接等,同时保持实时更新的能力。

扩展建议

  • 多模态数据处理:扩展到处理图像、音频等多模态数据
  • 高级数据转换:集成更复杂的数据转换和预处理逻辑
  • 分布式部署:将Pathway管道部署到分布式环境,提高处理能力
  • 缓存策略:实现智能缓存策略,提高检索性能
  • 安全与权限:添加数据访问控制和权限管理
  • 监控与告警:集成监控系统,跟踪管道性能和数据质量
  • 自定义连接器:开发特定数据源的连接器,扩展支持范围

总结

Pathway检索器为LlamaIndex生态系统带来了实时数据处理能力,解决了传统静态索引在处理动态数据时的局限性。通过流式数据处理管道,Pathway能够自动监控数据源变化并实时更新索引,确保检索结果始终反映最新的数据状态。

这种实时索引方法对于需要处理频繁变化数据的应用场景特别有价值,如协作文档平台、实时数据分析、动态内容网站等。随着企业对实时数据处理需求的增长,Pathway检索器将在构建智能、响应迅速的RAG应用中发挥越来越重要的作用。

http://www.jsqmd.com/news/862035/

相关文章:

  • 适配多层级组织管理,科学运用 360 度反馈打造公平高效绩效文化
  • 2026年整箱榨菜厂家精选合集 - 行业平台推荐
  • 第2章:文档加载与智能分块——RAG的第一步
  • HTTP状态码与请求方式全解析【个人八股】
  • VGG16猫狗二分类
  • 工程实战:基于 GPIO 物理旁路极速部署机器人电梯调度系统的设计
  • 微波遥感杂谈五(微波辐射计)
  • 仪式感,从来与你无关
  • 慢驴效应(懒驴效应)
  • 3.url编码
  • Spec-Kit + Superpowers 实战:Go语言博客论坛系统的规范驱动开发
  • VisionPro 中 验证工具 ID Verfiction
  • 性价比高的国产PLM软件公司
  • 关于 ops-transformer 和它背后那套系统,几个我见过最常见的误解
  • 数采网关的应用与特点
  • 2025-2026年国内跨境电商TRO解冻机构:五大机构产品好的产品下架风险应对注意事项
  • 本科论文不用熬大夜?paperxie 智能写作,把万字初稿的时间从 30 天压到 3 小时
  • LeetCode 27 · 移除元素——双指针一次遍历搞定,O(n²) 暴力解瞬间不香了
  • 11.三层网络VXLAN
  • 【SSD】闪存1
  • VGG16猫狗二分类数据集处理
  • ops-transformer 基础设施性能实验报告:GE 融合边界与 Runtime 调度效率实测
  • 机器学习之逻辑回归算法
  • 远程技术面试的潜规则:摄像头角度可能影响你的录用
  • RUST编程学习.2语法
  • N-Tron交换机的网络可用性到底有多强?
  • 终极指南:5分钟掌握iFakeLocation实现iOS虚拟定位的完整方法
  • 鸿蒙中的自由流转
  • Midjourney色彩一致性难题破解(CMYK→sRGB跨域校准实战手册)
  • 英伟达的“围城”:云厂商自研芯片,攻到了哪一步?