跳到主要內容
Open In ColabOpen on GitHub

Microsoft OneNote

本筆記本涵蓋如何從 OneNote 載入文件。

先決條件

  1. 依照 Microsoft 身分識別平台 指示註冊應用程式。
  2. 註冊完成後,Azure 入口網站會顯示應用程式註冊的 [概觀] 窗格。您會看到應用程式 (用戶端) ID。也稱為 client ID,此值會在 Microsoft 身分識別平台中唯一識別您的應用程式。
  3. 在您將在項目 1 遵循的步驟中,您可以將重新導向 URI 設定為 https://127.0.0.1:8000/callback
  4. 在您將在項目 1 遵循的步驟中,在 [應用程式密碼] 區段下產生新的密碼 (client_secret)。
  5. 依照此 文件 中的指示,將下列 SCOPES (Notes.Read) 新增至您的應用程式。
  6. 您需要使用命令 pip install msalpip install beautifulsoup4 安裝 msal 和 bs4 套件。
  7. 在步驟結束時,您必須具備下列值
  • CLIENT_ID
  • CLIENT_SECRET

🧑 從 OneNote 擷取文件的指示

🔑 驗證

依預設,OneNoteLoader 預期 CLIENT_IDCLIENT_SECRET 的值必須儲存為名為 MS_GRAPH_CLIENT_IDMS_GRAPH_CLIENT_SECRET 的環境變數。您可以透過應用程式根目錄中的 .env 檔案或使用指令碼中的下列命令傳遞這些環境變數。

os.environ['MS_GRAPH_CLIENT_ID'] = "YOUR CLIENT ID"
os.environ['MS_GRAPH_CLIENT_SECRET'] = "YOUR CLIENT SECRET"

此載入器使用稱為 代表使用者 的驗證。這是需要使用者同意的 2 步驟驗證。當您例項化載入器時,它會呼叫並列印使用者必須造訪的 URL,以授與應用程式所需權限的同意。使用者接著必須造訪此 URL 並授與應用程式同意。然後使用者必須複製產生的頁面 URL 並將其貼回主控台。如果登入嘗試成功,則方法會傳回 True。

from langchain_community.document_loaders.onenote import OneNoteLoader

loader = OneNoteLoader(notebook_name="NOTEBOOK NAME", section_name="SECTION NAME", page_title="PAGE TITLE")
API 參考:OneNoteLoader

驗證完成後,載入器會將權杖 (onenote_graph_token.txt) 儲存在 ~/.credentials/ 資料夾中。此權杖稍後可用於驗證,而無需執行先前說明的複製/貼上步驟。若要使用此權杖進行驗證,您需要在例項化載入器時將 auth_with_token 參數變更為 True。

from langchain_community.document_loaders.onenote import OneNoteLoader

loader = OneNoteLoader(notebook_name="NOTEBOOK NAME", section_name="SECTION NAME", page_title="PAGE TITLE", auth_with_token=True)
API 參考:OneNoteLoader

或者,您也可以將權杖直接傳遞至載入器。當您想要使用另一個應用程式產生的權杖進行驗證時,這會很有用。例如,您可以使用 Microsoft Graph Explorer 產生權杖,然後將其傳遞至載入器。

from langchain_community.document_loaders.onenote import OneNoteLoader

loader = OneNoteLoader(notebook_name="NOTEBOOK NAME", section_name="SECTION NAME", page_title="PAGE TITLE", access_token="TOKEN")
API 參考:OneNoteLoader

🗂️ 文件載入器

📑 從 OneNote 筆記本載入頁面

OneNoteLoader 可以從儲存在 OneDrive 中的 OneNote 筆記本載入頁面。您可以指定 notebook_namesection_namepage_title 的任何組合,以篩選特定筆記本、特定章節或分別具有特定標題下的頁面。例如,您想要載入儲存在 OneDrive 中任何筆記本中名為 Recipes 的章節下的所有頁面。

from langchain_community.document_loaders.onenote import OneNoteLoader

loader = OneNoteLoader(section_name="Recipes", auth_with_token=True)
documents = loader.load()
API 參考:OneNoteLoader

📑 從頁面 ID 清單載入頁面

另一種可能性是為您想要載入的每個頁面提供 object_ids 清單。為此,您需要查詢 Microsoft Graph API,以尋找您感興趣的所有文件 ID。此 連結 提供端點清單,這將有助於擷取文件 ID。

例如,若要擷取有關儲存在筆記本中的所有頁面的資訊,您需要向 https://graph.microsoft.com/v1.0/me/onenote/pages 發出請求。取得您感興趣的 ID 清單後,您可以使用下列參數例項化載入器。

from langchain_community.document_loaders.onenote import OneNoteLoader

loader = OneNoteLoader(object_ids=["ID_1", "ID_2"], auth_with_token=True)
documents = loader.load()
API 參考:OneNoteLoader

此頁面是否對您有幫助?