langchain_community.document_loaders.confluence.ConfluenceLoader

class langchain_community.document_loaders.confluence.ConfluenceLoader(url: str, api_key: Optional[str] = None, username: Optional[str] = None, session: Optional[Session] = None, oauth2: Optional[dict] = None, token: Optional[str] = None, cloud: Optional[bool] = True, number_of_retries: Optional[int] = 3, min_retry_seconds: Optional[int] = 2, max_retry_seconds: Optional[int] = 10, confluence_kwargs: Optional[dict] = None, *, space_key: Optional[str] = None, page_ids: Optional[List[str]] = None, label: Optional[str] = None, cql: Optional[str] = None, include_restricted_content: bool = False, include_archived_content: bool = False, include_attachments: bool = False, include_comments: bool = False, content_format: ContentFormat = ContentFormat.STORAGE, limit: Optional[int] = 50, max_pages: Optional[int] = 1000, ocr_languages: Optional[str] = None, keep_markdown_format: bool = False, keep_newlines: bool = False)[source]

加载数据库 Confluence 页面。

https://llamahub.ai/l/confluence 的移植。目前支持用户名/api_key、OAuth2登录或个人访问令牌认证。

指定要加载到Document对象中的页面列表page_ids和/或space_key,如果都指定了,则返回这两个集合并集。

您还可以指定一个布尔值include_attachments来包含附件,默认设置为False,如果设置为True,则所有附件都将被下载,ConfluenceLoader将从附件中提取文本并将其添加到Document对象中。当前支持的附件类型有:PDF、PNG、JPEG/JPG、SVG、Word和Excel。

Confluence API支持不同的页面内容格式。存储格式是用于存储的原始XML表示形式。视图格式是用于查看的HTML表示形式,其中宏被渲染成用户查看的样子。您可以通过传递枚举参数content_format来指定内容格式,默认设置为ContentFormat.STORAGE,支持的值有:ContentFormat.EDITORContentFormat.EXPORT_VIEWContentFormat.ANONYMOUS_EXPORT_VIEWContentFormat.STORAGEContentFormat.VIEW

提示:space_key和page_id都可以在Confluence页面的URL中找到 - https://yoursite.atlassian.com/wiki/spaces/<space_key>/pages/<page_id>

示例

from langchain_community.document_loaders import ConfluenceLoader

loader = ConfluenceLoader(
    url="https://yoursite.atlassian.com/wiki",
    username="me",
    api_key="12345",
    space_key="SPACE",
    limit=50,
)
documents = loader.load()

# Server on perm
loader = ConfluenceLoader(
    url="https://confluence.yoursite.com/",
    username="me",
    api_key="your_password",
    cloud=False,
    space_key="SPACE",
    limit=50,
)
documents = loader.load()
参数
  • url (str) – _描述_

  • api_key (str, optional) – _描述_,默认为None

  • username (str, optional) – _描述_,默认为None

  • oauth2 (dict, optional) – _描述_,默认为{}

  • token (str, optional) – _描述_,默认为None

  • cloud (bool, optional) – _描述_,默认为True

  • number_of_retries (Optional[int], optional) – 重试次数,默认为3

  • min_retry_seconds (Optional[int], optional) – 默认为2

  • max_retry_seconds (Optional[int], optional) – 默认为10

  • confluence_kwargs (dict, optional) – 用于初始化confluence的额外kwargs

  • space_key (Optional[str], optional) – 从confluence URL中检索到的空间密钥,默认为None

  • page_ids (Optional[List[str]], optional) – 要加载的具体页面ID列表,默认为None

  • label (Optional[str], optional) – 获取具有此标签的所有页面,默认为None

  • cql (Optional[str], optional) – CQL表达式,默认为None

  • include_restricted_content (bool, optional) – 默认为False

  • include_archived_content (bool, optional) – 是否包括存档内容,默认为False

  • include_attachments (bool, optional) – 默认为False

  • include_comments (bool, optional) – 默认为False

  • content_format (ContentFormat) – 指定内容格式,默认为ContentFormat.STORAGE,支持的值有:ContentFormat.EDITORContentFormat.EXPORT_VIEWContentFormat.ANONYMOUS_EXPORT_VIEWContentFormat.STORAGEContentFormat.VIEW

  • limit (int, optional) – 每次请求要检索的页面最大数,默认为50

  • max_pages (int, optional) – 总共要检索的页面最大数,默认1000

  • ocr_languages (str, optional) – Tesseract代理使用的语言。要使用语言,您首先需要安装适当的Tesseract语言包。

  • keep_markdown_format (bool) – 是否保留Markdown格式,默认为False

  • keep_newlines (bool) – 是否保留换行格式,默认为False

  • session (Optional[Session]) –

