我 运行 rasa 在 docker 容器中,但我无法使用网络聊天

I run rasa in docker containers but I can't get webchat working

我在不同的 docker 容器中安装了 5 个 rasa 聊天机器人 运行ning,但是当我尝试使用网络聊天时它失败了。我可以 运行 rasa 在普通 linux 服务器上使用网络聊天。

I don't get error messages just no webchat chat window.

更正:我得到这个错误
“无法更正
Firefox 无法与位于 localhost:5005

的服务器建立连接

这是我的命令 运行

docker run --name=rasa1 --user 1000 -v $(pwd):/app rasa/rasa:1.10.11-full run -m models --enable-api --cors "*" --debug

这是我的环境:

Ubuntu 18.04
Docker 19.03.12

您没有暴露任何端口。

假设 rasa 正在监听容器内的 5005 端口,尝试:

docker run --name=rasa1 --user 1000 -v $(pwd):/app -p "5005:5005" rasa/rasa:1.10.11-full run -m models --enable-api --cors "*" --debug

编辑:

我通过反复试验设法做到了 运行。步骤如下:

  1. 初始化项目

        mkdir app
        docker run -it --rm --user 1000 -v $(pwd)/app:/app rasa/rasa:1.10.11-full init --no-prompt
    
  2. 编辑 $(pwd)/app/credentials.yml 并添加以下行:

        socketio:
          user_message_evt: user_uttered
          bot_message_evt: bot_uttered
          session_persistence: true
    
  3. 开始rasa:

        docker run --name=rasa1 --user 1000 -v $(pwd)/app/app:/app -p "5005:5005" rasa/rasa:1.10.11-full run -m models --enable-api --cors "*" --debug
    

4.Create $(pwd)/index.html 内容如下:

    <html>
    <head>
        <title>Webchat</title>
    </head>

    <body>
        <div id="webchat"></div>
        <script src="https://cdn.jsdelivr.net/npm/rasa-webchat/lib/index.min.js"></script>
        // you can add a version tag if you need, e.g for version 0.11.5
        https://cdn.jsdelivr.net/npm/rasa-webchat@0.11.5/lib/index.min.js
        <script>
            WebChat.default.init({
                selector: "#webchat",
                initPayload: "/get_started",
                customData: { "language": "en" }, // arbitrary custom data. Stay minimal as this will be added to the socket
                socketUrl: "http://localhost:5005",
                socketPath: "/socket.io/",
                embedded: true,
                title: "Welcome",
                subtitle: "to my chatbot",
                params: { "storage": "session" } // can be set to "local"  or "session". details in storage section.
            })
        </script>
    </body>
    </html>
  1. 在浏览器中打开 $(pwd)/index.html
  2. 尽情享受吧!