Gemini PDF内容总结 API文档
接口说明
通过Gemini模型对PDF文件内容进行智能总结
基础信息
- 请求方式:POST
- Base URL:
www.dmxapi.cn
- 接口路径:
/v1beta/models/gemini-2.5-flash:generateContent
- 认证方式:API Key
请求参数
Headers
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
Content-Type | string | 是 | 固定值 application/json |
Query参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
key | string | 是 | API密钥 (示例: 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
}
]
}
}
注意事项
- PDF文件需小于10MB
- API密钥需妥善保管
- 建议添加异常处理逻辑
- 响应时间取决于PDF大小和内容复杂度