Skip to main content
Confluence 是一个 Wiki 协作平台,用于保存和整理所有与项目相关的资料。作为知识库,Confluence 主要服务于内容管理活动。 此加载器允许您将 Confluence 页面抓取并处理为 Document 对象。

身份验证方式

支持以下身份验证方式:
  • username/api_key(用户名/API 密钥)
  • OAuth2 login(OAuth2 登录)
  • cookies(Cookie)
  • 本地部署:token(令牌)身份验证

页面选择

您可以使用以下方式指定要加载的页面:
  • page_ids列表): 指定 page_id 值的列表,用于加载对应页面。
  • space_key字符串): 指定 space_key 值的字符串,用于加载指定 Confluence 空间内的所有页面。
如果同时提供 page_idsspace_key,加载器将返回两个列表的并集页面。 提示: space_keypage_id 均可在 Confluence 页面的 URL 中找到: https://yoursite.atlassian.com/wiki/spaces/{space_key}/pages/{page_id}

附件

您可以通过将布尔参数 include_attachments 设置为 True(默认值为 False)来在加载的 Document 对象中包含附件。启用后,所有附件将被下载,其文本内容将被提取并添加到文档中。 当前支持的附件类型:
  • PDF(.pdf
  • PNG(.png
  • JPEG/JPG(.jpeg.jpg
  • SVG(.svg
  • Word(.doc.docx
  • Excel(.xls.xlsx

在使用 ConfluenceLoader 之前,请确保已安装最新版本的 atlassian-python-api 包:
pip install -qU  atlassian-python-api

示例

用户名与密码,或用户名与 API 令牌(仅限 Atlassian 云端)

本示例使用用户名与密码进行身份验证;如果您连接的是 Atlassian 云托管版 Confluence,则使用用户名与 API 令牌。 您可以在以下地址生成 API 令牌:id.atlassian.com/manage-profile/security/api-tokens limit 参数指定单次调用中检索的文档数量,而非总检索文档数量。 默认情况下,代码将以每批 50 篇的方式最多返回 1000 篇文档。要控制文档总数,请使用 max_pages 参数。 请注意,atlassian-python-api 包中 limit 参数的最大值目前为 100。
from langchain_community.document_loaders import ConfluenceLoader

loader = ConfluenceLoader(
    url="https://yoursite.atlassian.com/wiki",
    username="<your-confluence-username>",
    api_key="<your-api-token>",
    space_key="<your-space-key>",
    include_attachments=True,
    limit=50,
)
documents = loader.load()

个人访问令牌(仅限服务器/本地部署)

此方法仅适用于 Data Center/Server 本地部署版本。 有关如何生成个人访问令牌(PAT)的更多信息,请查阅 Confluence 官方文档:confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html。 使用 PAT 时,您只需提供令牌值,不能同时提供用户名。 请注意,ConfluenceLoader 将在生成 PAT 的用户权限下运行,只能加载该用户有权访问的文档。
from langchain_community.document_loaders import ConfluenceLoader

loader = ConfluenceLoader(
    url="https://confluence.yoursite.com/",
    token="<your-personal-access-token>",
    space_key="<your-space-key>",
    include_attachments=True,
    limit=50,
    max_pages=50,
)
documents = loader.load()