尝试在 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