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

问题描述

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

我没有网络聊天窗口也不会收到错误消息。

更正:我收到此错误
“无法纠正
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。使用以下内容创建$(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. 享受!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...