尝试在 SDK 中验证/初始化 IBM Watson 服务时出现语法错误
Syntax error trying to authenticate / init IBM Watson service in SDK
我正在尝试 运行 使用 IBM Watson 服务的示例代码。根据需要设置我的用户名/密码或 IAM 密钥后,代码失败。在 Python 中是这样的错误:
init() got an unexpected keyword argument 'iam_apikey'
这是什么原因?我需要更改什么?
您 运行 似乎遇到了 Watson SDK 的问题。最近,用了Python SDK V4 and the Node SDK V5, they introduced a breaking change (Python, Node) which I found in their release notes。有一种新的、更抽象的身份验证机制可以适应不同的身份验证类型。您需要稍微更改 NLC 初始化方式的代码。
这是来自Python migration instructions:
For example, to pass a IAM apikey:
之前
from ibm_watson import MyService
service = MyService(
iam_apikey='{apikey}',
url='{url}'
)
之后(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}')
查看核心 Node SDK 的一些 IBM Cloud core SDKs for more documentation, e.g., here is the Authentication doc。
我正在尝试 运行 使用 IBM Watson 服务的示例代码。根据需要设置我的用户名/密码或 IAM 密钥后,代码失败。在 Python 中是这样的错误:
init() got an unexpected keyword argument 'iam_apikey'
这是什么原因?我需要更改什么?
您 运行 似乎遇到了 Watson SDK 的问题。最近,用了Python SDK V4 and the Node SDK V5, they introduced a breaking change (Python, Node) which I found in their release notes。有一种新的、更抽象的身份验证机制可以适应不同的身份验证类型。您需要稍微更改 NLC 初始化方式的代码。
这是来自Python migration instructions:
For example, to pass a IAM apikey:
之前
from ibm_watson import MyService
service = MyService(
iam_apikey='{apikey}',
url='{url}'
)
之后(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}')
查看核心 Node SDK 的一些 IBM Cloud core SDKs for more documentation, e.g., here is the Authentication doc。