4.2 KiB
4.2 KiB
腾讯手写识别接口转接
-
输入图片的BASE64,返回识别结果
-
使用JSON POST传输,返回JSON,符合restful风格
-
入参:
- 图片的BASE64,string
- Scene:场景,默认是null,可选only_hw,string
- apikey: 测试期间,设置为固定值:1234567890,string
-
出参:
- 识别结果,string
- 成功与否,boolean
-
使用腾讯通用手写体识别OCR SDK进行图像识别, 使用go语言,gin框架开发;
-
流程:
- 应用接收到POST数据以后,校验数据的合法性(json格式、base64格式等);
- 调用腾讯通用手写体识别OCR SDK进行图像识别;
- 再调用google gemini的api进行组织语言,去除可能识别的错误。使用如下prompt:
你是一个专业的助手,负责纠正OCR识别结果中的文本。只需要输出识别结果,不需要输出任何解释。- 返回识别结果。
-
google gemini的api key:"your key"
-
tencentSecretId = "your id",tencentSecretKey = "your secret"
-
key存储在.env文件中,使用dotenv库进行加载。
-
增加rate功能,批改作文
项目结构
tencenthw/ ├── go.mod ├── go.sum ├── cmd/ │ └── server/ │ └── main.go └── pkg/ ├── config/ │ └── config.go └── handler/ └── ocr.go └── rate.go
# OCR Image Processing Service
这是一个集成了OCR识别、图片存储和文本处理功能的服务。支持多图片上传,自动OCR识别,并可以智能组织识别出的文本。
## 功能特点
- 支持多图片上传(最多5张)
- 自动OCR文字识别
- 智能文本整理(多图片场景)
- 图片云存储
- 支持多种图片格式
## API 接口说明
### 1. 多图片上传接口
**接口地址**: `/upload`
**请求方法**: POST
**Content-Type**: multipart/form-data
**请求参数**:
- `files`: 图片文件数组(支持1-5张图片)
**支持的图片格式**:
- JPEG/JPG
- PNG
- GIF
- BMP
- TIFF
- WEBP
**文件大小限制**: 每个文件最大10MB
**请求示例**:
```bash
curl -X POST \
'http://your-domain/upload' \
-H 'Content-Type: multipart/form-data' \
-F 'files=@image1.jpg' \
-F 'files=@image2.jpg'
响应格式:
{
"image_urls": [
"https://your-domain/image1.jpg",
"https://your-domain/image2.jpg"
],
"text": "整理后的文本内容",
"success": true
}
2. OCR识别接口
接口地址: /ocr
请求方法: POST
Content-Type: application/json
请求参数:
{
"image_base64": "base64编码的图片内容",
"image_url": "图片URL地址(可选,优先使用image_base64)",
"scene": "场景类型(可选)",
"apikey": "您的API密钥"
}
响应格式:
{
"original_text": "原始识别文本",
"result": "处理后的文本",
"success": true
}
错误码说明
| HTTP状态码 | 错误描述 | 可能原因 |
|---|---|---|
| 400 | Invalid request format | 请求格式错误 |
| 400 | No files uploaded | 未上传文件 |
| 400 | Maximum 5 files allowed | 超过最大文件数限制 |
| 400 | File size exceeds the limit of 10MB | 文件大小超限 |
| 400 | Invalid file type | 不支持的文件类型 |
| 401 | Invalid API key | API密钥无效 |
| 500 | OCR processing failed | OCR处理失败 |
| 500 | Text processing failed | 文本处理失败 |
注意事项
-
图片上传建议:
- 确保图片清晰可读
- 控制图片大小在10MB以内
- 使用支持的图片格式
-
OCR识别建议:
- 对于多图片场景,系统会自动整理文本逻辑
- 单图片场景直接返回识别结果
-
API调用限制:
- 需要正确的API密钥
- 建议控制并发请求数量
部署要求
- Go 1.16+
- 配置文件中需要设置:
- Tencent Cloud OCR配置
- Cloudflare R2存储配置
- Gemini API配置
- API密钥
环境变量配置
TENCENT_SECRET_ID=your_secret_id
TENCENT_SECRET_KEY=your_secret_key
GEMINI_API_KEY=your_gemini_api_key
API_KEY=your_api_key
R2_ACCESS_KEY=your_r2_access_key
R2_SECRET_KEY=your_r2_secret_key
R2_BUCKET=your_bucket_name
R2_ENDPOINT=your_r2_endpoint
R2_CUSTOM_DOMAIN=your_custom_domain