Skip to content

Gemini PDF内容总结 API文档

接口说明

通过Gemini模型对PDF文件内容进行智能总结

基础信息

  • 请求方式:POST
  • Base URL:www.dmxapi.cn
  • 接口路径:/v1beta/models/gemini-2.5-flash:generateContent
  • 认证方式:API Key

请求参数

Headers

参数名类型必填说明
Content-Typestring固定值 application/json

Query参数

参数名类型必填说明
keystringAPI密钥 (示例: sk-******)

请求体示例

json
{
  "contents": [
    {
      "parts": [
        {
          "inlineData": {
            "mimeType": "application/pdf",
            "data": "[Base64编码的PDF内容]"
          }
        },
        {
          "text": "请总结这份PDF的核心内容,清晰简洁表达,不要啰嗦。"
        }
      ]
    }
  ]
}

Python调用示例

python
import base64
import requests
import json

# API配置
API_URL = "https://www.dmxapi.cn/v1beta/models/gemini-2.5-flash:generateContent"
API_KEY = "sk-******"  # 替换为你的API密钥
PDF_PATH = "example.pdf"  # PDF文件路径

def encode_file_to_base64(file_path):
    """将文件编码为Base64字符串"""
    try:
        with open(file_path, "rb") as file:
            return base64.b64encode(file.read()).decode("utf-8")
    except Exception as e:
        print(f"文件处理错误: {e}")
        return None

def summarize_pdf():
    """调用API总结PDF内容"""
    # 1. 读取并编码PDF文件
    base64_data = encode_file_to_base64(PDF_PATH)
    if not base64_data:
        return

    # 2. 准备请求数据
    headers = {"Content-Type": "application/json"}
    payload = {
        "contents": [{
            "parts": [
                {"inlineData": {"mimeType": "application/pdf", "data": base64_data}},
                {"text": "请总结这份PDF的核心内容,清晰简洁表达,不要啰嗦。"}
            ]
        }]
    }

    # 3. 发送请求
    try:
        response = requests.post(
            API_URL,
            headers=headers,
            params={"key": API_KEY},
            json=payload
        )
        response.raise_for_status()
        print(json.dumps(response.json(), indent=2, ensure_ascii=False))
    except requests.exceptions.RequestException as e:
        print(f"API请求失败: {e}")
        if e.response:
            print(f"错误详情: {e.response.text}")

if __name__ == "__main__":
    summarize_pdf()

响应示例

json
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "这份PDF的核心内容是**中华人民共和国税务部门于2025年6月6日开具的完税证明**。\n\n它详细列出了识别码为“913101MA7G2FAF35”的纳税实体在2025年5月1日至5月31日期间产生的多笔税款(合计4,947.28元),并确认这些款项已于2025年6月6日完成支付。"
          }
        ]
      },
      "finishReason": "STOP",
      "index": 0,
      "safetyRatings": null
    }
  ],
  "promptFeedback": {
    "safetyRatings": null
  },
  "usageMetadata": {
    "promptTokenCount": 273,
    "candidatesTokenCount": 108,
    "totalTokenCount": 1701,
    "thoughtsTokenCount": 1320,
    "promptTokensDetails": [
      {
        "modality": "TEXT",
        "tokenCount": 15
      },
      {
        "modality": "DOCUMENT",
        "tokenCount": 258
      }
    ]
  }
}

注意事项

  1. PDF文件需小于10MB
  2. API密钥需妥善保管
  3. 建议添加异常处理逻辑
  4. 响应时间取决于PDF大小和内容复杂度

一个 Key 用全球大模型