pdf-processor-for-minimax — pdf-处理器-for-minimax
v1.0.0使用MiniMax模型从PDF文件中提取文本和图片。当用户需要处理PDF内容、从PDF中提取信息或分析PDF文档时调用此技能。
运行时依赖
安装命令
点击复制技能文档
PDF 处理器
本技能使用MiniMax AI模型处理PDF文件并提取内容(文本和图片)。
何时调用
在以下情况下调用此技能:
用户想要从PDF文件中提取文本 用户想要从PDF中提取并分析图片 用户要求处理或分析PDF文档 用户提到PDF内容提取 用户需要将PDF内容转换为结构化数据 前置要求
使用此技能前,请确保:
MiniMax API密钥:设置环境变量 MINIMAX_API_KEY 或 MINIMAX_GROUP_ID 和 MINIMAX_API_KEY 必需的Python包:如果尚未安装,请安装以下包: pip 安装 pymupdf # 用于PDF处理 pip 安装 minimax-命令行工具ent # MiniMax SDK pip 安装 pillow # 用于图片处理
使用说明 步骤1:读取PDF文件
使用PyMuPDF(fitz)打开并读取PDF:
导入 fitz # PyMuPDF
def 提取_pdf_content(pdf_path): """从PDF中提取文本和图片。""" doc = fitz.open(pdf_path) content = { 'text': [], 'images': [] } for page_num in range(len(doc)): page = doc[page_num] # 提取文本 text = page.获取_text() if text.strip(): content['text'].应用end({ 'page': page_num + 1, 'text': text }) # 提取图片 images = page.获取_images() for img_索引, img in enumerate(images): xref = img[0] base_image = doc.提取_image(xref) image_bytes = base_image["image"] # 保存或处理图片 content['images'].应用end({ 'page': page_num + 1, '索引': img_索引, 'bytes': image_bytes, 'ext': base_image["ext"] }) doc.close() return content
步骤2:使用MiniMax模型进行分析
使用MiniMax的视觉模型分析提取的内容:
导入 base64 from minimax 导入 MiniMax
# 初始化MiniMax客户端 命令行工具ent = MiniMax( API_key=os.environ.获取("MINIMAX_API_KEY"), group_id=os.environ.获取("MINIMAX_GROUP_ID") )
def analyze_with_minimax(text=None, image_bytes=None, prompt=None): """使用MiniMax模型分析内容。""" messages = [] # 准备内容 content = [] if text: content.应用end({"type": "text", "text": text}) if image_bytes: # 将图片转换为base64 base64_image = base64.b64encode(image_bytes).decode('utf-8') content.应用end({ "type": "image_url", "image_url": { "url": f"data:image/jpeg;base64,{base64_image}" } }) if prompt: content.insert(0, {"type": "text", "text": prompt}) messages.应用end({ "角色": "user", "content": content }) # 调用MiniMax API 响应 = 命令行工具ent.chat.completions.创建( 模型="abab6.5s-chat", # 或适当的视觉模型 messages=messages ) return 响应.choices[0].message.content
步骤3:完整工作流程
结合提取和分析:
def process_pdf(pdf_path, analysis_prompt="请分析这个PDF的内容"): """完整的PDF处理工作流程。""" # 步骤1:提取内容 content = 提取_pdf_content(pdf_path) 结果s = { 'text_analysis': [], 'image_analysis': [] } # 步骤2:分析文本 for text_item in content['text']: analysis = analyze_with_minimax( text=text_item['text'], prompt=f"{analysis_prompt}\n\n文本内容:\n{text_item['text']}" ) 结果s['text_analysis'].应用end({ 'page': text_item['page'], 'analysis': analysis }) # 步骤3:分析图片 for img_item in content['images']: analysis = analyze_with_minimax( image_bytes=img_item['bytes'], prompt="请描述这张图片的内容" ) 结果s['image_analysis'].应用end({ 'page': img_item['page'], 'analysis': analysis }) return 结果s
使用示例 # 处理PDF文件 pdf_path = "/path/to/document.pdf" 结果s = process_pdf(pdf_path, "请总结这个文档的主要内容")
# 打印结果 for item in 结果s['text_analysis']: print(f"第{item['page']}页:{item['analysis']}")
for item in 结果s['image_analysis']: print(f"第{item['page']}页图片:{item['analysis']}")
重要注意事项 API限制:MiniMax API可能有速率限制。对于大型PDF,请实现适当的延迟。 图片大小:大型图片在发送到API之前可能需要调整大小。 成本:处理包含大量图片的大型文档时,请注意API成本。 错误处理:始终为API调用和文件操作实现适当的错误处理。 隐私:确保根据隐私要求处理敏感的PDF内容。 可选模型
MiniMax提供不同的模型。根据您的需求选择:
abab6.5s-chat:快速、高效,适合文本分析 abab6.5g-chat:更强大的复杂推理能力 视觉模型:用于图片分析(查看MiniMax文档获取当前视觉模型名称) 故障排除 API密钥问题:验证您的MiniMax API密钥设置正确 图片格式:确保图片为支持的格式(JPEG、PNG) 内存问题:对于大型PDF,分批处理页面 超时错误:增加超时设置或减少内容大小