讲师中心 微信公众号
AI工具推荐 视频效率加速

Dify集成本地OCR引擎(PaddleOCR)实现证件识别

胖杰同学_5525

胖杰同学_5525

发布时间:2026-11-08 06:01:23

|

725人浏览过

|

来源于php中文网

原创

需在Dify中通过本地PaddleOCR HTTP服务实现证件信息提取:先部署Flask版OCR API(指定模型路径、禁用localhost调用),再以MCP协议接入Dify插件,最后用Prompt+JSON Schema驱动LLM结构化解析OCR文本。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

dify集成本地ocr引擎(paddleocr)实现证件识别

要在Dify中实现身份证、银行卡等证件信息的自动提取,必须让Dify能调用本地部署的PaddleOCR引擎完成图像到结构化文本的转换,而非依赖第三方云API——这关系到数据不出域、字段可控、响应低延迟等刚性要求。

准备PaddleOCR服务端(HTTP API模式)

这一步不是在Dify里装PaddleOCR,而是在同一内网另起一个独立服务进程,专供Dify调用。推荐使用PaddleOCR自带的`tools/infer/predict_system.py`改造为Flask接口,避免Dify插件层直接加载模型引发内存冲突。

进入PaddleOCR项目根目录,创建app_ocr_api.py:

复制以下代码并保存:

from flask import Flask, request, jsonify
import cv2
import numpy as np
from paddleocr import PaddleOCR

app = Flask(__name__)
# 初始化OCR实例,仅启动一次
ocr = PaddleOCR(use_angle_cls=True, lang='ch', use_gpu=True, det_model_dir='./inference/ch_PP-OCRv4_det_slim_infer/', rec_model_dir='./inference/ch_PP-OCRv4_rec_slim_infer/', cls_model_dir='./inference/ch_ppocr_mobile_v2.0_cls_slim_infer/')

@app.route('/ocr', methods=['POST'])
def ocr_endpoint():
    file = request.files.get('image')
    if not file:
        return jsonify({'error': 'missing image'}), 400
    img_bytes = file.read()
    nparr = np.frombuffer(img_bytes, np.uint8)
    img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
    if img is None:
        return jsonify({'error': 'invalid image format'}), 400
    result = ocr.ocr(img, cls=True)
    # 提取纯文本行,忽略坐标和置信度
    texts = [line[1][0] for line in result[0]] if result and result[0] else []
    return jsonify({'texts': texts})

if __name__ == '__main__':
    app.run(host='0.0.0.0:8080', threaded=True)

注意:【det_model_dir、rec_model_dir、cls_model_dir路径必须指向你已下载好的PP-OCRv4 Slim模型目录,不能用默认相对路径】。若未下载,运行paddleocr --download-model ch后去~/.paddleocr/找对应子目录并拷贝到当前./inference/下。

安装依赖并启动服务:

pip install flask opencv-python paddleocr==2.7.0.3 paddlepaddle-gpu==2.4.2.post116
python app_ocr_api.py

此时访问http://localhost:8080/ocr(POST,带image文件)应返回JSON格式的识别文本列表。

在Dify中配置OCR插件(MCP协议方式)

MCP是Dify 1.10+官方推荐的工具接入协议,比旧版Function Calling更安全、可发现、可热插拔。它不要求OCR服务改造成LLM函数,只需暴露标准HTTP接口并提供YAML描述文件。

第一步:在Dify管理后台 → 插件 → 新建插件 → 选择“MCP HTTP”类型。

第二步:填写基础信息:

Dify
Dify

Dify AI应用开发平台指南。用于构建LLM应用、工作流、Agent和知识库。当用户需要(1)使用Dify创建AI应用 (2)设计LLM工作流 (3)配置知识库RAG (4)开发AI Agent (5)调用Dify API (6)自托管部署Dify时激活此技能。

下载

名称:PaddleOCR-ID-Card
描述:用于身份证、银行卡等证件图像的文字提取与字段定位
Base URL:http://192.168.1.100:8080(填你PaddleOCR服务所在机器的真实内网IP,【绝不能写localhost或127.0.0.1】)

第三步:上传MCP描述文件paddle_ocr_mcp.yaml:

```yaml
version: "0.1"
name: "paddle_ocr"
description: "Extract text from ID card or bank card images"
tools:
 - name: "extract_id_text"
  description: "Perform OCR on uploaded ID/bank card image and return plain text lines"
  input_schema:
   type: "object"
   properties:
    image_url:
     type: "string"
     description: "Publicly accessible URL of the image (e.g., from Dify's file storage)"
  output_schema:
   type: "object"
   properties:
    texts:
     type: "array"
     items:
      type: "string"
```

第四步:启用插件并测试。点击“测试工具”,输入一个Dify内已上传的身份证图片URL(必须是Dify对象存储生成的公开可读链接),点击执行。若返回非空text数组,说明链路通了。

构建证件字段解析工作流

单纯OCR返回一堆文本行没有业务价值,必须让Dify用大模型从中抽取出身份证号、姓名、出生日期等结构化字段。这一步靠Prompt工程驱动,不写代码。

① 在Dify应用中新建一个“文本提取”工作流节点,类型选“LLM”。

② 输入提示词(System Prompt):

你是一名专业证件信息提取员。用户将提供一段从身份证正面OCR识别出的原始文本行列表,请严格按以下规则处理:
- 只输出JSON,无任何额外说明或markdown标记
- 字段名固定为:name、id_number、birthday、address、sex、nationality
- birthday格式为YYYY-MM-DD,从“出生”后文字中提取;id_number必须是18位连续数字+字母
- 若某字段未出现,对应值填null
- 忽略所有非中文字符开头的行(如页眉页脚、条形码)

③ 工作流输入变量设为{{tools.paddle_ocr.extract_id_text.texts}},即上一步OCR插件的输出结果。

④ 启用JSON Schema约束输出,填写:

{
 "type": "object",
 "properties": {
  "name": {"type": ["string", "null"]},
  "id_number": {"type": ["string", "null"]},
  "birthday": {"type": ["string", "null"]},
  "address": {"type": ["string", "null"]},
  "sex": {"type": ["string", "null"]},
  "nationality": {"type": ["string", "null"]}
 }
}

⑤ 保存并发布该工作流。后续用户上传身份证图片时,即可自动触发OCR→清洗→结构化三步,最终得到标准JSON。

热门AI工具

更多
讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
WorkBuddy核心功能与实操模式
WorkBuddy核心功能与实操模式

深入探索WorkBuddy的强大功能。本专题包含智能问答、文档处理、会议纪要生成、日程管理、任务协作等核心模块的操作指南与最佳实践。通过图文并茂的教程,助您快速上手,最大化发挥WorkBuddy的办公效能。

662

2026.04.09

Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

977

2026.06.05

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

285

2026.06.05

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

276

2026.06.05

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

0

2026.11.06

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

0

2026.11.06

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

20

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 159人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 160人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn