跳至主要內容

Pathway

Pathway 是一個開放資料處理框架。 它讓您可以輕鬆開發資料轉換管線和機器學習應用程式,這些程式可以處理即時資料來源和變更中的資料。

這個筆記本示範如何將即時的 Pathway 資料索引管線與 Langchain 搭配使用。 您可以像查詢一般向量儲存一樣,從您的鏈中查詢此管線的結果。 然而,在底層,Pathway 會在每次資料變更時更新索引,讓您始終獲得最新的答案。

在本筆記本中,我們將使用一個公開的示範文件處理管線,其功能為:

  1. 監控多個雲端資料來源的資料變更。
  2. 為資料建立向量索引。

若要擁有您自己的文件處理管線,請查看託管方案建立您自己的管線

我們將使用 VectorStore 客戶端連接到索引,該客戶端實現了 similarity_search 函數來檢索匹配的文件。

本文档中使用的基本管线允许毫不费力地构建存储在云位置的文件的简单向量索引。 然而,Pathway 提供了构建实时数据管道和应用程序所需的一切,包括类 SQL 的表操作,如分组缩减和不同数据源之间的连接、基于时间的编组和数据窗口,以及各种连接器。

您需要使用 pip install -qU langchain-community 安裝 langchain-community 才能使用此整合

查詢資料管線

若要實例化和配置客戶端,您需要提供文件索引管線的 urlhostport。 在下面的程式碼中,我們使用一個公開可用的 示範管線,您可以透過 https://demo-document-indexing.pathway.stream 存取其 REST API。 此示範從 Google DriveSharepoint 提取文件,並維護用於檢索文件的索引。

from langchain_community.vectorstores import PathwayVectorClient

client = PathwayVectorClient(url="https://demo-document-indexing.pathway.stream")
API 參考:PathwayVectorClient

我們可以開始提出查詢

query = "What is Pathway?"
docs = client.similarity_search(query)
print(docs[0].page_content)

換您了! 取得您的管線 或將新文件 上傳到示範管線並重試查詢!

根據檔案元資料篩選

我們支援使用 jmespath 表達式進行文件篩選,例如

# take into account only sources modified later than unix timestamp
docs = client.similarity_search(query, metadata_filter="modified_at >= `1702672093`")

# take into account only sources modified later than unix timestamp
docs = client.similarity_search(query, metadata_filter="owner == `james`")

# take into account only sources with path containing 'repo_readme'
docs = client.similarity_search(query, metadata_filter="contains(path, 'repo_readme')")

# and of two conditions
docs = client.similarity_search(
query, metadata_filter="owner == `james` && modified_at >= `1702672093`"
)

# or of two conditions
docs = client.similarity_search(
query, metadata_filter="owner == `james` || modified_at >= `1702672093`"
)

取得索引檔案的資訊

PathwayVectorClient.get_vectorstore_statistics() 提供有關向量儲存狀態的重要統計資訊,例如索引檔案的數量和上次更新的時間戳記。 您可以在您的鏈中使用它來告訴使用者您的知識庫有多新。

client.get_vectorstore_statistics()

您自己的管線

在生產環境中執行

若要擁有您自己的 Pathway 資料索引管線,請查看 Pathway 提供的 託管管線。 您也可以執行您自己的 Pathway 管線 - 有關如何建構管線的資訊,請參閱 Pathway 指南

處理文件

向量化管線支援用於剖析、分割和嵌入文件的可插拔元件。 對於嵌入和分割,您可以使用 Langchain 元件 或查看 嵌入器分割器 在 Pathway 中可用。 如果未提供剖析器,則預設為 UTF-8 剖析器。 您可以在 此處找到可用的剖析器。


此頁面是否對您有所幫助?