53 lines
1.8 KiB
Go
53 lines
1.8 KiB
Go
package ocr
|
|
|
|
import (
|
|
"context"
|
|
"tyapi-server/internal/application/certification/dto/responses"
|
|
)
|
|
|
|
// OCRService OCR识别服务接口
|
|
type OCRService interface {
|
|
// 识别营业执照
|
|
RecognizeBusinessLicense(ctx context.Context, imageBytes []byte) (*responses.BusinessLicenseResult, error)
|
|
|
|
// 识别身份证
|
|
RecognizeIDCard(ctx context.Context, imageBytes []byte, side string) (*responses.IDCardResult, error)
|
|
|
|
// 通用文字识别
|
|
RecognizeGeneralText(ctx context.Context, imageBytes []byte) (*responses.GeneralTextResult, error)
|
|
|
|
// 从URL识别图片
|
|
RecognizeFromURL(ctx context.Context, imageURL string, ocrType string) (interface{}, error)
|
|
|
|
// 验证营业执照结果
|
|
ValidateBusinessLicense(result *responses.BusinessLicenseResult) error
|
|
|
|
// 验证身份证结果
|
|
ValidateIDCard(result *responses.IDCardResult) error
|
|
}
|
|
|
|
// IDCardInfo 身份证识别信息(保留兼容性)
|
|
type IDCardInfo struct {
|
|
Name string `json:"name"` // 姓名
|
|
IDCardNumber string `json:"id_card_number"` // 身份证号
|
|
Gender string `json:"gender"` // 性别
|
|
Nation string `json:"nation"` // 民族
|
|
Birthday string `json:"birthday"` // 出生日期
|
|
Address string `json:"address"` // 住址
|
|
IssuingAgency string `json:"issuing_agency"` // 签发机关
|
|
ValidPeriod string `json:"valid_period"` // 有效期限
|
|
Confidence float64 `json:"confidence"` // 识别置信度
|
|
}
|
|
|
|
// GeneralTextResult 通用文字识别结果(保留兼容性)
|
|
type GeneralTextResult struct {
|
|
Words []TextLine `json:"words"` // 识别的文字行
|
|
Confidence float64 `json:"confidence"` // 整体置信度
|
|
}
|
|
|
|
// TextLine 文字行
|
|
type TextLine struct {
|
|
Text string `json:"text"` // 文字内容
|
|
Confidence float64 `json:"confidence"` // 置信度
|
|
}
|