问题描述
我正在尝试为我正在构建的Telegram Bot设置Watson Assistant。正确知道,我可以使用 watson-assistant-v1 (即辅助节点)从Watson那里获得答案,但是,我想使用 watson-assistant-v2 (即助手V2节点)。
我不知道我在做什么错。对于Node-RED中的API密钥,我正在使用助手的API密钥。但是,当我在调试中向机器人发送消息时,出现“ TypeError:无法读取未定义的属性'0'”。
我还想念其他东西吗?为什么会发生此错误
解决方法
在Assistant V1节点中,配置为工作区ID。
在Assistant V2节点中,配置用于助手ID。
对于两个输入文本,msg.payload
中都应包含在内,尽管该文本可以为空以允许启动对话框。因此对于V2节点,这是一个有效的流程,
[{"id":"83dbc697.d416c8","type":"inject","z":"f551e981.a6bf78","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":260,"wires":[["d334bd1c.00abb"]]},{"id":"d334bd1c.00abb","type":"watson-assistant-v2","service-endpoint":"https://gateway.watsonplatform.net/assistant/api","assistant_id":"f6f33980-9b6a-4bdf-92dd-e7974a832586","debug":false,"restart":false,"return_context":true,"alternate_intents":false,"multisession":true,"timeout":"","optout-learning":false,"x":410,"wires":[["151a548c.d4f44b","6ad0ad7b.b34414"]]},{"id":"151a548c.d4f44b","type":"debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":650,"y":240,"wires":[]}]
如果要设置对话框,则需要设置上下文。两个节点都可以为您管理上下文,但是它们需要上下文的标识符。对于V2节点,可以通过将msg.params.session_id
设置为对您的应用程序有意义的任意值来完成。例如。
[{"id":"b30a8bd4.e5f628","payload":"Hello","y":300,"wires":[["4c5c73b5.eef91c"]]},{"id":"4c5c73b5.eef91c","type":"function","func":"msg.params = {\n \"session_id\" : \"ABC\"\n};\nreturn msg;","outputs":1,"noerr":0,"x":310,"y":360,"wires":[]}]
该节点随后为您管理会话和上下文,并在会话过期时续订会话。