name: "pdf-processor" description: "使用MiniMax模型從PDF檔案中提取文本和圖片。當用戶需要處理PDF內容、從PDF中提取資訊或分析PDF文件時呼叫此技能。"
本技能使用MiniMax AI模型處理PDF檔案並提取內容(文本和圖片)。
在以下情況下呼叫此技能: - 使用者想要從PDF檔案中提取文本 - 使用者想要從PDF中提取並分析圖片 - 使用者要求處理或分析PDF文件 - 使用者提到PDF內容提取 - 使用者需要將PDF內容轉換為結構化資料
使用此技能前,請確保:
MINIMAX_API_KEY 或 MINIMAX_GROUP_ID 和 MINIMAX_API_KEYbash
pip install pymupdf # 用於PDF處理
pip install minimax-client # MiniMax SDK
pip install pillow # 用於圖片處理使用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
使用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
結合提取和分析:
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']}")
MiniMax提供不同的模型。根據您的需求選擇:
小蔥技能站7w4.net發現了升級外掛。
abab6.5s-chat:快速、高效,適合文本分析abab6.5g-chat:更強大的複雜推理能力這個Skill能處理PDF文字和圖片提取,但存在質量問題。示例程式碼有資源管理缺陷,容易導致程式崩潰;憑證獲取方式不夠清晰;最重要的是完全沒有錯誤處理,一旦出問題使用者會不知所措。質量中等,建議等待最佳化後再使用,使用前務必做好資料備份。