如何仅通过 API 调用在 Rasa 中成功训练和替换模型?

时间:2021-05-06 12:16:17

标签: api chatbot rasa-nlu rasa rasa-core

(帖子指的是 Rasa 2.4.0)

目的:当我启动本地rasa服务器时,我希望只使用http请求来替换当前正在运行的模型。我想这样做而不必关闭 rasa 服务器并重新训练模型。

尝试:一旦我启用了本地服务器,使用:

rasa run     -m models     --enable-api     --log-file out.log     -vv

当我通过运行以下命令尝试使用文档中的 PUT - replace the currently loaded model api 时:

curl -X PUT http://localhost:5005/model -H ‘Content-type: application/json’ --data-binary "@replaceModel.txt"

replaceModel.txt 文件在哪里

{
  "model_file": "models/20210423-144222.tar.gz",
  "model_server": {
    "url": "http://localhost:5005/model/20210423-144222.tar.gz",
    "wait_time_between_pulls": 0
  },
  "remote_storage": "aws"
}

所以它说模型已经成功加载。但是,一旦进行了此更改,我似乎无法与机器人通信。当我 ping 它时:

$ curl -XPOST localhost:5005/webhooks/rest/webhook -d '{"sender":"111","message":"hi"}'

[]

我从服务器收到以下提示:

2021-05-06 11:57:54 DEBUG    rasa.server  - Successfully loaded model 'models/20210423-144222.tar.gz'.
2021-05-06 11:58:03 DEBUG    rasa.core.lock_store  - Issuing ticket for conversation '111'.
2021-05-06 11:58:03 DEBUG    rasa.core.lock_store  - Acquiring lock for conversation '111'.
2021-05-06 11:58:03 DEBUG    rasa.core.lock_store  - Acquired lock for conversation '111'.
2021-05-06 11:58:03 DEBUG    rasa.core.tracker_store  - Could not find tracker for conversation ID '111'.
2021-05-06 11:58:03 DEBUG    rasa.core.processor  - Starting a new session for conversation ID '111'.
2021-05-06 11:58:03 DEBUG    rasa.core.processor  - Policy prediction ended with events '[]'.
2021-05-06 11:58:03 DEBUG    rasa.core.processor  - Action 'action_session_start' ended with events '[<rasa.shared.core.events.SessionStarted object at 0x7f2f00451f60>, ActionExecuted(action: action_listen, policy: None, confidence: None)]'.
2021-05-06 11:58:03 DEBUG    rasa.core.processor  - Current slot values: 
        session_started_metadata: None
2021-05-06 11:58:03 DEBUG    rasa.core.processor  - Received user message 'hi' with intent '{'name': 'hi', 'confidence': 1.0}' and entities '[]'
2021-05-06 11:58:03 DEBUG    rasa.core.processor  - Logged UserUtterance - tracker now has 4 events.
/home/asugar/my_test/venv/lib/python3.6/site-packages/rasa/shared/utils/io.py:96: UserWarning: No policy ensemble or domain set. Skipping action prediction and execution.
  More info at https://rasa.com/docs/rasa/policies
2021-05-06 11:58:03 DEBUG    rasa.core.lock_store  - Deleted lock for conversation '111'.

在我运行 PUT replace loaded model 调用之前,当 rasa 服务器刚启动时,我尝试通过 ping 来与机器人通信:

$ curl -XPOST localhost:5005/webhooks/rest/webhook -d '{"sender":"111","message":"hi"}'

[{"recipient_id":"111","text":"Hello, this is the bot service, powered by Rasa. How could I help?"}]

我已经使用 rasa interactive 单独测试了模型,并通过 -m 标志将特定模型提供给它。 “hi”输入应该有效。所以我认为我尝试更换模型的方式不正确,我不确定我能做些什么来解决这个问题。我能得到一些指导吗?谢谢。

0 个答案:

没有答案