3.5 KiB
3.5 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:"AIzaSyBn6R7JWK8z58cETrHoXIbdJQ6x7QUR14o"
-
tencentSecretId = "AKIDwuhKk2EEF9pJdmjgV9ZozzGPL8vgXR9e",tencentSecretKey = "Kf0Md3Uix2yiMrMk03ucAVdfVAev6DDI"
-
key存储在.env文件中,使用dotenv库进行加载。
-
go的示例代码如下:
package main
import (
"fmt"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
ocr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ocr/v20181119"
)
func main() {
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
credential := common.NewCredential(
"SecretId",
"SecretKey",
)
// 实例化一个client选项,可选的,没有特殊需求可以跳过
cpf := profile.NewClientProfile()
cpf.HttpProfile.Endpoint = "ocr.tencentcloudapi.com"
// 实例化要请求产品的client对象,clientProfile是可选的
client, _ := ocr.NewClient(credential, "", cpf)
// 实例化一个请求对象,每个接口都会对应一个request对象
request := ocr.NewGeneralHandwritingOCRRequest()
rrequest.ImageBase64 = common.StringPtr("/9j/4AAQSkZJRg.....s97n//2Q==")
request.Scene = common.StringPtr("only_hw")
// 返回的resp是一个GeneralHandwritingOCRResponse的实例,与请求对象对应
response, err := client.GeneralHandwritingOCR(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
fmt.Printf("An API error has returned: %s", err)
return
}
if err != nil {
panic(err)
}
// 输出json格式的字符串回包
fmt.Printf("%s", response.ToJsonString())
}
项目结构
your-project/
├── go.mod
├── go.sum
├── cmd/
│ └── server/
│ └── main.go
└── pkg/
├── config/
│ └── config.go
└── handler/
└── ocr.go