我们可以使用python(ibm_watson sdk)从'ibm云函数'调用其他Watson服务(如助手,发现等)吗?

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

我正在尝试在“ ibm云功能”中调用watson发现服务,其中仅安装了较早版本的python软件包(“ watson_developer_cloud”)。调用list_environments()发现方法时,出现以下错误:

import json
from watson_developer_cloud import DiscoveryV1 

discovery = DiscoveryV1(
    version= version,
    iam_apikey = apikey,
    iam_url = url
)

discovery.list_environments()

错误:

---------------------------------------------------------------------------
WatsonApiException                        Traceback (most recent call last)
<ipython-input-28-46be562e6568> in <module>()
     13 )
     14 
---> 15 discovery.list_environments()

4 frames
/usr/local/lib/python3.6/dist-packages/watson_developer_cloud/iam_token_manager.py in request(self, method, url, headers, params, data, **kwargs)
     32             from .watson_service import WatsonApiException, get_error_message
     33             error_message = get_error_message(response)
---> 34             raise WatsonApiException(response.status_code, message=error_message, httpResponse=response)
     35 
     36     def get_token(self):

WatsonApiException: Error: Not Found, Code: 404

反正有没有在'ibm云功能'中安装最新版本的软件包?或任何解决上述错误的解决方法?

python ibm-watson watson-assistant watson-discovery ibm-cloud-functions
1个回答
1
投票

查看上面的代码段,我相信问题是您正在使用iam_key和iam_url元素。这些信息将通知Watson与IAM服务联系,然后对您进行身份验证。您可能希望尝试使用用户名/密码替换iam_key / iam_url,这在您使用的Watson SDK级别上更为常见。如果只有apikey,则可以尝试使用“ apikey”作为用户名,并使用apikey作为密码。您可以通过curl或邮递员测试是否具有正确的值。如果可行,请在您的python代码中尝试使用。您也可以通过命令行在ibm云功能之外测试代码,再次检查其所有工作,然后移至云功能。

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