我正在尝试运行使用IBM Watson服务的示例代码。在根据需要设置我的用户名/密码或IAM密钥后,代码失败。在Python中,这样的错误:
init()获得了意外的关键字参数'iam_apikey'
原因是什么?我需要更改什么?
似乎您在Watson SDK中遇到了问题。最近,他们在Python SDK V4和Node SDK V5中引入了一个突破性的变化(Python,Node),这是我在他们的release notes中发现的。有一种新的,更抽象的身份验证机制可以满足不同的身份验证类型。您需要稍微更改NLC的初始化代码。
这是来自Python migration instructions:
例如,传递IAM apikey:
之前
from ibm_watson import MyService
service = MyService(
iam_apikey='{apikey}',
url='{url}'
)
After(V4.0)
from ibm_watson import MyService
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
authenticator = IAMAuthenticator('{apikey}')
service = MyService(
authenticator=authenticator
)
service.set_service_url('{url}')
[参见某些IBM Cloud core SDKs for more documentation,例如,这是核心Node SDK的Authentication doc。