使用golang对接微软Azure AI翻译

文章目录

  • 一、官方地址
  • 二、准备工作
  • 三、代码示例


一、官方地址

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

二、准备工作

创建服务

创建服务连接地址:https://portal.azure.com/#create/Microsoft.CognitiveServicesTextTranslation
根据自身需求创建
使用golang对接微软Azure AI翻译_第1张图片
创建成功后找到密钥
使用golang对接微软Azure AI翻译_第2张图片

三、代码示例

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 := ""

	// 准备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", "")
	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"`
}


你可能感兴趣的:(功能实现,golang,机器翻译,自动翻译)