tencent_ocr/README.md
2025-01-15 09:18:23 +08:00

89 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 腾讯手写识别接口转接
1. 输入图片的BASE64返回识别结果
2. 使用JSON POST传输返回JSON符合restful风格
3. 入参:
- 图片的BASE64string
- Scene场景默认是null可选only_hwstring
- apikey: 测试期间设置为固定值1234567890string
4. 出参:
- 识别结果string
- 成功与否boolean
6. 使用腾讯通用手写体识别OCR SDK进行图像识别 使用go语言gin框架开发
7. 流程:
- 应用接收到POST数据以后校验数据的合法性json格式、base64格式等
- 调用腾讯通用手写体识别OCR SDK进行图像识别
- 再调用google gemini的api进行组织语言去除可能识别的错误。使用如下prompt
```
你是一个专业的助手负责纠正OCR识别结果中的文本。只需要输出识别结果不需要输出任何解释。
```
- 返回识别结果。
8. google gemini的api key"your key"
9. tencentSecretId = "your id",tencentSecretKey = "your secret"
10. key存储在.env文件中使用dotenv库进行加载。
11. go的示例代码如下
```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
```