抛出异常
  • ValueError – 输入验证过程中的错误

  • ImportError – 必要的依赖未安装。

方法

__init__(url[, api_key, username, session, ...])

alazy_load()

Documents的懒加载器。

aload()

将数据加载到Document对象中。

is_public_page(page)

检查页面是否公开可访问。

lazy_load()

Documents的懒加载器。

load(**kwargs)

将数据加载到Document对象中。

load_and_split([text_splitter])

加载Documents并将其拆分为块。

paginate_request(retrieval_method, **kwargs)

分页检索页面组的各种方法。

process_attachment(page_id[, ocr_languages])

process_doc(link)

process_image(link[, ocr_languages])

process_page(page, include_attachments, ...)

process_pages(pages, ...[, ocr_languages, ...])

将一组页面处理为文档列表。

process_pdf(link[, ocr_languages])

process_svg(link[, ocr_languages])

process_xls(link)

validate_init_args([url, api_key, username, ...])

验证初始化参数的正确组合

__init__(url: str, api_key: Optional[str] = None, username: Optional[str] = None, session: Optional[Session] = None, oauth2: Optional[dict] = None, token: Optional[str] = None, cloud: Optional[bool] = True, number_of_retries: Optional[int] = 3, min_retry_seconds: Optional[int] = 2, max_retry_seconds: Optional[int] = 10, confluence_kwargs: Optional[dict] = None, *, space_key: Optional[str] = None, page_ids: Optional[List[str]] = None, label: Optional[str] = None, cql: Optional[str] = None, include_restricted_content: bool = False, include_archived_content: bool = False, include_attachments: bool = False, include_comments: bool = False, content_format: ContentFormat = ContentFormat.STORAGE, limit: Optional[int] = 50, max_pages: Optional[int] = 1000, ocr_languages: Optional[str] = None, keep_markdown_format: bool = False, keep_newlines: bool = False)[source]
参数
  • url (str) –

  • api_key (Optional[str]) –

  • username (Optional[str]) –

  • session (Optional[Session]) –

  • oauth2 (Optional[dict]) –

  • token (Optional[str]) –

  • cloud (Optional[bool]) –

  • number_of_retries (Optional[int]) –

  • min_retry_seconds (Optional[int]) –

  • max_retry_seconds (可选[整数]) –

  • confluence_kwargs (可选[字典]) –

  • space_key (可选[字符串]) –

  • page_ids (可选[字符串列表]]) –

  • label (可选[字符串]) –

  • cql (可选[字符串]) –

  • include_restricted_content (布尔值) –

  • include_archived_content (布尔值) –

  • include_attachments (布尔值) –

  • include_comments (布尔值) –

  • content_format (ContentFormat) –

  • limit (可选[整数]) –

  • max_pages (可选[整数]) –

  • ocr_languages (可选[字符串]) –

  • keep_markdown_format (布尔值) –

  • keep_newlines (布尔值) –

async alazy_load() AsyncIterator[Document]

Documents的懒加载器。

返回类型

AsyncIterator[Document]

async aload() List[Document]

将数据加载到Document对象中。

返回类型

List[Document]

is_public_page(page: dict) bool[source]

检查页面是否公开可访问。

参数

page (dict) –

返回类型

布尔值

lazy_load() Iterator[Document][source]

Documents的懒加载器。

返回类型

Iterator[Document]

load(**kwargs: Any) List[Document][source]

