东芝扫描仪 设置扫描发生文件的SMB位置,每日早上将多页的A4文档PDF扫描到该位置
主进程对该PDF转化为JPG(暂不考虑多页情况)并将每个JPG使用Qwen2.5-vl进行识别,生成JSON对其保持,按照每个文件级对应的JSON文件保存到数据库和文件存储服务器中。
主进程对全部扫描后的JSON文件,使用QWEN3-30b-a3b进行统计分析,生成固定的结果。
使用OLLAMA API实现
需安装OPENAI库 pathlib库
import base64
from pathlib import Path
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
def describe_image(image_path: str, question: str = "请用文字描述这张图片") -> str:
path = Path(image_path)
if not path.exists():
raise FileNotFoundError(image_path)
with path.open("rb") as f:
b64_img = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="qwen2.5vl:3b",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{b64_img}"}},
{"type": "text", "text": question},
],
}
],
max_tokens=1024,
)
return response.choices[0].message.content
# 测试
if __name__ == "__main__":
print(describe_image("./123.jpg","请总结上面图片信息,请找出其中的:申请部门、合同编号、合同金额、合同名称、对方单位、申请公章名称,并将上面信息分别给予下面的键名:sqbm、htbh、htje、htmc、dfdw、sqgzmc,并将其以json的格式输出。"))
describe_image("图片地址","提示词")
//每次调用都是独立的,不会和上次调用重合起来,只要调整提示词的内容,即可完成对不同OCR的识别格式。
返回信息: 需要吧“`json 和 “` 删掉
```json
{
"yz": 0,
"ht": 0,
"type": 0,
"sqbm": "",
"htbh": "",
"htje": "",
"htmc": "",
"dfdw": "",
"sqgzmc": ""
}
```