我们正在将问题迁移到 Jira
从 2023 年 1 月开始,Rasa 开源的问题位于此 Jira 板中。无需登录即可浏览问题;如果您想创建问题,则需要创建一个 Jira 帐户。
Rasa 是一个开源机器学习框架,用于自动执行基于文本和语音的对话。借助 Rasa,您可以在以下方面构建上下文助理:
或语音助手:
Rasa 可以帮助您构建上下文助理,能够进行大量来回的分层对话。为了让人类能够与情境助理进行有意义的交流,助理需要能够使用情境来构建之前讨论过的内容 - Rasa 使您能够构建能够以可扩展的方式完成此任务的助理。
这篇博文中有更多背景信息。
?了解有关拉莎的更多信息
?阅读文档
?安装Rasa
深入学习中心
?贡献
❓ 获得企业级支持
?探索我们商业平台的功能
了解有关利用 Rasa 的研究论文的更多信息
Rasa Docs 中有大量文档。确保选择正确的版本,以便您查看所安装版本的文档。
请使用 Rasa 社区论坛来快速解答问题。
我们很高兴收到您的贡献并将其合并到此存储库中!
要通过拉取请求做出贡献,请按照下列步骤操作:
有关如何贡献代码的更详细说明,请查看这些代码贡献者指南。
您可以在我们的网站上找到有关如何为 Rasa 做出贡献(以多种不同方式!)的更多信息。
您的拉取请求将由维护人员审核,他将就任何必要的更改或问题回复您。您还将被要求签署贡献者许可协议。
Rasa 使用 Poetry 进行打包和依赖管理。如果你想从源代码构建它,你必须先安装 Poetry。请按照官方指南查看所有可能的选项。
要将现有诗歌版本更新为 rasa 当前使用的版本,请运行:
poetry self update < version >
官方的 Poetry 指南建议使用 pyenv 或任何其他类似的工具来轻松切换 Python 版本。可以这样做:
pyenv install 3.10.10
pyenv local 3.10.10 # Activate Python 3.10.10 for the current project
注意:如果您在系统上安装特定版本的 python 时遇到问题,可能值得尝试其他受支持的版本。
默认情况下,Poetry会尝试使用当前激活的Python版本自动为当前项目创建虚拟环境。您还可以手动创建并激活虚拟环境 - 在这种情况下,Poetry 应该选择它并使用它来安装依赖项。例如:
python -m venv .venv
source .venv/bin/activate
您可以通过执行来确保环境已被选中
poetry env info
要在可编辑模式下安装依赖项和rasa
本身,请执行
make install
macOS 用户请注意:在 macOS Big Sur 下,我们发现了一些依赖项的编译器问题。在安装之前使用export SYSTEM_VERSION_COMPAT=1
会有所帮助。
为了安装 rasa 的可选依赖项,您需要运行:
make install-full
macOS 用户注意:命令make install-full
可能会导致安装tokenizers
时失败(此处详细描述了问题)。
为了解决这个问题,您必须按照以下步骤安装 Rust 编译器:
brew install rustup
rustup-init
初始化 Rust 编译器后,您应该重新启动控制台并检查其安装:
rustc --version
如果 PATH 变量尚未自动设置,请运行:
export PATH= " $HOME /.cargo/bin: $PATH "
首先,安装所有必需的依赖项:
make install install-docs
安装完成后,您可以使用以下命令在本地运行并查看文档:
make livedocs
它应该在您的浏览器中打开一个包含本地版本文档的新选项卡;如果没有,请在浏览器中访问 http://localhost:3000。您现在可以在本地更改文档,网页将自动重新加载并应用您的更改。
为了运行测试,请确保您已安装开发要求:
make prepare-tests-ubuntu # Only on Ubuntu and Debian based systems
make prepare-tests-macos # Only on macOS
然后,运行测试:
make test
它们还可以在多个作业中运行以节省一些时间:
JOBS=[n] make test
其中[n]
是所需的工作数量。如果省略, [n]
将由 pytest 自动选择。
为了运行集成测试,请确保您已安装开发要求:
make prepare-tests-ubuntu # Only on Ubuntu and Debian based systems
make prepare-tests-macos # Only on macOS
然后,您需要使用以下使用 Docker Compose 的命令来启动服务:
make run-integration-containers
最后,您可以像这样运行集成测试:
make test-integration
默认情况下,Poetry 不包含任何可以帮助解决锁定文件poetry.lock
中的合并冲突的解决方案。然而,有一个很棒的工具,叫做诗歌合并锁。安装方法如下:
pip install poetry-merge-lock
只需执行此命令即可自动解决poetry.lock
中的合并冲突:
poetry-merge-lock
为了在本地计算机上构建 Docker 映像,请执行以下命令:
make build-docker
Docker 映像在您的本地计算机上以rasa:localdev
形式提供。
为了确保标准化的代码风格,我们使用黑色格式化程序。为了确保我们的类型注释正确,我们使用类型检查器 pytype。如果您的代码格式不正确或未进行类型检查,GitHub 将无法构建。
如果您想在每次提交时自动格式化代码,您可以使用预提交。只需通过pip install pre-commit
安装它并在根文件夹中执行pre-commit install
即可。这将向存储库添加一个挂钩,该挂钩会在每次提交时重新格式化文件。
如果您想手动设置,请通过poetry install
安装 black。要重新格式化文件,请执行
make formatter
如果您想检查代码库上的类型,请使用poetry install
安装mypy
。要检查类型执行
make types
我们使用Docusaurus v2
为标记版本和main
分支构建文档。要运行 Docusaurus,请安装Node.js 12.x
。构建的静态站点被推送到此存储库的documentation
分支。
我们在 netlify 上托管该网站。在main
分支构建上(请参阅.github/workflows/documentation.yml
),我们将构建的文档推送到documentation
分支。每当该分支发生更改时,Netlify 就会自动重新部署文档页面。
Rasa 实施了强有力的政策来管理版本命名以及主要版本、次要版本和补丁版本的发布速度。
给定版本号 (MAJOR.MINOR.PATCH) 的值按如下方式递增:
下表描述了版本类型及其预期发布节奏:
版本类型 | 描述 | 目标节奏 |
---|---|---|
主要的 | 对于重大更改,或者当 API 或数据模型引入任何向后不兼容的更改时。 | 每 1 - 2 年一次 |
次要的 | 当引入新的向后兼容功能时,会引入一个次要功能,或者推出一组较小的功能。 | +/- 季度 |
修补 | 用于修复不正确行为的向后兼容错误修复。 | 根据需要 |
虽然此表代表了我们的目标发布频率,但我们保留根据不断变化的市场条件和技术要求对其进行修改的权利。
我们的生命周期终止政策定义了给定版本被视为受支持的时间,以及版本被视为仍处于活跃开发或维护状态的时间。
每个版本的维护持续时间和生命周期结束都显示在我们的网站上,作为产品发布和维护政策的一部分。
主要版本完成后,请按照以下说明完成文档更新。
发布新版本非常简单,因为包是由 GitHub Actions 构建和分发的。
发布步骤:
git checkout -b 1.2.x
git push origin 1.2.x
main
,次要分支和补丁为<major>.<minor>.x
分支)pyproject.toml
中的rasa-sdk
条目并运行poetry update
。这将创建一个新的poetry.lock
文件,并解决所有依赖项。git commit -am "bump rasa-sdk dependency"
提交更改,但不要推送它们。它们将通过以下步骤自动选取。make release
1.2.x
)git checkout 1.2.x
git pull origin 1.2.x
git tag 1.2.0 -m " next release "
git push origin 1.2.0 --tags
product
频道)中,如下所示event: push
和branch: <version number>
(您可以在此处查看版本 2.4 的示例)product
频道中正确发布消息后,还要在product-engineering-alerts
频道中检查是否存在与 Rasa 开源版本相关的任何警报(例如此警报)补丁版本更容易删除,因为它们只包含错误修复。
要削减补丁版本,您唯一需要做的事情是:
2.0.4
补丁,则需要将修复位于2.0.x
发行分支中)。所有补丁版本必须来自.x
分支!make release
并按照步骤操作 + 合并 PR。.x
分支并推送标签!注意:仅当发布的版本是可用的最高版本时才需要这样做。例如,当 version > version on main 时执行以下步骤。
为了检查新发布的 Rasa 版本与最新版本 Rasa X/Enterprise 之间的兼容性,我们执行以下步骤:
请参阅 Rasa 产品发布和维护政策页面。
根据 Apache 许可证 2.0 版获得许可。版权所有 2022 Rasa Technologies GmbH。许可证副本。
项目依赖项的许可证列表可以在库摘要的底部找到。