BotFramework Composer,在技能回调时得到404错误。

问题描述 投票:3回答:1

复制的步骤。

第一步:

使用composer(v1.0.0安装在DMG的Mac上)创建一个机器人,选择Echo Bot模板。

第二步:从当前的repo中克隆回声技能样本。

克隆当前repo中的echo技能样本。https:/github.commicrosoftBotBuilder-Samplestreemastersamplespython80.skills-simple-bot-to-bot

第三步,在本地运行该技能。

在本地运行技能。

第四步:在本地运行技能。

连接到技能

enter image description here

图片中的端点是3980端口,但在最后一次尝试中,主机器人是由当前机器人上的composer服务的。重点是我把回调URL设置为主机器人运行的URL。

第5步:将技能添加到未知Intentog中。

在 "未知意图 "对话框中添加技能,在echo响应之后,..:enter image description here

错误。

我在技能端解除了一个错误。在调试技能后,我发现问题出在回调上,回调在发送活动时返回404错误给技能。

uring handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/victorvasiliev/PycharmProjects/BotBuilder-Samples/samples/python/80.skills-simple-bot-to-bot/echo-skill-bot/adapter_with_error_handler.py", line 71, in _send_eoc_to_parent
    await turn_context.send_activity(end_of_conversation)
  File "/usr/local/lib/python3.7/site-packages/botbuilder/core/turn_context.py", line 170, in send_activity
    result = await self.send_activities([activity_or_text])
  File "/usr/local/lib/python3.7/site-packages/botbuilder/core/turn_context.py", line 217, in send_activities
    return await self._emit(self._on_send_activities, output, logic())
  File "/usr/local/lib/python3.7/site-packages/botbuilder/core/turn_context.py", line 295, in _emit
    return await logic
  File "/usr/local/lib/python3.7/site-packages/botbuilder/core/turn_context.py", line 212, in logic
    responses = await self.adapter.send_activities(self, output)
  File "/usr/local/lib/python3.7/site-packages/botbuilder/core/bot_framework_adapter.py", line 686, in send_activities
    raise error
  File "/usr/local/lib/python3.7/site-packages/botbuilder/core/bot_framework_adapter.py", line 672, in send_activities
    activity.conversation.id, activity.reply_to_id, activity
  File "/usr/local/lib/python3.7/site-packages/botframework/connector/aio/operations_async/_conversations_operations_async.py", line 533, in reply_to_activity
    raise models.ErrorResponseException(self._deserialize, response)
botbuilder.schema._models_py3.ErrorResponseException: Operation returned an invalid status code 'Not Found'

有人遇到过同样的问题吗?

python botframework chatbot bot-framework-composer
1个回答
1
投票

你可以看到在 文件 您的技能主机端点需要以 api/skills 而不仅仅 api:

选择 技巧 从 "作曲家 "菜单中选择 "作曲家"。在 技巧 页面,如果你的技能是远程的,请输入 <ngrok address>/api/skills技能主机端点 字段。如果你的技能是本地的,你应该输入 localhost:port/api/skills技能主机端点 字段。

在发送到技能的活动中,技能主机端点被用作服务 URL,这意味着它将是技能调用的任何对话 API 方法的基本 URI。如果你的技能试图向一个不存在的URL发送请求,那么你应该期望得到404。Composer机器人会将请求路由到以 api/skills 所以这就是你应该放在你的服务URL中的东西。

© www.soinside.com 2019 - 2024. All rights reserved.