我们可以使用 python( ibm_watson sdk) 从 'ibm cloud functions' 调用其他 Watson 服务(如助手、发现等)吗?
Can we call other Watson services(like assistant, discovery etc.,) from 'ibm cloud functions' using python( ibm_watson sdk)?
我正在尝试在 'ibm cloud function' 中调用 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 cloud function' 中是否可以安装最新版本的软件包?或任何处理上述错误的解决方法?
查看上面的代码片段,我认为问题在于您使用的是 iam_key 和 iam_url 元素。这些将通知 Watson 联系 IAM 服务,然后对您进行身份验证。您可能希望尝试将 iam_key / iam_url 替换为用户名/密码,这在您使用的 Watson SDK 级别中更为常见。如果您只有一个 apikey,您可以尝试使用 "apikey" 作为用户名和 apikey 作为密码。
您可以通过 curl 或邮递员测试您是否具有正确的值。如果有效,请在 python 代码中尝试它们。您还可以通过命令行在 ibm 云函数之外测试您的代码,再次检查其所有工作,然后移至云函数。
我正在尝试在 'ibm cloud function' 中调用 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 cloud function' 中是否可以安装最新版本的软件包?或任何处理上述错误的解决方法?
查看上面的代码片段,我认为问题在于您使用的是 iam_key 和 iam_url 元素。这些将通知 Watson 联系 IAM 服务,然后对您进行身份验证。您可能希望尝试将 iam_key / iam_url 替换为用户名/密码,这在您使用的 Watson SDK 级别中更为常见。如果您只有一个 apikey,您可以尝试使用 "apikey" 作为用户名和 apikey 作为密码。
您可以通过 curl 或邮递员测试您是否具有正确的值。如果有效,请在 python 代码中尝试它们。您还可以通过命令行在 ibm 云函数之外测试您的代码,再次检查其所有工作,然后移至云函数。