Rasa项目实战:如何部署Rasa Action Server

Rasa项目实战:如何部署Rasa Action Server

rasa rasa: 是一个开源的聊天机器人框架,支持自然语言理解和生成。适合开发者构建智能聊天机器人和对话系统。 rasa 项目地址: https://gitcode.com/gh_mirrors/ra/rasa

前言

在构建基于Rasa的对话系统时,Action Server扮演着至关重要的角色。它负责执行自定义动作,如查询数据库、调用外部API等复杂操作。本文将详细介绍如何在生产环境中部署Rasa Action Server,帮助开发者构建稳定可靠的对话系统后端服务。

部署准备

在开始部署前,我们需要确保环境满足以下要求:

1. 命令行工具检查

首先需要确认已安装Kubernetes或OpenShift命令行工具:

# 对于Kubernetes
kubectl version --short --client

# 对于OpenShift
oc version --client

如果命令执行失败,需要先安装对应的CLI工具。

2. 集群连接验证

确保CLI工具已正确连接到目标集群:

# Kubernetes
kubectl version --short

# OpenShift
oc version

3. Helm工具安装

Helm是Kubernetes的包管理工具,我们需要安装Helm 3.5或更高版本:

helm version --short

部署步骤

1. 创建命名空间

建议为Action Server创建独立的命名空间,避免与其他服务冲突:

kubectl create namespace rasa-actions

2. 部署Action Server

使用Helm进行部署:

# 添加Rasa Helm仓库
helm repo add rasa https://helm.rasa.com

# 部署Action Server
helm install \
    --namespace rasa-actions \
    my-rasa-actions \
    rasa/rasa-action-server

3. 访问服务

默认情况下,Action Server仅在集群内部可访问。如需本地访问,可使用端口转发:

export SERVICE_PORT=$(kubectl get --namespace rasa-actions -o jsonpath="{.spec.ports[0].port}" services my-rasa-actions)
kubectl port-forward --namespace rasa-actions svc/my-rasa-actions ${SERVICE_PORT}:${SERVICE_PORT} &

服务将在http://127.0.0.1:${SERVICE_PORT}可用。

构建自定义Action Server镜像

默认部署使用基础镜像,实际项目中我们需要构建包含自定义动作的镜像。

手动构建方法

  1. 确保动作代码位于actions/actions.py
  2. 如有额外依赖,创建actions/requirements-actions.txt
  3. 创建Dockerfile:
FROM rasa/rasa-sdk:3.0.0

WORKDIR /app

# 如需安装额外依赖
COPY actions/requirements-actions.txt ./
USER root
RUN pip install -r requirements-actions.txt

COPY ./actions /app/actions
USER 1001
  1. 构建并推送镜像:
docker build . -t myaccount/rasa-actions:v1
docker push myaccount/rasa-actions:v1

使用自定义镜像

创建values.yaml文件:

image:
  name: "myaccount/rasa-actions"
  tag: "v1"

更新部署:

helm upgrade --namespace rasa-actions --reuse-values \
  -f values.yaml my-rasa-actions rasa/rasa-action-server

自动化构建方案

对于持续集成场景,可以使用GitHub Actions自动化构建流程:

  1. 在仓库中创建.github/workflows/action_server.yml
  2. 配置DockerHub凭据为GitHub Secrets
  3. 示例工作流配置:
on:
  push:
    branches: [main]
    paths: ['actions/**']

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    
    - name: Build and push
      uses: RasaHQ/action-server-gha@main
      with:
        docker_image_name: 'myaccount/rasa-actions'
        docker_registry_login: ${{ secrets.DOCKER_HUB_LOGIN }}
        docker_registry_password: ${{ secrets.DOCKER_HUB_PASSWORD }}
        docker_image_tag: ${{ github.sha }}

连接Rasa主服务

最后,将Action Server与Rasa主服务连接:

  1. 创建rasa-values.yaml:
rasa-action-server:
  external:
    enabled: true
    url: "http://my-rasa-actions/webhook"
  1. 更新Rasa部署:
helm upgrade -n rasa --reuse-values -f rasa-values.yaml \
  my-rasa rasa/rasa

总结

本文详细介绍了Rasa Action Server的部署流程,从环境准备到实际部署,再到自定义镜像构建和自动化方案。通过合理的部署配置,可以确保Action Server稳定运行,为对话系统提供可靠的后端服务支持。

在实际项目中,建议结合CI/CD流程实现自动化构建和部署,并定期更新镜像版本,以确保服务的稳定性和安全性。

rasa rasa: 是一个开源的聊天机器人框架,支持自然语言理解和生成。适合开发者构建智能聊天机器人和对话系统。 rasa 项目地址: https://gitcode.com/gh_mirrors/ra/rasa

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金斐茉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值