使用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
根据自身需求创建
在这里插入图片描述
创建成功后找到密钥
在这里插入图片描述

三、代码示例

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"`
}


相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 09:38:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 09:38:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 09:38:04       87 阅读
  4. Python语言-面向对象

    2024-01-20 09:38:04       96 阅读

热门阅读

  1. 【Go】A和*A在作为Receiver和接口实现上的差别

    2024-01-20 09:38:04       53 阅读
  2. JVM与HotSpot

    2024-01-20 09:38:04       52 阅读
  3. Docker部署微服务问题及解决

    2024-01-20 09:38:04       50 阅读
  4. var 和 let 的优缺点

    2024-01-20 09:38:04       59 阅读
  5. python爬虫如何写,有哪些成功爬取的案例

    2024-01-20 09:38:04       49 阅读
  6. mysql怎么开启一个事务

    2024-01-20 09:38:04       62 阅读
  7. 344. 观光之旅(最小环问题,Floyd)

    2024-01-20 09:38:04       57 阅读
  8. Docker的安装和使用

    2024-01-20 09:38:04       48 阅读
  9. Redis多线程模型探究

    2024-01-20 09:38:04       38 阅读