pdf-processor-for-minimax

👤 wanghanwanghan 📦 v1.0.0 ⭐ 4.1 ⬇️ 821 下載
📄 辦公效率 免費 🔑 需 API Key

📖 技能介紹


name: "pdf-processor" description: "使用MiniMax模型從PDF檔案中提取文本和圖片。當用戶需要處理PDF內容、從PDF中提取資訊或分析PDF文件時呼叫此技能。"


PDF 處理器

本技能使用MiniMax AI模型處理PDF檔案並提取內容(文本和圖片)。

何時呼叫

在以下情況下呼叫此技能: - 使用者想要從PDF檔案中提取文本 - 使用者想要從PDF中提取並分析圖片 - 使用者要求處理或分析PDF文件 - 使用者提到PDF內容提取 - 使用者需要將PDF內容轉換為結構化資料

前置要求

使用此技能前,請確保:

  1. MiniMax API金鑰:設定環境變數 MINIMAX_API_KEYMINIMAX_GROUP_IDMINIMAX_API_KEY
  2. 必需的Python包:如果尚未安裝,請安裝以下包: bash pip install pymupdf # 用於PDF處理 pip install minimax-client # MiniMax SDK pip install pillow # 用於圖片處理

使用說明

步驟1:讀取PDF檔案

使用PyMuPDF(fitz)開啟並讀取PDF:

import fitz  # PyMuPDF

def extract_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.get_text()
        if text.strip():
            content['text'].append({
                'page': page_num + 1,
                'text': text
            })

        # 提取圖片
        images = page.get_images()
        for img_index, img in enumerate(images):
            xref = img[0]
            base_image = doc.extract_image(xref)
            image_bytes = base_image["image"]
            # 儲存或處理圖片
            content['images'].append({
                'page': page_num + 1,
                'index': img_index,
                'bytes': image_bytes,
                'ext': base_image["ext"]
            })

    doc.close()
    return content

步驟2:使用MiniMax模型進行分析

使用MiniMax的視覺模型分析提取的內容:

import base64
from minimax import MiniMax

# 初始化MiniMax客戶端
client = MiniMax(
    api_key=os.environ.get("MINIMAX_API_KEY"),
    group_id=os.environ.get("MINIMAX_GROUP_ID")
)

def analyze_with_minimax(text=None, image_bytes=None, prompt=None):
    """使用MiniMax模型分析內容。"""

    messages = []

    # 準備內容
    content = []

    if text:
        content.append({"type": "text", "text": text})

    if image_bytes:
        # 將圖片轉換為base64
        base64_image = base64.b64encode(image_bytes).decode('utf-8')
        content.append({
            "type": "image_url",
            "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
            }
        })

    if prompt:
        content.insert(0, {"type": "text", "text": prompt})

    messages.append({
        "role": "user",
        "content": content
    })

    # 呼叫MiniMax API
    response = client.chat.completions.create(
        model="abab6.5s-chat",  # 或適當的視覺模型
        messages=messages
    )

    return response.choices[0].message.content

步驟3:完整工作流程

結合提取和分析:

def process_pdf(pdf_path, analysis_prompt="請分析這個PDF的內容"):
    """完整的PDF處理工作流程。"""

    # 步驟1:提取內容
    content = extract_pdf_content(pdf_path)

    results = {
        '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']}"
        )
        results['text_analysis'].append({
            'page': text_item['page'],
            'analysis': analysis
        })

    # 步驟3:分析圖片
    for img_item in content['images']:
        analysis = analyze_with_minimax(
            image_bytes=img_item['bytes'],
            prompt="請描述這張圖片的內容"
        )
        results['image_analysis'].append({
            'page': img_item['page'],
            'analysis': analysis
        })

    return results

使用示例

# 處理PDF檔案
pdf_path = "/path/to/document.pdf"
results = process_pdf(pdf_path, "請總結這個文件的主要內容")

# 列印結果
for item in results['text_analysis']:
    print(f"第{item['page']}頁:{item['analysis']}")

for item in results['image_analysis']:
    print(f"第{item['page']}頁圖片:{item['analysis']}")

重要注意事項

  1. API限制:MiniMax API可能有速率限制。對於大型PDF,請實現適當的延遲。
  2. 圖片大小:大型圖片在傳送到API之前可能需要調整大小。
  3. 成本:處理包含大量圖片的大型文件時,請注意API成本。
  4. 錯誤處理:始終為API呼叫和檔案操作實現適當的錯誤處理。
  5. 隱私:確保根據隱私要求處理敏感的PDF內容。

可選模型

7w4.net小蔥技能。

MiniMax提供不同的模型。根據您的需求選擇:

  • abab6.5s-chat:快速、高效,適合文本分析
  • abab6.5g-chat:更強大的複雜推理能力
  • 視覺模型:用於圖片分析(檢視MiniMax文件獲取當前視覺模型名稱)

故障排除

  1. API金鑰問題:驗證您的MiniMax API金鑰設定正確
  2. 圖片格式:確保圖片為支援的格式(JPEG、PNG)
  3. 記憶體問題:對於大型PDF,分批處理頁面
  4. 超時錯誤:增加超時設定或減少內容大小

🤖 AI 評測

這個Skill能處理PDF文字和圖片提取,但存在質量問題。示例程式碼有資源管理缺陷,容易導致程式崩潰;憑證獲取方式不夠清晰;最重要的是完全沒有錯誤處理,一旦出問題使用者會不知所措。質量中等,建議等待最佳化後再使用,使用前務必做好資料備份。

📊 多維度評分

適應性4.2
規範性3.9
有效性4.1
可靠性3.6
可信度5

📁 包含檔案 (2 個)

📄 SKILL.md 5.6 KB
📄 _meta.json 144 B