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登录或个人访问令牌身份验证。

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

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

Confluence API支持页面内容的不同格式。存储格式是用于存储的原始XML表示。视图格式是用于查看的HTML表示,其中宏被呈现为用户查看。您可以传递一个枚举`content_format`参数来指定内容格式,默认设置为`ContentFormat.STORAGE`,支持的值有:ContentFormat.EDITORContentFormat.EXPORT_VIEWContentFormat.ANONYMOUS_EXPORT_VIEWContentFormat.STORAGE`和`ContentFormat.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()
Parameters
  • 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检索到的Space key,默认为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.STORAGE`和`ContentFormat.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]) –

Raises
  • ValueError – 验证输入时出错

  • ImportError – 未安装所需的依赖项。

Methods

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

alazy_load()

一个用于文档的惰性加载器。

aload()

将数据加载到文档对象中。

is_public_page(page)

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

lazy_load()

一个用于文档的惰性加载器。

load(**kwargs)

将数据加载到文档对象中。

load_and_split([text_splitter])

加载文档并分割成块。块作为文档返回。

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参数的正确组合

__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]
Parameters
  • 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 (Optional[int]) –

  • confluence_kwargs (Optional[dict]) –

  • space_key (Optional[str]) –

  • page_ids (Optional[List[str]]) –

  • label (Optional[str]) –

  • cql (Optional[str]) –

  • include_restricted_content (bool) –

  • include_archived_content (bool) –

  • include_attachments (bool) –

  • include_comments (bool) –

  • content_format (ContentFormat) –

  • limit (Optional[int]) –

  • max_pages (Optional[int]) –

  • ocr_languages (Optional[str]) –

  • keep_markdown_format (bool) –

  • keep_newlines (bool) –

async alazy_load() AsyncIterator[Document]

一个用于文档的惰性加载器。

Return type

AsyncIterator[Document]

async aload() List[Document]

将数据加载到文档对象中。

Return type

List[Document]

is_public_page(page: dict) bool[source]

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

Parameters

page (dict) –

Return type

bool

lazy_load() Iterator[Document][source]

一个用于文档的惰性加载器。

Return type

Iterator[Document]

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

将数据加载到文档对象中。

Parameters

kwargs (Any) –

Return type

List[Document]

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

加载文档并分割成块。块作为文档返回。

不要覆盖此方法。应该被视为已弃用!

参数:
text_splitter: 用于分割文档的TextSplitter实例。

默认为RecursiveCharacterTextSplitter。

返回:

文档列表。

Parameters

text_splitter (Optional[TextSplitter]) –

Return type

List[Document]

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

对各种检索页面的方法进行分页。

不幸的是,由于页面大小的限制,有时Confluence API的限制值不匹配。如果`limit`大于100,Confluence似乎会将响应限制为100。此外,由于Atlassian Python包的原因,我们无法从“_links”键中获取“next”值,因为它们只从结果键返回值。因此,在这里,分页从0开始,直到max_pages,每次请求获取`limit`数量的页面。我们必须手动检查返回的页面列表的长度是否有更多文档,而不仅仅是检查响应中是否存在`next`键,就像这个页面所建议的那样: https://developer.atlassian.com/server/confluence/pagination-in-the-rest-api/

Parameters
  • retrieval_method (callable) – 用于检索文档的函数

  • kwargs (Any) –

Returns

文档列表

Return type

List

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

  • ocr_languages (Optional[str]) –

Return type

List[str]

process_doc(link: str) str[source]
Parameters

link (str) –

Return type

str

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

  • ocr_languages (Optional[str]) –

Return type

str

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]
Parameters
  • page (dict) –

  • include_attachments (bool) –

  • include_comments (bool) –

  • content_format (ContentFormat) –

  • ocr_languages (Optional[str]) –

  • keep_markdown_format (Optional[bool]) –

  • keep_newlines (bool) –

Return type

Document

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]

将页面列表处理成文档列表。

Parameters
  • pages (List[dict]) –

  • include_restricted_content (bool) –

  • include_attachments (bool) –

  • include_comments (bool) –

  • content_format (ContentFormat) –

  • ocr_languages (Optional[str]) –

  • keep_markdown_format (Optional[bool]) –

  • keep_newlines (bool) –

Return type

Iterator[Document]

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

  • ocr_languages (Optional[str]) –

Return type

str

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

  • ocr_languages (Optional[str]) –

Return type

str

process_xls(link: str) str[source]
Parameters

link (str) –

Return type

str

static 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]

验证init参数的正确组合

Parameters
  • url (Optional[str]) –

  • api_key (Optional[str]) –

  • username (Optional[str]) –

  • session (Optional[Session]) –

  • oauth2 (Optional[dict]) –

  • token (Optional[str]) –

Return type

Optional[List]

Examples using ConfluenceLoader