Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Golang bersambung ke antara muka AI Baidu untuk merealisasikan fungsi pengecaman teks dan bermula dengan cepat

Golang bersambung ke antara muka AI Baidu untuk merealisasikan fungsi pengecaman teks dan bermula dengan cepat

王林
王林asal
2023-08-26 15:42:29945semak imbas

Golang bersambung ke antara muka AI Baidu untuk merealisasikan fungsi pengecaman teks dan bermula dengan cepat

Golang bersambung ke antara muka AI Baidu untuk melaksanakan fungsi pengecaman teks, permulaan pantas

Ikhtisar:
Dalam era ledakan maklumat hari ini, teknologi pengecaman teks telah menjadi alat yang berkuasa. Platform terbuka Baidu AI menyediakan antara muka pengecaman teks yang berkuasa. Artikel ini akan memperkenalkan cara menggunakan bahasa Golang untuk menyambung ke antara muka AI Baidu bagi merealisasikan fungsi pengecaman teks. Melalui permulaan pantas artikel ini, pembaca akan dapat bermula dengan cepat dan menggunakan perkhidmatan pengecaman teks Baidu AI.

Langkah 1: Mohon akaun platform terbuka Baidu AI
Pertama, kita perlu mendaftar akaun pada platform terbuka Baidu AI dan mencipta aplikasi pengecaman teks. Apabila membuat aplikasi, anda perlu mengaktifkan perkhidmatan "Pengiktirafan Teks" secara manual dan mendapatkan "Kunci API" dan "Kunci Rahsia".

Langkah 2: Pasang perpustakaan permintaan HTTP Golang
Dalam bahasa Go, kami boleh menggunakan perpustakaan pihak ketiga untuk menghantar permintaan HTTP. Di sini kami mengesyorkan menggunakan pustaka rasmi "net/http", yang mudah digunakan dan berkuasa. Pustaka boleh dipasang melalui arahan berikut:

go get -u github.com/go-redis/redis/v8

Langkah 3: Tulis kod untuk memanggil antara muka AI Baidu
Kod contoh berikut menunjukkan cara menggunakan Golang untuk menyambung ke antara muka Baidu AI untuk melaksanakan fungsi pengecaman teks:

package main
  
import (
    "bytes"
    "encoding/base64"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
    "os"
    "path/filepath"
)
  
const (
    apiKey = "YOUR_API_KEY"
    secretKey = "YOUR_SECRET_KEY"
)
  
type AccessTokenResponse struct {
    AccessToken string `json:"access_token"`
}
  
type OCRResponse struct {
    WordsResult []struct {
        Words string `json:"words"`
    } `json:"words_result"`
}
  
func main() {
    // 读取图片文件
    imageFile, err := os.Open("example.jpg")
    defer imageFile.Close()
    if err != nil {
        fmt.Println(err)
        return
    }
  
    // 将图片文件编码为base64字符串
    fileInfo, _ := imageFile.Stat()
    size := fileInfo.Size()
    buffer := make([]byte, size)
    imageFile.Read(buffer)
    imageBase64 := base64.StdEncoding.EncodeToString(buffer)
  
    // 获取百度AI接口的access_token
    accessToken, err := getAccessToken(apiKey, secretKey)
    if err != nil {
        fmt.Println(err)
        return
    }
  
    // 调用百度AI接口进行文字识别
    ocrResponse, err := ocr(accessToken, imageBase64)
    if err != nil {
        fmt.Println(err)
        return
    }
  
    // 提取识别结果
    for _, words := range ocrResponse.WordsResult {
        fmt.Println(words.Words)
    }
}
  
// 获取百度AI接口的access_token
func getAccessToken(apiKey string, secretKey string) (string, error) {
    client := &http.Client{}
    request, err := http.NewRequest("GET", "https://aip.baidubce.com/oauth/2.0/token", nil)
    if err != nil {
        return "", err
    }
    q := request.URL.Query()
    q.Add("grant_type", "client_credentials")
    q.Add("client_id", apiKey)
    q.Add("client_secret", secretKey)
    request.URL.RawQuery = q.Encode()
  
    response, err := client.Do(request)
    if err != nil {
        return "", err
    }
    defer response.Body.Close()
  
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        return "", err
    }
  
    var accessTokenResponse AccessTokenResponse
    err = json.Unmarshal(body, &accessTokenResponse)
    if err != nil {
        return "", err
    }
  
    return accessTokenResponse.AccessToken, nil
}
  
// 调用百度AI接口进行文字识别
func ocr(accessToken string, imageBase64 string) (OCRResponse, error) {
    client := &http.Client{}
    request, err := http.NewRequest("POST", "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic", bytes.NewBuffer([]byte(imageBase64)))
    if err != nil {
        return OCRResponse{}, err
    }
    request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  
    q := request.URL.Query()
    q.Add("access_token", accessToken)
    request.URL.RawQuery = q.Encode()
  
    response, err := client.Do(request)
    if err != nil {
        return OCRResponse{}, err
    }
    defer response.Body.Close()
  
    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        return OCRResponse{}, err
    }
  
    var ocrResponse OCRResponse
    err = json.Unmarshal(body, &ocrResponse)
    if err != nil {
        return OCRResponse{}, err
    }
  
    return ocrResponse, nil
}

Dalam kod, anda perlu terlebih dahulu Isikan Kunci API dan Kunci Rahsia yang digunakan ke dalam pemalar apiKey dan secretKey. Kemudian, dapatkan access_token antara muka AI Baidu melalui fungsi getAccessToken, dan kemudian panggil antara muka AI Baidu melalui fungsi ocr untuk pengecaman teks. Akhir sekali, ekstrak hasil pengiktirafan dan keluarkannya.

Langkah 4: Jalankan kod dan dapatkan hasil pengecaman
Simpan kod di atas sebagai fail sumber Go (contohnya, main.go), dan kemudian laksanakan arahan berikut pada baris arahan untuk menjalankan kod:

go run main.go

Kod akan membaca fail dalam fail imej direktori example.jpg semasa dan mengeluarkan hasilnya ke konsol. Berdasarkan keperluan sebenar, anda boleh menggantikan imej dalam contoh dengan fail imej anda sendiri.

Ringkasan:
Melalui langkah di atas, kami berjaya menggunakan Golang untuk menyambung ke antara muka AI Baidu dan merealisasikan fungsi pengecaman teks. Anda boleh mengubah suai dan melanjutkan kod mengikut keperluan anda untuk memenuhi senario aplikasi yang lebih kompleks. Saya harap artikel ini dapat membantu anda dan membolehkan anda memahami dan menggunakan perkhidmatan pengecaman teks Baidu AI dengan lebih baik.

Atas ialah kandungan terperinci Golang bersambung ke antara muka AI Baidu untuk merealisasikan fungsi pengecaman teks dan bermula dengan cepat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn