Python-IBM Watson Language Translator v3-上传文件内容并下载结果

问题描述 投票:0回答:1

我正在尝试将Python SDK用于IBM Watson Language Translator v3,测试翻译实际文档的beta功能。下面是我的代码:-

from ibm_watson import LanguageTranslatorV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

API = "1234567890abcdefg"
GATEWAY = 'https://gateway-lon.watsonplatform.net/language-translator/api'

document_list = []

"""The below authenticates to the IBM Watson service and initiates an instance"""
authenticator = IAMAuthenticator(API)
language_translator = LanguageTranslatorV3(
    version='2018-05-01',
    authenticator=authenticator
)

language_translator.set_service_url(GATEWAY)

submission = language_translator.translate_document(file="myfile.txt", filename="myfile.txt", file_content_type='text/plain', model_id=None, source='en', target='es', document_id=None)
document_list.append(submission.result['document_id'])

while len(document_list) > 0:
    for document in document_list:
        document_status = language_translator.get_document_status(document)
        if document_status.result['status'] == "available":
            translated_document = language_translator.get_translated_document(document)
            document_list.remove(document)
            language_translator.delete_document(document)

关于此的几个问题:-

  1. [当我检查'translated_document'的内容时,它实际上不包含任何内容。它包含响应的标头和HTTP状态,但没有实际翻译的内容
  2. 我决定使用CURL下载我上传的文档,而不是上传.txt文件的实际内容进行翻译,而是通过CURL下载翻译后的文件时,该内容似乎是实际的文件名(myfile.txt )提交给翻译,而不是文件内容。

研究此内容并查看实际的IBM Watson Github存储库,看来我可能必须将'myfile.txt'的内容读入一个变量,然后在提交翻译时将该变量作为'file = {my_variable}'传递但这不会否决能够提交实际文件进行翻译的目标吗?这与提供的常规服务有何不同?

有人可以建议我做错什么吗?例如,我尝试了多种方法(将'translated_content'的值写入文件),但似乎无法获取翻译后的内容,也似乎无法将文件的内容实际上传至服务,相反,我似乎只是提交文件名。

谢谢所有

python python-3.x python-requests ibm-watson
1个回答
0
投票

filetranslate_document参数应该是要翻译的实际内容。我意识到从文档中还不清楚,但这就是服务的工作方式。因此,请尝试在file参数中传递您想要翻译的实际内容。

© www.soinside.com 2019 - 2024. All rights reserved.