运行Rasa时(在1.3.3、1.3.7、1.3.8版上尝试过),几乎每次打电话时都会遇到此超时异常消息。我正在运行一个简单的程序,该程序可以识别用户何时提供年龄,并通过操作响应将年龄存储在数据库中:
Bot loaded. Type a message and press enter (use '/stop' to exit):
Your input -> I am 24 years old
2019-10-10 13:29:33 ERROR asyncio - Task exception was never retrieved
future: <Task finished coro=<configure_app.<locals>.run_cmdline_io() done, defined at /Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/rasa/core/run.py:123> exception=TimeoutError()>
Traceback (most recent call last):
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/rasa/core/run.py", line 127, in run_cmdline_io
server_url=constants.DEFAULT_SERVER_FORMAT.format("http", port)
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/rasa/core/channels/console.py", line 138, in record_messages
async for response in bot_responses:
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/async_generator/_impl.py", line 366, in step
return await ANextIter(self._it, start_fn, *args)
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/async_generator/_impl.py", line 205, in throw
return self._invoke(self._it.throw, type, value, traceback)
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/async_generator/_impl.py", line 209, in _invoke
result = fn(*args)
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/rasa/core/channels/console.py", line 103, in send_message_receive_stream
async for line in resp.content:
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/aiohttp/streams.py", line 40, in __anext__
rv = await self.read_func()
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/aiohttp/streams.py", line 329, in readline
await self._wait('readline')
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/aiohttp/streams.py", line 297, in _wait
await waiter
File "/Users/Kami/Documents/rasa/venv/lib/python3.7/site-packages/aiohttp/helpers.py", line 585, in __exit__
raise asyncio.TimeoutError from None
concurrent.futures._base.TimeoutError
Transport closed @ ('127.0.0.1', 63319) and exception experienced during error handling
最初,我认为此超时是由于在我的Rasa程序的另一部分使用大型查找表而引起的,但是为了识别年龄,我使用了一个简单的正则表达式:
## regex:age
- ^(0?[1-9]|[1-9][0-9]|[1][1-9][1-9])$
即使这样也会导致超时。
请帮助我解决此问题。我什至不需要避免超时,我只想知道在哪里可以捕获/忽略此异常。
谢谢!
答案 0 :(得分:2)
确保您取消注释以下代码
action_endpoint:
url: "http://localhost:5055/webhook"
在endpoints.yml中。在执行查询数据库的自定义操作时使用。
答案 1 :(得分:1)
我正在从API中获取数据,其中出现超时错误,因为它无法在默认时限内获取数据:
答案 2 :(得分:0)
我现在无法发表评论,但请在维沙尔的回应中添加后续内容。要检查钩子是否存在并等待连接,可以使用 -vv 命令行开关。这将在启动时显示所有可用的钩子。例如:
2020-04-21 14:05:56 DEBUG rasa.core.utils - Available web server routes:
/webhooks/rasa GET custom_webhook_RasaChatInput.health
/webhooks/rasa/webhook POST custom_webhook_RasaChatInput.receive
/webhooks/rest GET custom_webhook_RestInput.health
/webhooks/rest/webhook POST custom_webhook_RestInput.receive
/ GET hello
答案 3 :(得分:0)
我遇到了同样的问题,但没有通过增加超时时间来解决。
确保您从 rasa action sever 向 rasa shell 发送回“字符串”。我的意思是,如果您在 utter_message 中使用 'text = ',请确保异步结果也是一个字符串,而不仅仅是一个对象或其他东西。如果需要,请更改类型。
Python 3.8
运行 'rasa shell -vv' 告诉我它正在接收一个对象,这就是为什么它无法解析它,因此超时。