我有一个rasa-docker撰写文件,其中我的rasa映像是基于rasa:1.6.1-spacy-en的。
version: '3.0'
services:
rasa_movie:
image: myrasa:v3
ports:
- 5005:5005
depends_on:
- duckling
- action_server
command:
- run
- -m
- /app/models
- --cors
- "*"
- --enable-api
- --log-file
- out.log
- -p
- '5005'
action_server:
image: myaction:v1
ports:
- "5055:5055"
command:
- start
- --actions
- actions
duckling:
image: rasa/duckling
ports:
- "8000:8000"在做了一个停靠-组合-d之后,我想连接到已经启动的ras服务器的shell,以便与bot进行交互。我尝试了类似于docker exec rasacontainername rasa shell的东西,但是它失败了,因为OSError: Errno 98错误,同时试图绑定地址('0.0.0.0',5005):按预期已经在使用的地址。
是否有一种方法可以连接到rasa shell,而无需再次启动rasas服务器?
提前谢谢。
发布于 2021-05-19 07:38:30
命令行聊天接口直接连接到https://github.com/RasaHQ/rasa/blob/2.6.2/rasa/core/run.py#L131中启动服务器。因此,为了能够连接命令行聊天接口,您需要编写一个小脚本并将其放入您的例如cmdline_chat.py容器(假设5005是rasa服务器的端口):
import asyncio
import uuid
from rasa.core import constants
from rasa.core.channels import console
asyncio.run(console.record_messages(
server_url=constants.DEFAULT_SERVER_FORMAT.format("http", 5005),
sender_id=uuid.uuid4().hex,
))然后,运行脚本,而不是调用rasa (docker exec -it containername python cmdline_chat.py)。
发布于 2020-07-09 05:59:19
要与正在运行的Docker容器进行交互,可以这样做:
docker exec -it <container-name> <command>在您的具体案例中,应该是这样的
docker exec -it rasa_movie rasa shell 这里是码头主管医生
https://stackoverflow.com/questions/62804440
复制相似问题