将数据加载到Document对象中。

参数

kwargs (Any) –

返回类型

List[Document]

load_and_split(text_splitter: Optional[TextSplitter]) List[Document]

加载数据并与相应的部分分割。分割后的片段作为文档返回。

不要重写此方法。此方法有可能被弃用!

参数

text_splitter (Optional[TextSplitter]) – 用于文档分割的 TextSplitter 实例。默认使用 RecursiveCharacterTextSplitter。

返回

文档列表。

返回类型

Document 列表

paginate_request(retrieval_method: Callable, **kwargs: Any) List[source]

分页检索页面组的各种方法。

遗憾的是,由于页面大小的限制,有时 Confluence API 的结果显示不完全符合 limit 值的限制。如果 limit >100,Confluence 将限制返回结果为100。此外,由于 Atlassian Python 包的问题,我们从 "_links" 键中没有获取到 "next" 值,因为它们只从结果键中返回值。因此,在这里,分页从0开始,到 max_pages,每次请求获取limit数量的页面。我们必须手动根据返回的页面列表长度检查是否有更多文档,而不是像本页所述那样只检查响应中是否存在 "next" 键:https://developer.atlassian.com/server/confluence/pagination-in-the-rest-api/

参数
  • retrieval_method (callable) – 用于获取文档的函数

  • kwargs (Any) –

返回

文档列表

返回类型

列表

process_attachment(page_id: str, ocr_languages: Optional[str] = None) List[str][source]
参数
  • page_id (str) –

  • ocr_languages (可选[字符串]) –

返回类型

字符串列表

process_doc(link: str) str[source]
参数

link (str) –

返回类型

字符串

process_image(link: str, ocr_languages: Optional[str] = None) str[source]
参数
  • link (str) –

  • ocr_languages (可选[字符串]) –

返回类型

字符串

process_page(page: dict, include_attachments: bool, include_comments: bool, content_format: ContentFormat, ocr_languages: Optional[str] = None, keep_markdown_format: Optional[bool] = False, keep_newlines: bool = False) Document[source]
参数
  • page (dict) –

  • include_attachments (布尔值) –

  • include_comments (布尔值) –

  • content_format (ContentFormat) –

  • ocr_languages (可选[字符串]) –

  • 保留Markdown格式 (可选[布尔值]) –

  • keep_newlines (布尔值) –

返回类型

文档

process_pages(pages: List[dict], include_restricted_content: bool, include_attachments: bool, include_comments: bool, content_format: ContentFormat, ocr_languages: Optional[str] = None, keep_markdown_format: Optional[bool] = False, keep_newlines: bool = False) Iterator[Document][source]

将一组页面处理为文档列表。

参数
  • pages (列表[字典]) –

  • include_restricted_content (布尔值) –

  • include_attachments (布尔值) –

  • include_comments (布尔值) –

  • content_format (ContentFormat) –

  • ocr_languages (可选[字符串]) –

  • 保留Markdown格式 (可选[布尔值]) –

  • keep_newlines (布尔值) –

返回类型

Iterator[Document]

process_pdf(link: str, ocr_languages: Optional[str] = None) str[source]
参数
  • link (str) –

  • ocr_languages (可选[字符串]) –

返回类型

字符串

process_svg(link: str, ocr_languages: Optional[str] = None) str[source]
参数
  • link (str) –

  • ocr_languages (可选[字符串]) –

返回类型

字符串

process_xls(link: str) str[source]
参数

link (str) –

返回类型

字符串

静态 validate_init_args(url: Optional[str] = None, api_key: Optional[str] = None, username: Optional[str] = None, session: Optional[Session] = None, oauth2: Optional[dict] = None, token: Optional[str] = None) Optional[List][source]

验证初始化参数的正确组合

参数
  • url (可选[str]) –

  • api_key (Optional[str]) –

  • username (Optional[str]) –

  • session (Optional[Session]) –

  • oauth2 (Optional[dict]) –

  • token (Optional[str]) –

返回类型

可选[List]

使用ConfluenceLoader的示例