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

向gemini-1.5-pro-latest发送PDF触发500错误,求技术排查

Gemini-1.5-Pro-Latest接口500错误排查与解决

可能的错误原因

  • Base64编码异常:代码中对PDF字节的base64编码可能存在不完整或多余字符(如换行),导致API无法解析Blob数据。
  • Content结构不符合API要求:传入的content数组中,文本提示未封装为Part对象,Gemini多模态接口要求所有内容必须是Part实例的列表。
  • PDF文件本身问题:文件损坏、加密,或大小超出API处理上限(单文件最大2GB,过大需分块),导致服务端解析失败。
  • 缺少响应异常处理:直接调用response.text会忽略API返回的错误状态,无法获取500错误的具体原因,甚至引发二次报错。
  • API配置或环境问题:未正确设置API密钥、请求超时过短,或触发服务端临时限流。

对应解决方法

1. 修复Base64编码逻辑

确保PDF字节流完整读取,且base64编码无多余格式:

# 正确读取PDF文件字节(替代原pdf_file.getvalue(),确保完整读取)
with open("target.pdf", "rb") as f:
    pdf_bytes = f.read()
base64_data = base64.b64encode(pdf_bytes).decode("utf-8")
blob = genai.Blob(mime_type="application/pdf", data=base64_data)
document = genai.Part(inline_data=blob)

2. 修正Content结构

将文本提示也封装为Part对象,符合API多模态内容格式要求:

def runGemini(prompt, model, document=None):
    genai_model = genai.GenerativeModel(model)
    content_list = []
    if document:
        content_list.append(document)
    # 文本提示必须封装为Part对象
    content_list.append(genai.Part.from_text(prompt))
    
    try:
        response = genai_model.generate_content(content_list)
        response.resolve()  # 确保获取完整响应(处理流式返回)
        # 检查是否存在提示词拦截
        if response.prompt_feedback.block_reason:
            print(f"提示词被拦截: {response.prompt_feedback.block_reason}")
            return None
        return response.text
    except genai.APIError as api_err:
        print(f"API错误(状态码 {api_err.status_code}): {api_err.message}")
        return None
    except Exception as err:
        print(f"未知错误: {str(err)}")
        return None

3. 校验并处理PDF文件

  • 手动打开PDF确认文件未损坏、未加密;
  • 若文件超过2GB,拆分后分块调用API;
  • 避免上传空文件或零字节文件。

4. 完善API请求配置

  • 确保已正确配置API密钥:
import google.generativeai as genai
genai.configure(api_key="YOUR_GEMINI_API_KEY")
  • 设置合理的请求超时时间(大文件需更长超时):
response = genai_model.generate_content(content_list, request_options={"timeout": 600})
  • 登录Google Cloud控制台,检查API调用配额是否充足。

内容的提问来源于stack exchange,提问作者Walucas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:46:27