题意:从 Azure 容器存储中加载文档到 Azure 文档智能的可能性
问题背景:
I have a storage account with Azure Container Storage configured consisting of multiple pdf/word/excel files. I would like to use Azure Document Intelligence to semantically chunk these files.
我配置了一个包含多个pdf/word/excel文件的Azure容器存储帐户。我想使用Azure文档智能(Document Intelligence)来对这些文件进行语义分割。
Is there a possibility to load the files directly from Container Storage to Azure Document Intelligence using langchain
? According to the langchain docs it seems like either file has to be locally available or public url has to be handed over.
是否有可能使用langchain直接从容器存储中将文件加载到Azure文档智能中?根据langchain的文档,似乎文件必须本地可用,或者必须提供一个公共URL。
Attempt: 尝试:
# Prerequisite: An Azure AI Document Intelligence resource in one of the 3 preview regions: East US, West US2, West Europe
import os
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader
file_path = "storage-path-to-file"
endpoint = os.getenv("DOCUMENTINTELLIGENCE_ENDPOINT")
key = os.getenv("DOCUMENTINTELLIGENCE_API_KEY")
loader = AzureAIDocumentIntelligenceLoader(
api_endpoint=endpoint, api_key=key, file_path=file_path, api_model="prebuilt-layout"
)
documents = loader.load()
# Returns:
# Message: Invalid request.
# Inner error: {
# "code": "InvalidManagedIdentity",
# "message": "The managed identity configuration is invalid: Managed identity is not enabled # for the current resource."
# }
问题解决:
Is there a possibility to load the files directly from Container Storage to Azure Document Intelligence using
langchain
? According to the langchain docs it seems like either file has to be locally available or public url has to be handed over.
You can use the below code which loads the files directly from Azure Blob storage using Azure Blob URL + SAS token.
你可以使用下面的代码,该代码通过Azure Blob URL + SAS令牌直接从Azure Blob存储中加载文件。
Code: 代码
import os
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader
#bloburl + ?Sastoken
URL = "https://venkat78932.blob.core.windows.net/test/24005356.pdf?sp=r&st=2024-07-09T12:41:41Z&se=2024-07-09T20:41:41Z&spr=https&sv=2022-11-02&sr=b&sig=eupT8WGH5ojQpXYd%2xxxxxD"
endpoint = os.getenv("DOCUMENTINTELLIGENCE_ENDPOINT")
key = os.getenv("DOCUMENTINTELLIGENCE_API_KEY")
loader = AzureAIDocumentIntelligenceLoader(
api_endpoint=endpoint, api_key=key, url_path=URL, api_model="prebuilt-layout"
)
documents = loader.load()
print(len(documents))
print(documents[0])
Output: 输出
page_content='Word Documents Template\n===\n\n\n## Main heading:\n\nUse the Heading 1 style for primary headings so that screen readers can identify them as such.\n\nIf not already, manually change your heading 1 style to be:\n\n\\- sans serif (e.g. Arial, Verdana, Trebuchet or Calibri),\n\n\\- 16 pt, and\n\n\\- Bold\n\nThen set this formatting as your default for this style.\n\n\n## Sub Headings:\n\nUse Heading 2 style for sub headings.\n\nIf not already, manually change your heading 2 style to be:\n\n\\- sans serif (e.g. Arial, Verdana, Trebuchet or Calibri...................tands out, and does not distort the shape of text as italics and underlining do. Finally, block capitals can be difficult to follow as block capitals remove the natural shape of words, turning them into blocks. Clear layout allows one to focus on the content of visual materials rather than the format.\n\n\n## Furthermore\n\nIf you use headings it makes the creation and upkeep of tables of contents easier (For automatic creation and updating go to: Insert - Reference - Index and Tables - Table of contents).\n'
You can get the Azure Blob URL + SAS token
from portal.
你可以从门户网站上获取Azure Blob URL + SAS令牌。
Portal -> Storage account -> Container -> your file -> Generate sas token -> click Generate sas token and url