Package: llama-index-readers-confluence
Confluence LoaderThis loader loads pages from a given Confluence cloud instance. The user needs to specify the base URL for a Confluence
instance to initialize the ConfluenceReader - base URL needs to end with/wiki. The user can optionally specify
OAuth 2.0 credentials to authenticate with the Confluence instance. If no credentials are specified, the loader will
look forCONFLUENCE_API_TOKENorCONFLUENCE_USERNAME/CONFLUENCE_PASSWORDenvironment variables to proceed with basic authentication.
Keep in mindCONFLUENCE_PASSWORDis not your actual password, but an API Token obtained here:https://id.atlassian.com/manage-profile/security/api-tokens.For more on authenticating using OAuth 2.0, checkout:https://atlassian-python-api.readthedocs.io/index.htmlhttps://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/Confluence pages are obtained through one of 4 four mutually exclusive ways:page_ids: Load all pages from a list of page idsspace_key: Load all pages from a spacelabel: Load all pages with a given labelcql: Load all pages that match a given CQL query (Confluence Query Languagehttps://developer.atlassian.com/cloud/confluence/advanced-searching-using-cql/).Whenpage_idsis specified,include_childrenwill cause the loader to also load all descendent pages.
Whenspace_keyis specified,page_statusfurther specifies the status of pages to load: None, 'current', 'archived', 'draft'.limit (int): Deprecated, usemax_num_resultsinstead.max_num_results (int): Maximum number of results to return. If None, return all results. Requests are made in batches to achieve the desired number of results.start(int): Which offset we should jump to when getting pages, only works with space_keycursor(str): An alternative to start for cql queries, the cursor is a pointer to the next "page" when searching atlassian products. The current one after a search can be found withget_next_cursor()User can also specify a booleaninclude_attachmentsto
include attachments, this is set toFalseby default, if set toTrueall attachments will be downloaded and
ConfluenceReader will extract the text from the attachments and add it to the Document object.
Currently supported attachment types are: PDF, PNG, JPEG/JPG, SVG, Word and Excel.Hint:space_keyandpage_idcan both be found in the URL of a page in Confluence -https://yoursite.atlassian.com/wiki/spaces/<space_key>/pages/<page_id>UsageHere's an example usage of the ConfluenceReader.# Example that reads the pages with the `page_ids`fromllama_hub.confluenceimportConfluenceReadertoken={"access_token":"<access_token>","token_type":"<token_type>"}oauth2_dict={"client_id":"<client_id>","token":token}base_url="https://yoursite.atlassian.com/wiki"page_ids=["<page_id_1>","<page_id_2>","<page_id_3"]space_key="<space_key>"reader=ConfluenceReader(base_url=base_url,oauth2=oauth2_dict)documents=reader.load_data(space_key=space_key,include_attachments=True,page_status="current")documents.extend(reader.load_data(page_ids=page_ids,include_children=True,include_attachments=True))# Example that fetches the first 5, then the next 5 pages from a spacefromllama_hub.confluenceimportConfluenceReadertoken={"access_token":"<access_token>","token_type":"<token_type>"}oauth2_dict={"client_id":"<client_id>","token":token}base_url="https://yoursite.atlassian.com/wiki"space_key="<space_key>"reader=ConfluenceReader(base_url=base_url,oauth2=oauth2_dict)documents=reader.load_data(space_key=space_key,include_attachments=True,page_status="current",start=0,max_num_results=5,)documents.extend(reader.load_data(space_key=space_key,include_children=True,include_attachments=True,start=5,max_num_results=5,))# Example that fetches the first 5 results froma cql query, the uses the cursor to pick up on the next elementfromllama_hub.confluenceimportConfluenceReadertoken={"access_token":"<access_token>","token_type":"<token_type>"}oauth2_dict={"client_id":"<client_id>","token":token}base_url="https://yoursite.atlassian.com/wiki"cql=f'type="page" AND label="devops"'reader=ConfluenceReader(base_url=base_url,oauth2=oauth2_dict)documents=reader.load_data(cql=cql,max_num_results=5)cursor=reader.get_next_cursor()documents.extend(reader.load_data(cql=cql,cursor=cursor,max_num_results=5))This loader is designed to be used as a way to load data intoLlamaIndexand/or subsequently used as a Tool in aLangChainAgent. Seeherefor examples.