使用golang对接微软Azure AI翻译

发布时间:2024年01月19日


一、官方地址

https://learn.microsoft.com/zh-CN/azure/ai-services/translator/translator-text-apis?tabs=go

二、准备工作

创建服务

创建服务连接地址:https://portal.azure.com/#create/Microsoft.CognitiveServicesTextTranslation
根据自身需求创建
在这里插入图片描述
创建成功后找到密钥
在这里插入图片描述

三、代码示例

func Translation() {
	// 准备要翻译的文本
	textToTranslate := "Hello friend! What did you do today?"

	// 准备API请求的URL
	apiURL := "https://api.cognitive.microsofttranslator.com//translate?api-version=3.0&from=en&to=zh"

	// 准备API密钥
	apiKey := "<YOUR-TRANSLATOR-KEY>"

	// 准备API请求的body
	requestBody, _ := json.Marshal([]map[string]string{
		{"Text": textToTranslate},
	})

	// 发起API请求
	req, err := http.NewRequest("POST", apiURL, bytes.NewBuffer(requestBody))
	req.Header.Set("Ocp-Apim-Subscription-Key", apiKey)
	req.Header.Set("Ocp-Apim-Subscription-Region", "<YOUR-RESOURCE-LOCATION>")
	req.Header.Set("Content-Type", "application/json")
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		logger.Errorf("Translation Error,errormsg:%s", err)
	}
	defer resp.Body.Close()

	// 读取API响应
	var result interface{}
	if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
		logger.Errorf("Translation json.NewDecoder Error,errormsg:%s", err)
	}

	// 输出翻译结果
	prettyJSON, _ := json.MarshalIndent(result, "", "  ")
	// 解析JSON数据
	if err := json.Unmarshal([]byte(prettyJSON), &translationResult); err != nil {
		logger.Errorf("Translation json.Unmarshal Error,errormsg:%s", err)
	}

	// 获取"text"字段的值
	text := translationResult[0].Translations[0].Text
}


var translationResult []struct {
	Translations []struct {
		Text string `json:"text"`
		To   string `json:"to"`
	} `json:"translations"`
}


文章来源:https://blog.csdn.net/weixin_49832841/article/details/135689168
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。