gpt4 book ai didi

python - 尽管响应状态为 202,Azure 文档翻译器无法工作

转载 作者:行者123 更新时间:2023-12-03 03:23:48 24 4
gpt4 key购买 nike

我已经开始学习云。我正在尝试使用Azure 翻译服务来翻译文档。下面给出了 BLOB 的层次结构。

|-存储帐户
|--容器1
|---翻译输入
|----样本翻译.docx
|---翻译输出

我想翻译 sampleTranslation.docx 并将其存储在 translation-output 文件夹下的单独文件中。

我正在从 POSTMAN 进行 API 调用。 响应状态202(表示成功),但没有响应正文。翻译也没有发生。

当从 Python 发送相同的 JSON 时,会出现以下错误:

The JSON value could not be converted to Microsoft.MT.Batch.Contracts.Api.V1.StartTranslationDetails. Path: $ | LineNumber: 0 | BytePositionInLine: 590.

你能告诉我我做错了什么吗?

附上 POSTMAN 截图。
Postman API Screenshot


Python代码:
subscription_key = CONSTANTS["TRANSLATOR_TEXT_SUBSCRIPTION_KEY"]
region = CONSTANTS["TRANSLATOR_TEXT_REGION"]
endpoint = CONSTANTS["TRANSLATOR_DOC_ENDPOINT"]

constructed_url = endpoint + "/translator//text//batch//v1.0//batches"

headers = {
"Ocp-Apim-Subscription-Key": subscription_key,
"Ocp-Apim-Subscription-Region": region,
"Content-type": "application/json",
"X-ClientTraceId": str(uuid.uuid4()),
}

body = json.dumps(
{
"inputs": [
{
"source": {
"sourceUrl": sourceUrl,
},
"targets": [
{
"targetUrl": targetUrl,
"language": "fr"
}
]
}
]
}
)

request = requests.post(
constructed_url, headers=headers, json=body, verify=False
)
response = request.json()

print("Request URL:\t", constructed_url)
print("Response:\t")
print(
json.dumps(
response,
sort_keys=True,
indent=4,
ensure_ascii=False,
separators=(",", ": "),
)
)

最佳答案

HTTP 状态代码 202 表示请求已被接受处理,这是批量翻译作业等长时间运行操作的正常响应。

我尝试重现上述要求。我使用了下面的代码。感谢您的引用@Shweta Lodha

import requests
import json

route = "/batches"
endpoint = "https://ejinfckad.cognitiveservices.azure.com/translator/text/batch/v1.0"
key = "f054332b55f94072a46e004e3e230f43"

json_data = {
"inputs": [
{
"source": {
"sourceUrl": "https://wdcw.net/xwx?sp=racwdli&st=2023-04-29T07:37:52Z&se=2023-04-29T15:37:52Z&sv=2021-12-02&sr=c&sig=dcdswdcw %3D",
"storageSource": "AzureBlob"
},
"targets": [
{
"targetUrl": "https://xxwnet/dw1?sp=rcwl&st=2023-04-29T07:35:43Z&se=2023-04-29T15:35:43Z&sv=2021-12-02&sr=c&sig=BI7BjOC%2FLJOMndxwY4Rl9BD%2FDJwybt7MQ%3D",
"storageSource": "AzureBlob",
"language": "fr"
}
]
}
]
}

headers = {
"Ocp-Apim-Subscription-Key": key,
"Content-Type": "application/json"
}

response = requests.post(endpoint + route, headers=headers, json=json_data)

if response.status_code == 200:
print("Operation successful with status code: ", response.status_code)
else:
print("Error occurred. Status code: ", response.status_code)

输出: 正如预期的那样。 enter image description here

但是当我 checkin 目标容器时,我可以根据要求看到翻译后的文件。 enter image description here

您可以看到从英语翻译成法语的 Docx 文件。 enter image description here

关于python - 尽管响应状态为 202,Azure 文档翻译器无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76122945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com