跳至主要内容

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 参考

帮助

如果您有任何问题,您可以查看我们的 开发人员文档 或联系我们在我们的 开发人员社区 中。


此页面是否有用?


您也可以留下详细的反馈 在 GitHub 上.