Files
skills/vision-analyze.md
T
hmo 04db423416 Initial commit: skills library
- 70 skills with code and documentation
- Add .gitignore (ignore __pycache__, output/, temp/, venv/)
- Clean up test intermediates and caches
2026-04-26 19:27:40 +08:00

146 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: vision-analyze
description: 标准化视觉分析脚本。使用火山方舟doubao-seed-code模型,支持图片OCR和内容识别。可处理单张图片、图片型PDF转文字分析。
---
# Vision Analyze 技能
## 概述
本技能提供**标准化图片/视觉内容分析**功能,基于火山方舟doubao-seed-code模型。
## 核心能力
-**图片OCR识别**:识别图片中的所有文字
-**内容分析**:图片内容描述、图表解读
-**PDF转文字**:图片型PDF可通过PyMuPDF转图片后分析
-**中文支持**:完美支持中文识别
-**本地处理**:无需云端上传,直接本地调用API
## API配置
- **API**: 火山方舟 Coding Plan
- **模型**: doubao-seed-code (唯一支持的视觉模型)
- **API Key**: 读取环境变量 `VOLCENGINE_API_KEY`
## 脚本位置
```
D:\F\NewI\opencode\daily-workspace\.opencode\skills\vision-analyze.py
```
## 使用方法
### 命令行使用
```bash
# 基本用法
python vision-analyze.py <图片路径> "<提示词>"
# 示例:识别图片文字
python vision-analyze.py image.png "请识别这张图片中的所有文字内容"
# 示例:分析PDF页面(需先转图片)
python vision-analyze.py page_001.png "请完整转录这段文字"
```
### Python调用
```python
from vision_analyze import analyze_image
# 分析图片
result = analyze_image(
"image.png",
"请识别这张图片中的所有文字内容"
)
print(result)
```
## PDF处理工作流
对于图片型PDF,需要分两步处理:
### 步骤1PDF转图片(PyMuPDF
```python
import fitz # PyMuPDF
# PDF转图片
doc = fitz.open("document.pdf")
for i, page in enumerate(doc):
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2)) # 2x缩放
pix.save(f"page_{i+1:03d}.png")
doc.close()
```
### 步骤2:图片分析
```python
# 逐页分析
for i in range(1, len(doc) + 1):
img_path = f"page_{i:03d}.png"
text = analyze_image(img_path, "请完整转录这段文字")
# 保存结果
```
## 完整脚本示例
处理27页PDF的脚本:
```python
#!/usr/bin/env python3
import sys
import fitz # PyMuPDF
import os
def pdf_to_images(pdf_path, output_dir):
"""PDF转图片"""
doc = fitz.open(pdf_path)
os.makedirs(output_dir, exist_ok=True)
image_paths = []
for i, page in enumerate(doc):
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2))
img_path = os.path.join(output_dir, f"page_{i+1:03d}.png")
pix.save(img_path)
image_paths.append(img_path)
doc.close()
return image_paths
# 使用vision_analyze的analyze_image函数
from vision_analyze import analyze_image
pdf_path = "document.pdf"
output_dir = "pdf_images"
# 转图片
image_paths = pdf_to_images(pdf_path, output_dir)
# 分析
for i, img_path in enumerate(image_paths):
text = analyze_image(img_path, "请识别这张图片中的所有文字内容")
print(f"=== 第{i+1}页 ===")
print(text)
```
## 常见问题
### Q: 分析结果乱码怎么办?
A: 保存文件时使用UTF-8编码:
```python
with open("output.txt", 'w', encoding='utf-8') as f:
f.write(text)
```
### Q: API调用失败怎么办?
A: 检查API Key是否有效,或网络连接是否正常
### Q: PDF页数很多,分析超时怎么办?
A: 分批处理,每批10-15页,保存中间结果
## 注意事项
- ✅ 使用 `vision-analyze.py`** 脚本
- ✅ 使用火山方舟API,稳定可靠
- ⚠️ 响应时间较长 (20-60秒),建议耐心等待