You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit集成Azure Document Intelligence分析PDF时出现InvalidContent错误的问题求助

Streamlit集成Azure Document Intelligence分析PDF时出现InvalidContent错误的问题求助

大家好,我现在碰到一个棘手的问题,想请各位帮忙看看:

我在Streamlit应用里做了PDF上传功能,代码是这样的:

import streamlit as st

uploaded_file = st.file_uploader("Upload pdf file", type="pdf")
result = analyze_general_document(uploaded_file)

之后我想用Azure Document Intelligence的Python包分析这个PDF,相关代码如下:

from io import BytesIO
from azure.core.credentials import AzureKeyCredential
from azure.ai.formrecognizer import DocumentAnalysisClient


def set_client(secrets: dict):
    endpoint = secrets["AI_DOCS_BASE"]
    key = secrets["AI_DOCS_KEY"]
    document_analysis_client = DocumentAnalysisClient(endpoint=endpoint, credential=AzureKeyCredential(key))
    return document_analysis_client


def analyze_general_document(uploaded_file, secrets: dict):
    print(f"File type: {uploaded_file.type}")
    print(f"File size: {uploaded_file.size} bytes")
    client = set_client(secrets)
    # poller = client.begin_analyze_document_from_url("prebuilt-document", formUrl)
    poller = client.begin_analyze_document("prebuilt-document", document=uploaded_file)

终端里能正常打印出文件的类型和大小:

File type: application/pdf
File size: 6928426 bytes

而且用PyMuPDF打开这个文件也完全没问题,但调用begin_analyze_document方法时却抛出了如下异常:

Traceback (most recent call last):
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\streamlit\runtime\scriptrunner\exec_code.py", line 88, in exec_func_with_error_handling
    result = func()
             ^^^^^^
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 579, in code_to_exec
    exec(code, module.__dict__)
  File "C:\Users\myuser\Documents\visual-studio-code\project\project-ai-docs\webapp\app.py", line 79, in <module>
    main()
  File "C:\Users\myuser\Documents\visual-studio-code\project\project-ai-docs\webapp\app.py", line 61, in main
    zip_content = process_pdf(uploaded_file, secrets)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\myuser\Documents\visual-studio-code\project\project-ai-docs\webapp\app_backend.py", line 40, in process_pdf
    analyze_general_document(uploaded_file, secrets)
  File "C:\Users\myuser\Documents\visual-studio-code\project\project-ai-docs\webapp\az_document_intelligence.py", line 18, in analyze_general_document
    poller = client.begin_analyze_document("prebuilt-document", document=uploaded_file)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\azure\core\tracing\decorator.py", line 105, in wrapper_use_tracer
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\azure\ai\formrecognizer\_document_analysis_client.py", line 129, in begin_analyze_document
    return _client_op_path.begin_analyze_document(  # type: ignore
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\azure\core\tracing\decorator.py", line 105, in wrapper_use_tracer
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\azure\ai\formrecognizer\_generated\v2023_07_31\operations\_document_models_operations.py", line 518, in begin_analyze_document
    raw_result = self._analyze_document_initial(  # type: ignore
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\myuser\AppData\Local\miniconda3\envs\projectai\Lib\site-packages\azure\ai\formrecognizer\_generated\v2023_07_31\operations\_document_models_operations.py", line 443, in _analyze_document_initial
    raise HttpResponseError(response=response)
azure.core.exceptions.HttpResponseError: (InvalidRequest) Invalid request.
Code: InvalidRequest
Message: Invalid request.
Inner error: {
    "code": "InvalidContent",
    "message": "The file is corrupted or format is unsupported. Refer to documentation for the list of supported formats."
}

我实在搞不懂为什么这个PDF会被判定为无效,后来我尝试把文件包装成BytesIO对象,代码改成这样,但还是没用:

def analyze_general_document(uploaded_file, secrets: dict):
    print(f"File type: {uploaded_file.type}")
    print(f"File size: {uploaded_file.size} bytes")
    # Read the file as bytes
    file_bytes = uploaded_file.read()
    client = set_client(secrets)
    # poller = client.begin_analyze_document_from_url("prebuilt-document", formUrl)
    poller = client.begin_analyze_document("prebuilt-document", document=BytesIO(file_bytes))

有没有大佬能帮我分析下问题出在哪,该怎么解决呢?

备注:内容来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 17:49:36