跳到主要內容

BoxLoader

此筆記本提供了 Box 文件載入器 的快速入門概述。有關所有 BoxLoader 功能和配置的詳細文件,請前往 API 參考文件

概述

BoxLoader 類別可協助您以 Langchain 的 Document 格式從 Box 取得非結構化內容。您可以使用包含 Box 檔案 ID 的 List[str],或包含 Box 資料夾 ID 的 str 來執行此操作。

您必須提供包含 Box 檔案 ID 的 List[str],或包含資料夾 ID 的 str。如果從具有資料夾 ID 的資料夾取得檔案,您也可以設定一個 Bool,告知載入器也取得該資料夾中的所有子資料夾。

資訊

一個 Box 實例可以包含 PB 級別的檔案,並且資料夾可以包含數百萬個檔案。選擇要索引的資料夾時請謹慎。並且我們建議永遠不要遞迴地從資料夾 0 取得所有檔案。資料夾 ID 0 是您的根資料夾。

沒有文字表示形式的檔案將被跳過。

整合詳細資訊

類別套件本地可序列化JS 支援
BoxLoaderlangchain_box

載入器功能

來源文件延遲載入非同步支援
BoxLoader

設定

為了使用 Box 套件,您需要以下幾項

  • 一個 Box 帳戶 — 如果您不是目前的 Box 客戶,或想在您的生產 Box 實例之外進行測試,您可以使用免費的開發人員帳戶
  • 一個 Box 應用程式 — 這是在 開發人員控制台 中配置的,並且對於 Box AI,必須啟用 Manage AI 範圍。在這裡,您還將選擇您的身份驗證方法。
  • 該應用程式必須由 管理員啟用。對於免費的開發人員帳戶,這是註冊該帳戶的任何人。

憑證

對於這些範例,我們將使用 令牌驗證。這可以用於任何 驗證方法。只需使用任何方法取得令牌即可。如果您想了解有關如何將其他驗證類型與 langchain-box 一起使用的更多資訊,請造訪 Box 提供者 文件。

import getpass
import os

box_developer_token = getpass.getpass("Enter your Box Developer Token: ")
Enter your Box Developer Token:  ········

如果您想取得模型呼叫的自動追蹤,您也可以透過取消註解下面的內容來設定您的 LangSmith API 金鑰

# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"

安裝

安裝 langchain_box

%pip install -qU langchain_box

初始化

載入檔案

如果您想要載入檔案,則必須在實例化時提供檔案 ID 的 List

這需要 1 條資訊

  • box_file_ids (List[str])- Box 檔案 ID 的清單。
from langchain_box.document_loaders import BoxLoader

box_file_ids = ["1514555423624", "1514553902288"]

loader = BoxLoader(
box_developer_token=box_developer_token,
box_file_ids=box_file_ids,
character_limit=10000, # Optional. Defaults to no limit
)
API 參考:BoxLoader

從資料夾載入

如果您希望從資料夾載入檔案,則必須在實例化時提供帶有 Box 資料夾 ID 的 str

這需要 1 條資訊

  • box_folder_id (str)- 包含 Box 資料夾 ID 的字串。
from langchain_box.document_loaders import BoxLoader

box_folder_id = "260932470532"

loader = BoxLoader(
box_folder_id=box_folder_id,
recursive=False, # Optional. return entire tree, defaults to False
character_limit=10000, # Optional. Defaults to no limit
)
API 參考:BoxLoader

載入

docs = loader.load()
docs[0]
Document(metadata={'source': 'https://dl.boxcloud.com/api/2.0/internal_files/1514555423624/versions/1663171610024/representations/extracted_text/content/', 'title': 'Invoice-A5555_txt'}, page_content='Vendor: AstroTech Solutions\nInvoice Number: A5555\n\nLine Items:\n    - Gravitational Wave Detector Kit: $800\n    - Exoplanet Terrarium: $120\nTotal: $920')
print(docs[0].metadata)
{'source': 'https://dl.boxcloud.com/api/2.0/internal_files/1514555423624/versions/1663171610024/representations/extracted_text/content/', 'title': 'Invoice-A5555_txt'}

延遲載入

page = []
for doc in loader.lazy_load():
page.append(doc)
if len(page) >= 10:
# do some paged operation, e.g.
# index.upsert(page)

page = []

API 參考

如需所有 BoxLoader 功能和配置的詳細文件,請前往API 參考文件

說明

如果您有任何問題,可以查看我們的開發者文件,或在我們的開發者社群中與我們聯繫。


此頁面是否有幫助?