Go to file
2025-01-15 09:13:32 +08:00
cmd/server init 2025-01-15 09:04:50 +08:00
pkg init 2025-01-15 09:04:50 +08:00
.envsample upate 2025-01-15 09:13:32 +08:00
.gitignore upate 2025-01-15 09:13:32 +08:00
go.mod init 2025-01-15 09:04:50 +08:00
go.sum init 2025-01-15 09:04:50 +08:00
hwserver init 2025-01-15 09:04:50 +08:00
README.md upate 2025-01-15 09:13:32 +08:00

腾讯手写识别接口转接

  1. 输入图片的BASE64返回识别结果

  2. 使用JSON POST传输返回JSON符合restful风格

  3. 入参:

    • 图片的BASE64string
    • Scene场景默认是null可选only_hwstring
    • apikey: 测试期间设置为固定值1234567890string
  4. 出参:

    • 识别结果string
    • 成功与否boolean
  5. 使用腾讯通用手写体识别OCR SDK进行图像识别 使用go语言gin框架开发

  6. 流程:

    • 应用接收到POST数据以后校验数据的合法性json格式、base64格式等
    • 调用腾讯通用手写体识别OCR SDK进行图像识别
    • 再调用google gemini的api进行组织语言去除可能识别的错误。使用如下prompt
    你是一个专业的助手负责纠正OCR识别结果中的文本。只需要输出识别结果不需要输出任何解释。
    
    • 返回识别结果。
  7. google gemini的api key"your key"

  8. tencentSecretId = "your id",tencentSecretKey = "your secret"

  9. key存储在.env文件中使用dotenv库进行加载。

  10. 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