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 支援 |
---|---|---|---|---|
BoxLoader | langchain_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
)
從資料夾載入
如果您希望從資料夾載入檔案,則必須在實例化時提供帶有 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
)
載入
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 參考文件
說明
如果您有任何問題,可以查看我們的開發者文件,或在我們的開發者社群中與我們聯繫。