{"id":34862,"date":"2024-08-12T14:54:55","date_gmt":"2024-08-12T07:54:55","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/12\/an-introduction-to-the-rasa-framework-for-automated-chats\/"},"modified":"2024-08-12T14:54:55","modified_gmt":"2024-08-12T07:54:55","slug":"an-introduction-to-the-rasa-framework-for-automated-chats","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/12\/an-introduction-to-the-rasa-framework-for-automated-chats\/","title":{"rendered":"Gi\u1edbi thi\u1ec7u v\u1ec1 Rasa Framework cho Automated Chats"},"content":{"rendered":"<p>Rasa l\u00e0 m\u1ed9t khu\u00f4n kh\u1ed5 h\u1ecdc m\u00e1y m\u00e3 ngu\u1ed3n m\u1edf s\u1eed d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn theo c\u00e2u chuy\u1ec7n \u0111\u1ec3 ph\u00e1t tri\u1ec3n tr\u1ee3 l\u00fd tr\u00f2 chuy\u1ec7n b\u1eb1ng v\u0103n b\u1ea3n v\u00e0 gi\u1ecdng n\u00f3i t\u1ef1 \u0111\u1ed9ng. Rasa s\u1eed d\u1ee5ng m\u1ed9t m\u00f4 h\u00ecnh hi\u1ec7u qu\u1ea3 v\u00e0 d\u1ec5 ti\u1ebfp c\u1eadn \u0111\u1ec3 t\u1ea1o v\u00e0 \u0111\u00e0o t\u1ea1o chatbot, v\u00e0 khu\u00f4n kh\u1ed5 n\u00e0y bao g\u1ed3m nhi\u1ec1u \u0111i\u1ec3m \u0111\u1ec3 t\u00edch h\u1ee3p tr\u1ee3 l\u00fd t\u1ef1 \u0111\u1ed9ng.<\/p>\n<p>Trong h\u01b0\u1edbng d\u1eabn n\u00e0y, h\u00e3y t\u00ecm hi\u1ec3u c\u00e1ch b\u1eaft \u0111\u1ea7u v\u1edbi Rasa. T\u1eeb vi\u1ec7c c\u00e0i \u0111\u1eb7t framework, l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c m\u00f4 h\u00ecnh, \u0111\u1ebfn tri\u1ec3n khai m\u1ed9t phi\u00ean b\u1ea3n Rasa v\u00e0o c\u1ee5m Kubernetes, h\u00e3y t\u00ecm hi\u1ec3u c\u00e1ch th\u1ef1c hi\u1ec7n t\u1ea1i \u0111\u00e2y.<\/p>\n<h2 id=\"before-you-begin\">Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#before-you-begin\"><\/a><\/h2>\n<ol>\n<li>N\u1ebfu b\u1ea1n ch\u01b0a th\u1ef1c hi\u1ec7n, h\u00e3y t\u1ea1o m\u1ed9t t\u00e0i kho\u1ea3n Linode v\u00e0 Compute Instance. Xem h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/platform\/get-started\/\">B\u1eaft \u0111\u1ea7u v\u1edbi Linode<\/a>&nbsp;v\u00e0&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/create\/\">T\u1ea1o Compute Instance<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i .<\/li>\n<li>L\u00e0m theo h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/set-up-and-secure\/\">Thi\u1ebft l\u1eadp v\u00e0 B\u1ea3o m\u1eadt Phi\u00ean b\u1ea3n Compute<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i \u0111\u1ec3 c\u1eadp nh\u1eadt h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 mu\u1ed1n \u0111\u1eb7t m\u00fai gi\u1edd, c\u1ea5u h\u00ecnh t\u00ean m\u00e1y ch\u1ee7, t\u1ea1o t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng gi\u1edbi h\u1ea1n v\u00e0 t\u0103ng c\u01b0\u1eddng quy\u1ec1n truy c\u1eadp SSH.<\/li>\n<\/ol>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c vi\u1ebft cho ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng ph\u1ea3i root. C\u00e1c l\u1ec7nh y\u00eau c\u1ea7u quy\u1ec1n n\u00e2ng cao \u0111\u01b0\u1ee3c th\u00eam ti\u1ec1n t\u1ed1&nbsp;<code>sudo<\/code>. N\u1ebfu b\u1ea1n kh\u00f4ng quen v\u1edbi&nbsp;<code>sudo<\/code>l\u1ec7nh n\u00e0y, h\u00e3y xem h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/linux-users-and-groups\/\">Ng\u01b0\u1eddi d\u00f9ng v\u00e0 Nh\u00f3m<\/a>&nbsp;.<\/p>\n<h2 id=\"how-to-install-rasa-open-source\">C\u00e1ch c\u00e0i \u0111\u1eb7t Rasa Open Source<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#how-to-install-rasa-open-source\"><\/a><\/h2>\n<p>Rasa Open Source c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t b\u1eb1ng tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i Pip cho Python 3. M\u1ed9t s\u1ed1 ph\u1ea7n ti\u1ebfp theo s\u1ebd h\u01b0\u1edbng d\u1eabn c\u00e1ch thi\u1ebft l\u1eadp c\u00e1c \u0111i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft v\u00e0 c\u00e0i \u0111\u1eb7t Rasa.<\/p>\n<p>Sau khi c\u00e0i \u0111\u1eb7t ph\u1ea7n m\u1ec1m Rasa Open Source, c\u00e1c d\u1ef1 \u00e1n Rasa c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u1ea1o, x\u00e2y d\u1ef1ng v\u00e0 ch\u1ea1y khi c\u1ea7n. Ti\u1ebfp t\u1ee5c \u0111\u1ecdc \u0111\u1ec3 bi\u1ebft c\u00e1ch b\u1eaft \u0111\u1ea7u m\u1ed9t d\u1ef1 \u00e1n Rasa, hi\u1ec3u c\u00e1c th\u00e0nh ph\u1ea7n c\u1ee7a n\u00f3 v\u00e0 tri\u1ec3n khai n\u00f3 v\u00e0o c\u1ee5m Kubernetes.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: T\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c cho Rasa Open Source ch\u1ec9 li\u1ec7t k\u00ea Ubuntu l\u00e0 b\u1ea3n ph\u00e2n ph\u1ed1i Linux \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3. Tuy nhi\u00ean, c\u00e1c b\u01b0\u1edbc trong h\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng th\u00e0nh c\u00f4ng \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Rasa Open Source tr\u00ean AlmaLinux, CentOS Stream, Debian v\u00e0 Rocky Linux.<\/p>\n<h3 id=\"setting-up-the-prerequisites\">Thi\u1ebft l\u1eadp c\u00e1c \u0111i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#setting-up-the-prerequisites\"><\/a><\/h3>\n<p>Rasa ch\u1ea1y b\u1eb1ng Python 3, Pip v\u00e0 m\u00f4i tr\u01b0\u1eddng \u1ea3o Python. \u0110\u1ec3 b\u1eaft \u0111\u1ea7u, h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n ph\u1ea3i c\u00e0i \u0111\u1eb7t c\u00e1c phi\u00ean b\u1ea3n \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 c\u1ee7a ph\u1ea7n m\u1ec1m c\u1ea7n thi\u1ebft.<\/p>\n<p>C\u00e1c b\u01b0\u1edbc n\u00e0y h\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t v\u00e0 thi\u1ebft l\u1eadp m\u00f4i tr\u01b0\u1eddng \u1ea3o ban \u0111\u1ea7u.<\/p>\n<ol>\n<li>C\u00e0i \u0111\u1eb7t phi\u00ean b\u1ea3n t\u01b0\u01a1ng th\u00edch c\u1ee7a Python 3 v\u00e0 Pip 3 b\u1eb1ng l\u1ec7nh th\u00edch h\u1ee3p b\u00ean d\u01b0\u1edbi. H\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 \u0111\u00e3 c\u00e0i \u0111\u1eb7t c\u00e1c g\u00f3i n\u00e0y, trong tr\u01b0\u1eddng h\u1ee3p \u0111\u00f3, c\u00e1c l\u1ec7nh n\u00e0y ch\u1ec9 c\u1ea7n c\u1eadp nh\u1eadt ch\u00fang.\n<ul>\n<li><strong>Debian 11<\/strong>&nbsp;v\u00e0&nbsp;<strong>Ubuntu 22.04 LTS<\/strong>&nbsp;:<code>sudo apt install python3-dev python3-pip python3-venv<\/code><\/li>\n<li><strong>AlmaLinux 9<\/strong>&nbsp;,&nbsp;<strong>CentOS Stream 9<\/strong>&nbsp;v\u00e0&nbsp;<strong>Rocky Linux 9<\/strong>&nbsp;:<code>sudo dnf install python3-devel<\/code><\/li>\n<\/ul>\n<\/li>\n<li>T\u1ea1o m\u1ed9t m\u00f4i tr\u01b0\u1eddng \u1ea3o Python cho d\u1ef1 \u00e1n Rasa v\u00e0 chuy\u1ec3n sang \u0111\u00f3. H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u1eb7t t\u00ean cho m\u00f4i tr\u01b0\u1eddng \u1ea3o&nbsp;<code>rasa-venv<\/code>v\u00e0 l\u01b0u tr\u1eef n\u00f3 trong th\u01b0 m\u1ee5c home c\u1ee7a ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i.<code>python3 -m venv ~\/rasa-venv source ~\/rasa-venv\/bin\/activate<\/code>B\u00e2y gi\u1edd ch\u1ec9&nbsp;<code>(rasa-venv)<\/code>b\u00e1o s\u1ebd xu\u1ea5t hi\u1ec7n \u1edf \u0111\u1ea7u d\u00f2ng l\u1ec7nh.<\/li>\n<\/ol>\n<p>Ghi ch\u00fa :<\/p>\n<p>\u0110\u1ec3 tham kh\u1ea3o, h\u00e3y tho\u00e1t kh\u1ecfi m\u00f4i tr\u01b0\u1eddng \u1ea3o b\u1eb1ng l\u1ec7nh \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb \u1edf \u0111\u00e2y:<\/p>\n<pre class=\"wp-block-code\"><code>deactivate<\/code><\/pre>\n<p>\u0110\u1ec3 v\u00e0o l\u1ea1i m\u00f4i tr\u01b0\u1eddng \u1ea3o, b\u1ea1n ch\u1ec9 c\u1ea7n l\u1eb7p l\u1ea1i&nbsp;<code>source<\/code>l\u1ec7nh tr\u00ean.<\/p>\n<h3 id=\"installing-rasa-open-source\">C\u00e0i \u0111\u1eb7t Rasa Open Source<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#installing-rasa-open-source\"><\/a><\/h3>\n<p>B\u00e2y gi\u1edd l\u00e0 l\u00fac c\u00e0i \u0111\u1eb7t Rasa Open Source. Rasa \u0111\u01b0\u1ee3c ph\u00e2n ph\u1ed1i d\u01b0\u1edbi d\u1ea1ng g\u00f3i Pip v\u00e0 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t sau khi tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t.<\/p>\n<ol>\n<li>N\u00e2ng c\u1ea5p c\u00e0i \u0111\u1eb7t Pip \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o n\u00f3 c\u00f3 c\u00e1c g\u00f3i m\u1edbi nh\u1ea5t hi\u1ec7n c\u00f3:<code>pip3 install --upgrade pip<\/code><\/li>\n<li>C\u00e0i \u0111\u1eb7t Rasa Open Source:<code>pip3 install rasa<\/code><\/li>\n<\/ol>\n<h2 id=\"how-to-build-a-chatbot-with-rasa\">C\u00e1ch x\u00e2y d\u1ef1ng Chatbot v\u1edbi Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#how-to-build-a-chatbot-with-rasa\"><\/a><\/h2>\n<p>V\u1edbi Rasa Open Source \u0111\u00e3 c\u00e0i \u0111\u1eb7t, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u1ed9t d\u1ef1 \u00e1n Rasa c\u01a1 b\u1ea3n. Ph\u1ea7n n\u00e0y bao g\u1ed3m c\u00e1c b\u01b0\u1edbc \u0111\u1ec3 t\u1ea1o d\u1ef1 \u00e1n v\u00e0 ph\u00e2n t\u00edch s\u00e2u v\u1ec1 c\u1ea5u tr\u00fac c\u1ee7a d\u1ef1 \u00e1n. Sau \u0111\u00f3, h\u00e3y t\u00ecm hi\u1ec3u c\u00e1ch ch\u1ea1y d\u1ef1 \u00e1n b\u1eb1ng c\u00e1ch v\u1eadn h\u00e0nh m\u1ed9t chatbot Rasa \u0111ang ho\u1ea1t \u0111\u1ed9ng.<\/p>\n<h3 id=\"creating-a-rasa-project\">T\u1ea1o m\u1ed9t d\u1ef1 \u00e1n Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#creating-a-rasa-project\"><\/a><\/h3>\n<ol>\n<li>Ch\u1ea1y t\u1eadp l\u1ec7nh kh\u1edfi t\u1ea1o \u0111\u1ec3 t\u1ea1o m\u1ed9t d\u1ef1 \u00e1n Rasa m\u1edbi. V\u00ed d\u1ee5 n\u00e0y b\u1eaft \u0111\u1ea7u trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i, nh\u01b0ng b\u1ea5t k\u1ef3 th\u01b0 m\u1ee5c n\u00e0o c\u0169ng c\u00f3 th\u1ec3 d\u00f9ng \u0111\u1ec3 ch\u1ee9a th\u01b0 m\u1ee5c con c\u1ee7a d\u1ef1 \u00e1n Rasa.<code>cd ~\/ rasa init<\/code>L\u1eddi nh\u1eafc \u0111\u1ea7u ti\u00ean h\u1ecfi v\u1ecb tr\u00ed \u0111\u1eb7t d\u1ef1 \u00e1n Rasa. H\u01b0\u1edbng d\u1eabn n\u00e0y s\u1eed d\u1ee5ng&nbsp;<code>rasa-example<\/code>, k\u1ebft qu\u1ea3 l\u00e0 m\u1ed9t&nbsp;<code>~\/rasa-example<\/code>th\u01b0 m\u1ee5c. V\u00ec th\u01b0 m\u1ee5c n\u00e0y ch\u01b0a t\u1ed3n t\u1ea1i, h\u00e3y nh\u1ea5n&nbsp;<kbd>Y<\/kbd>(&nbsp;<code>Yes<\/code>) \u0111\u1ec3 t\u1ea1o th\u01b0 m\u1ee5c. L\u1eddi nh\u1eafc ti\u1ebfp theo y\u00eau c\u1ea7u \u0111\u00e0o t\u1ea1o m\u00f4 h\u00ecnh ban \u0111\u1ea7u. Ch\u1ecdn&nbsp;<kbd>n<\/kbd>(&nbsp;<code>No<\/code>) t\u1ea1i \u0111\u00e2y, v\u00ec h\u01b0\u1edbng d\u1eabn n\u00e0y ch\u1ec9 c\u00e1ch th\u1ef1c hi\u1ec7n \u0111\u00e0o t\u1ea1o sau.<\/li>\n<li>Chuy\u1ec3n sang th\u01b0 m\u1ee5c m\u1edbi \u0111\u01b0\u1ee3c t\u1ea1o cho d\u1ef1 \u00e1n Rasa. S\u1eed d\u1ee5ng v\u00ed d\u1ee5 tr\u00ean, \u0111\u00e2y s\u1ebd l\u00e0 th\u01b0&nbsp;<code>~\/rasa-example<\/code>m\u1ee5c.<code>cd ~\/rasa-example<\/code><\/li>\n<\/ol>\n<h3 id=\"understanding-the-rasa-project-structure\">Hi\u1ec3u v\u1ec1 c\u1ea5u tr\u00fac d\u1ef1 \u00e1n Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#understanding-the-rasa-project-structure\"><\/a><\/h3>\n<p>Th\u01b0 m\u1ee5c c\u1ee7a d\u1ef1 \u00e1n m\u1edbi ch\u1ee9a c\u1ea5u tr\u00fac d\u1ef1 \u00e1n Rasa c\u01a1 b\u1ea3n. Ph\u1ea7n sau \u0111\u00e2y ph\u00e2n t\u00edch n\u1ed9i dung d\u1ef1 \u00e1n m\u1eb7c \u0111\u1ecbnh \u0111\u1ec3 gi\u00fap hi\u1ec3u c\u1ea5u tr\u00fac v\u00e0 \u0111i\u1ec1u h\u01b0\u1edbng c\u00e1c th\u00e0nh ph\u1ea7n c\u1ee7a Rasa.<\/p>\n<p>N\u1ed9i dung ph\u1ea3i gi\u1ed1ng v\u1edbi ph\u00e1c th\u1ea3o sau, ngo\u1ea1i tr\u1eeb c\u00e1c t\u1ec7p nh\u01b0&nbsp;<code>__init__.py<\/code>v\u1eady c\u00f3 th\u1ec3 kh\u00f4ng c\u1ea7n thi\u1ebft khi ph\u00e1t tri\u1ec3n tr\u1ee3 l\u00fd Rasa m\u1eabu.<\/p>\n<ul>\n<li><code>actions\/<\/code>\n<ul>\n<li><code>actions.py<\/code>x\u00e1c \u0111\u1ecbnh c\u00e1c h\u00e0nh \u0111\u1ed9ng t\u00f9y ch\u1ec9nh cho tr\u1ee3 l\u00fd Rasa b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng m\u00e3 Python c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t theo c\u00e1c \u0111i\u1ec1u ki\u1ec7n nh\u1ea5t \u0111\u1ecbnh.<a href=\"https:\/\/rasa.com\/docs\/rasa\/actions\" target=\"_blank\" rel=\"noreferrer noopener\">T\u00e0i li\u1ec7u<\/a>&nbsp;c\u1ee7a Rasa&nbsp;\u0111\u1ec1 c\u1eadp \u0111\u1ebfn c\u00e1c h\u00e0nh \u0111\u1ed9ng v\u00e0 cung c\u1ea5p b\u1ed1i c\u1ea3nh s\u1eed d\u1ee5ng ch\u00fang.<\/li>\n<\/ul>\n<\/li>\n<li><code>data\/<\/code>ch\u1ee9a c\u00e1c m\u00f4 h\u00ecnh c\u1ed1t l\u00f5i cho tr\u1ee3 l\u00fd Rasa. \u0110\u00e2y l\u00e0 n\u01a1i di\u1ec5n ra h\u1ea7u h\u1ebft qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n c\u1ee7a tr\u1ee3 l\u00fd.\n<ul>\n<li><code>nlu.yml<\/code>\u0111\u1ecbnh ngh\u0129a c\u00e1c m\u00f4 h\u00ecnh Hi\u1ec3u ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean (NLU) cho tr\u1ee3 l\u00fd Rasa. \u0110i\u1ec1u n\u00e0y cung c\u1ea5p cho tr\u1ee3 l\u00fd c\u00e1c c\u1ea5u tr\u00fac \u0111\u1ec3 s\u1eed d\u1ee5ng trong vi\u1ec7c x\u00e1c \u0111\u1ecbnh \u00fd \u0111\u1ecbnh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng v\u00e0 th\u00f4ng tin \u0111\u01b0\u1ee3c truy\u1ec1n \u0111\u1ea1t.Xem trang t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c v\u1ec1&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/nlu-training-data\/\" target=\"_blank\" rel=\"noreferrer noopener\">D\u1eef li\u1ec7u \u0111\u00e0o t\u1ea1o NLU<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft v\u1ec1 c\u00e1c m\u00f4 h\u00ecnh n\u00e0y.<\/li>\n<li><code>rules.yml<\/code>\u0111\u1ecbnh ngh\u0129a m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c h\u00e0nh \u0111\u1ed9ng c\u1ee5 th\u1ec3 c\u1ea7n th\u1ef1c hi\u1ec7n trong c\u00e1c \u0111i\u1ec1u ki\u1ec7n c\u1ee5 th\u1ec3. Nh\u1eefng h\u00e0nh \u0111\u1ed9ng n\u00e0y ph\u1ea3i \u0111\u1ecbnh ngh\u0129a h\u00e0nh vi gi\u1ed1ng nh\u01b0 quy t\u1eafc ho\u1eb7c c\u00e1c h\u00e0nh \u0111\u1ed9ng lu\u00f4n th\u1ef1c hi\u1ec7n khi ng\u01b0\u1eddi d\u00f9ng cung c\u1ea5p m\u1ed9t s\u1ed1 \u00fd \u0111\u1ecbnh ho\u1eb7c th\u00f4ng tin nh\u1ea5t \u0111\u1ecbnh.<a href=\"https:\/\/rasa.com\/docs\/rasa\/rules\/\" target=\"_blank\" rel=\"noreferrer noopener\">Xem trang Quy t\u1eafc<\/a>&nbsp;c\u1ee7a t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c&nbsp;\u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin.<\/li>\n<li><code>stories.yml<\/code>m\u00f4 h\u00ecnh c\u00e1c cu\u1ed9c \u0111\u1ed1i tho\u1ea1i m\u00e0 tr\u1ee3 l\u00fd Rasa d\u1ef1 ki\u1ebfn \u200b\u200bs\u1ebd tham gia. C\u00e1c m\u00f4 h\u00ecnh n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 \u0111\u00e0o t\u1ea1o tr\u1ee3 l\u00fd cho cu\u1ed9c tr\u00f2 chuy\u1ec7n v\u00e0 bao g\u1ed3m \u00fd \u0111\u1ecbnh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng v\u00e0\/ho\u1eb7c ch\u00fa th\u00edch th\u00f4ng tin, c\u00f9ng v\u1edbi chu\u1ed7i h\u00e0nh \u0111\u1ed9ng c\u1ee7a tr\u1ee3 l\u00fd.<a href=\"https:\/\/rasa.com\/docs\/rasa\/stories\/\" target=\"_blank\" rel=\"noreferrer noopener\">Xem trang C\u00e2u chuy\u1ec7n<\/a>&nbsp;trong t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c&nbsp;\u0111\u1ec3 bi\u1ebft th\u00eam v\u1ec1 vai tr\u00f2 v\u00e0 chi ti\u1ebft c\u1ee7a c\u00e1c c\u00e2u chuy\u1ec7n.<\/li>\n<\/ul>\n<\/li>\n<li><code>tests\/<\/code>\n<ul>\n<li><code>test_stories.yml<\/code>x\u00e1c \u0111\u1ecbnh c\u00e1c c\u00e2u chuy\u1ec7n th\u1eed nghi\u1ec7m \u0111\u1ec3 x\u00e1c minh r\u1eb1ng tr\u1ee3 l\u00fd Rasa ph\u1ea3n h\u1ed3i nh\u01b0 mong \u0111\u1ee3i.Xem trang t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c v\u1ec1&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/testing-your-assistant\" target=\"_blank\" rel=\"noreferrer noopener\">Ki\u1ec3m tra Tr\u1ee3 l\u00fd c\u1ee7a b\u1ea1n<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft th\u00f4ng tin v\u1ec1 c\u00e1ch x\u00e2y d\u1ef1ng c\u00e1c c\u00e2u chuy\u1ec7n th\u1eed nghi\u1ec7m Rasa hi\u1ec7u qu\u1ea3.<\/li>\n<\/ul>\n<\/li>\n<li><code>config.yml<\/code>ch\u1ec9 \u0111\u1ecbnh c\u1ea5u h\u00ecnh \u0111\u1ec3 \u0111\u00e0o t\u1ea1o tr\u1ee3 l\u00fd Rasa. N\u1ebfu kh\u00f4ng c\u00f3 ch\u1ec9 \u0111\u1ecbnh, Rasa s\u1ebd s\u1eed d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p m\u1eb7c \u0111\u1ecbnh.T\u00ecm hi\u1ec3u th\u00eam tr\u00ean trang&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/model-configuration\/\" target=\"_blank\" rel=\"noreferrer noopener\">C\u1ea5u h\u00ecnh m\u00f4 h\u00ecnh<\/a>&nbsp;c\u1ee7a t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c.<\/li>\n<li><code>credentials.yml<\/code>l\u01b0u tr\u1eef th\u00f4ng tin x\u00e1c th\u1ef1c \u0111\u01b0\u1ee3c tr\u1ee3 l\u00fd Rasa s\u1eed d\u1ee5ng \u0111\u1ec3 giao ti\u1ebfp v\u1edbi n\u1ec1n t\u1ea3ng tr\u00f2 chuy\u1ec7n b\u1eb1ng v\u0103n b\u1ea3n v\u00e0 gi\u1ecdng n\u00f3i. T\u1ec7p m\u1eb7c \u0111\u1ecbnh bao g\u1ed3m c\u00e1c tr\u00ecnh gi\u1eef ch\u1ed7 cho nhi\u1ec1u n\u1ec1n t\u1ea3ng, bao g\u1ed3m Facebook, Slack v\u00e0 Socket.IO.T\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c c\u00f3 m\u1ed9t trang v\u1ec1&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/messaging-and-voice-channels\" target=\"_blank\" rel=\"noreferrer noopener\">K\u1ebft n\u1ed1i v\u1edbi K\u00eanh nh\u1eafn tin v\u00e0 k\u00eanh tho\u1ea1i<\/a>&nbsp;cung c\u1ea5p th\u00eam th\u00f4ng tin.Ngo\u00e0i ra, h\u00e3y tham kh\u1ea3o h\u01b0\u1edbng d\u1eabn c\u1ee7a ch\u00fang t\u00f4i v\u1ec1&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/using-socket-io\">C\u00e1ch s\u1eed d\u1ee5ng WebSockets v\u1edbi Socket.IO<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft v\u00ed d\u1ee5 v\u1ec1 \u1ee9ng d\u1ee5ng tr\u00f2 chuy\u1ec7n Socket.IO c\u00f3 th\u1ec3 t\u00edch h\u1ee3p v\u1edbi tr\u1ee3 l\u00fd Rasa.<\/li>\n<li><code>domain.yml<\/code>ch\u1ec9 \u0111\u1ecbnh nh\u1eefng th\u00e0nh ph\u1ea7n n\u00e0o t\u1eeb c\u1ea5u h\u00ecnh s\u1ebd bao g\u1ed3m trong \u201cth\u1ebf gi\u1edbi\u201d c\u1ee7a tr\u1ee3 l\u00fd Rasa. V\u00ed d\u1ee5, s\u1eed d\u1ee5ng \u0111i\u1ec1u n\u00e0y \u0111\u1ec3 bao g\u1ed3m c\u00e1c \u00fd \u0111\u1ecbnh \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh trong t\u1ec7p&nbsp;<code>nlu.yml<\/code>ho\u1eb7c b\u1ea5t k\u1ef3 h\u00e0nh \u0111\u1ed9ng n\u00e0o \u0111\u01b0\u1ee3c t\u1ea1o. T\u1ec7p n\u00e0y c\u0169ng l\u00e0 n\u01a1i c\u00e1c ph\u1ea3n h\u1ed3i \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh.Nh\u1eadn l\u1eddi gi\u1ea3i th\u00edch \u0111\u1ea7y \u0111\u1ee7 h\u01a1n v\u00e0 v\u00ed d\u1ee5 b\u1ed5 sung th\u00f4ng qua t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c v\u1ec1&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/domain\/\" target=\"_blank\" rel=\"noreferrer noopener\">Domains<\/a>&nbsp;.<\/li>\n<li><code>endpoints.yml<\/code>ch\u1ec9 \u0111\u1ecbnh c\u00e1c \u0111i\u1ec3m cu\u1ed1i kh\u00e1c nhau m\u00e0 tr\u1ee3 l\u00fd Rasa k\u1ebft n\u1ed1i t\u1edbi. \u0110i\u1ec1u n\u00e0y bao g\u1ed3m m\u1ed9t \u0111i\u1ec3m cu\u1ed1i \u0111\u1ec3 Rasa k\u00e9o m\u00f4 h\u00ecnh \u0111\u1ecbnh k\u1ef3 t\u1eeb m\u00e1y ch\u1ee7 t\u1eeb xa.H\u00e3y theo c\u00e1c li\u00ean k\u1ebft \u0111\u01b0\u1ee3c cung c\u1ea5p trong n\u1ed9i dung t\u1ec7p m\u1eb7c \u0111\u1ecbnh \u0111\u1ec3 xem c\u00e1c lo\u1ea1i \u0111i\u1ec3m cu\u1ed1i kh\u00e1c nhau c\u00f3 s\u1eb5n.<\/li>\n<\/ul>\n<h3 id=\"running-the-rasa-assistant\">Ch\u1ea1y Tr\u1ee3 l\u00fd Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#running-the-rasa-assistant\"><\/a><\/h3>\n<p>Tr\u01b0\u1edbc khi kh\u00e1m ph\u00e1 tr\u1ee3 l\u00fd, n\u00f3 ph\u1ea3i \u0111\u01b0\u1ee3c \u0111\u00e0o t\u1ea1o b\u1eb1ng m\u1ed9t m\u00f4 h\u00ecnh kh\u1ea3 thi. T\u1ea1i th\u1eddi \u0111i\u1ec3m n\u00e0y, c\u00e1c t\u1ec7p trong&nbsp;<code>data\/<\/code>th\u01b0 m\u1ee5c con c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eeda \u0111\u1ed5i, nh\u01b0ng d\u1ef1 \u00e1n Rasa m\u1eb7c \u0111\u1ecbnh c\u00f3 \u0111\u1ee7 \u0111\u1ec3 l\u1ea5y m\u1eabu c\u00e1c kh\u1ea3 n\u0103ng c\u1ee7a n\u00f3.<\/p>\n<p>T\u00ecm hi\u1ec3u th\u00eam v\u1ec1 vi\u1ec7c t\u1ea1o ra c\u00e1c m\u00f4 h\u00ecnh hi\u1ec7u qu\u1ea3 \u0111\u1ec3 x\u00e2y d\u1ef1ng tr\u1ee3 l\u00fd Rasa th\u00f4ng qua c\u00e1c h\u01b0\u1edbng d\u1eabn th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t c\u1ee7a t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c. Bao g\u1ed3m h\u01b0\u1edbng d\u1eabn v\u1ec1&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/conversation-driven-development\" target=\"_blank\" rel=\"noreferrer noopener\">Ph\u00e1t tri\u1ec3n theo h\u01b0\u1edbng h\u1ed9i tho\u1ea1i<\/a>&nbsp;v\u00e0 h\u01b0\u1edbng d\u1eabn v\u1ec1&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/generating-nlu-data\" target=\"_blank\" rel=\"noreferrer noopener\">T\u1ea1o d\u1eef li\u1ec7u NLU<\/a>&nbsp;s\u1eb5n s\u00e0ng cho s\u1ea3n xu\u1ea5t.<\/p>\n<p>S\u1eed d\u1ee5ng c\u00e1c m\u00f4 h\u00ecnh m\u1eb7c \u0111\u1ecbnh (ho\u1eb7c m\u00f4 h\u00ecnh t\u00f9y ch\u1ec9nh) \u0111\u1ec3 \u0111\u00e0o t\u1ea1o tr\u1ee3 l\u00fd b\u1eb1ng m\u1ed9t l\u1ec7nh duy nh\u1ea5t cho c\u00f4ng c\u1ee5 Rasa CLI:<\/p>\n<pre class=\"wp-block-code\"><code>rasa train<\/code><\/pre>\n<p>Rasa ti\u1ebfn h\u00e0nh qu\u00e1 tr\u00ecnh \u0111\u00e0o t\u1ea1o, chu\u1ea9n b\u1ecb m\u1ed9t m\u00f4 h\u00ecnh m\u00e1y h\u1ecdc \u0111\u1ea7y \u0111\u1ee7 t\u1eeb mi\u1ec1n, NLU, c\u00e2u chuy\u1ec7n v\u00e0 c\u00e1c m\u00f4 h\u00ecnh quy t\u1eafc \u0111\u01b0\u1ee3c cung c\u1ea5p.<\/p>\n<p>Sau khi ho\u00e0n t\u1ea5t qu\u00e1 tr\u00ecnh \u0111\u00e0o t\u1ea1o, ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi tr\u1ee3 l\u00fd t\u1eeb d\u00f2ng l\u1ec7nh. S\u1eed d\u1ee5ng l\u1ec7nh b\u00ean d\u01b0\u1edbi \u0111\u1ec3 kh\u1edfi t\u1ea1o phi\u00ean tr\u00f2 chuy\u1ec7n d\u00f2ng l\u1ec7nh v\u1edbi tr\u1ee3 l\u00fd:<\/p>\n<pre class=\"wp-block-code\"><code>rasa shell<\/code><\/pre>\n<p>Kh\u00e1m ph\u00e1 cu\u1ed9c tr\u00f2 chuy\u1ec7n \u0111\u1ec3 l\u1ea5y m\u1eabu v\u1ec1 c\u00e1ch tr\u1ee3 l\u00fd ph\u1ea3n h\u1ed3i v\u00e0 x\u00e2y d\u1ef1ng t\u1eeb c\u00e1c c\u00e2u chuy\u1ec7n. Sau \u0111\u00e2y l\u00e0 m\u1ed9t v\u00ed d\u1ee5 v\u1ec1 trao \u0111\u1ed5i s\u1eed d\u1ee5ng c\u00e1c m\u00f4 h\u00ecnh m\u1eb7c \u0111\u1ecbnh c\u1ee7a Rasa:<\/p>\n<pre class=\"wp-block-code\"><code>Your input -&gt;  Hello!\nHey! How are you?\nYour input -&gt;  Great!\nGreat, carry on!\nYour input -&gt;  Thanks!\nBye\nYour input -&gt;<\/code><\/pre>\n<p>Khi ho\u00e0n t\u1ea5t, h\u00e3y nh\u1eadp&nbsp;<code>\/stop<\/code>\u0111\u1ec3 tho\u00e1t kh\u1ecfi cu\u1ed9c tr\u00f2 chuy\u1ec7n.<\/p>\n<p>Vi\u1ec7c so s\u00e1nh nh\u1eefng ph\u1ea3n h\u1ed3i n\u00e0y v\u1edbi n\u1ed9i dung m\u00f4 h\u00ecnh trong&nbsp;<code>\/data<\/code>th\u01b0 m\u1ee5c c\u00f3 th\u1ec3 ch\u1ec9 ra c\u00e1ch Rasa di\u1ec5n gi\u1ea3i v\u00e0 huy \u0111\u1ed9ng c\u00e1c m\u00f4 h\u00ecnh n\u00e0y.<\/p>\n<h2 id=\"how-to-deploy-a-rasa-chatbot\">C\u00e1ch tri\u1ec3n khai Chatbot Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#how-to-deploy-a-rasa-chatbot\"><\/a><\/h2>\n<p>\u0110\u1ed1i v\u1edbi m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng, ch\u1ea1y Rasa c\u1ee5c b\u1ed9 c\u00f3 th\u1ec3 \u0111\u1ee7. V\u00ed d\u1ee5 v\u1ec1 \u1ee9ng d\u1ee5ng tr\u00f2 chuy\u1ec7n trong h\u01b0\u1edbng d\u1eabn Socket.IO \u0111\u01b0\u1ee3c li\u00ean k\u1ebft \u1edf tr\u00ean, ch\u1eb3ng h\u1ea1n, c\u00f3 th\u1ec3 t\u1eadn d\u1ee5ng m\u1ed9t phi\u00ean b\u1ea3n Rasa c\u1ee5c b\u1ed9 \u0111\u1ec3 t\u00edch h\u1ee3p c\u00e1c t\u00ednh n\u0103ng tr\u00f2 chuy\u1ec7n Rasa.<\/p>\n<p>Tuy nhi\u00ean, th\u00f4ng th\u01b0\u1eddng nh\u1ea5t, ph\u1ea3i tri\u1ec3n khai phi\u00ean b\u1ea3n Rasa. C\u00f3 m\u1ed9t s\u1ed1 kh\u1ea3 n\u0103ng \u0111\u1ec3 th\u1ef1c hi\u1ec7n \u0111i\u1ec1u \u0111\u00f3, m\u1ed9t s\u1ed1 trong \u0111\u00f3 \u0111\u01b0\u1ee3c \u0111\u1ec1 c\u1eadp trong&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/deploy\/introduction#alternative-deployment-methods\" target=\"_blank\" rel=\"noreferrer noopener\">t\u00e0i li\u1ec7u<\/a>&nbsp;c\u1ee7a Rasa .<\/p>\n<p>Ph\u01b0\u01a1ng ph\u00e1p tri\u1ec3n khai \u0111\u01b0\u1ee3c \u0111\u1ec1 xu\u1ea5t cho Rasa l\u00e0 th\u00f4ng qua Kubernetes. \u0110\u1ec3 b\u1eaft \u0111\u1ea7u, c\u00e1c ph\u1ea7n sau \u0111\u00e2y s\u1ebd h\u01b0\u1edbng d\u1eabn c\u00e1ch thi\u1ebft l\u1eadp c\u1ee5m Linode Kubernetes v\u00e0 tri\u1ec3n khai m\u1ed9t d\u1ef1 \u00e1n Rasa \u0111\u01a1n gi\u1ea3n v\u00e0o c\u1ee5m \u0111\u00f3.<\/p>\n<h3 id=\"deploying-rasa\">Tri\u1ec3n khai Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#deploying-rasa\"><\/a><\/h3>\n<p>Rasa y\u00eau c\u1ea7u m\u1ed9t c\u1ee5m Kubernetes, v\u1edbi kubectl \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi c\u1ee5m n\u00e0y. Helm c\u0169ng ph\u1ea3i \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t, v\u00ec tri\u1ec3n khai Rasa s\u1eed d\u1ee5ng c\u1ea5u h\u00ecnh Helm Chart.<\/p>\n<p>C\u00e1c b\u01b0\u1edbc sau \u0111\u00e2y h\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp c\u00e1c \u0111i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft n\u00e0y v\u00e0 tri\u1ec3n khai m\u1ed9t d\u1ef1 \u00e1n Rasa m\u1eabu.<\/p>\n<ol>\n<li>H\u00e3y ch\u1eafc ch\u1eafn tho\u00e1t kh\u1ecfi m\u00f4i tr\u01b0\u1eddng \u1ea3o Python:<code>deactivate<\/code><\/li>\n<li>L\u00e0m theo h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-and-manage-a-cluster-with-linode-kubernetes-engine-a-tutorial\/\">Tri\u1ec3n khai v\u00e0 qu\u1ea3n l\u00fd c\u1ee5m tr\u00ean Linode Kubernetes Engine (LKE)<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i \u0111\u1ec3 thi\u1ebft l\u1eadp c\u1ee5m Kubernetes v\u00e0 c\u1ea5u h\u00ecnh kubectl.<\/li>\n<li>T\u1ea1o kh\u00f4ng gian t\u00ean cho c\u1ee5m Rasa Kubernetes. V\u00ed d\u1ee5 n\u00e0y ch\u1ec9 \u0111\u1ecbnh kh\u00f4ng gian t\u00ean&nbsp;<code>rasacluster<\/code>.<code>kubectl create namespace rasacluster<\/code><\/li>\n<li>L\u00e0m theo h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/how-to-install-apps-on-kubernetes-with-helm-3\/#install-the-helm-client\">C\u00e0i \u0111\u1eb7t \u1ee9ng d\u1ee5ng tr\u00ean Kubernetes b\u1eb1ng Helm 3<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i \u0111\u1ec3 bi\u1ebft c\u00e1ch c\u00e0i \u0111\u1eb7t \u1ee9ng d\u1ee5ng kh\u00e1ch Helm CLI.\n<ul>\n<li>Ghi ch\u00fa :Ng\u01b0\u1eddi d\u00f9ng AlmaLinux, CentOS Stream v\u00e0 Rocky Linux c\u00f3 th\u1ec3 c\u1ea7n ph\u1ea3i c\u00e0i \u0111\u1eb7t&nbsp;<code>git<\/code>v\u00e0&nbsp;<code>tar<\/code>tr\u01b0\u1edbc khi c\u00e0i \u0111\u1eb7t Helm: <code>sudo dnf install git tar<\/code><\/li>\n<\/ul>\n<\/li>\n<li>T\u1ea1o m\u1ed9t&nbsp;<code>rasa-chart<\/code>th\u01b0 m\u1ee5c trong th\u01b0 m\u1ee5c g\u1ed1c c\u1ee7a ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i v\u00e0 thay \u0111\u1ed5i v\u00e0o \u0111\u00f3:<code>mkdir ~\/rasa-chart cd ~\/rasa-chart<\/code><\/li>\n<li>T\u1ea1o m\u1ed9t&nbsp;<code>rasa-values.yaml<\/code>t\u1eadp tin trong th\u01b0 m\u1ee5c m\u1edbi \u0111\u01b0\u1ee3c t\u1ea1o&nbsp;<code>~\/rasa-chart<\/code>:<code>nano ~\/rasa-chart\/rasa-values.yaml<\/code><\/li>\n<li>Cung c\u1ea5p cho t\u1eadp tin nh\u1eefng n\u1ed9i dung sau:T\u1eadp tin: rasa-values.yaml<code>1 2 3 4 5 6 7 <\/code><code>applicationSettings: initialModel: \"https:\/\/github.com\/RasaHQ\/rasa-x-demo\/blob\/master\/models\/model.tar.gz?raw=true\" trainInitialModel: <strong>true<\/strong> credentials: enabled: <strong>true<\/strong> additionalChannelCredentials: rest:<\/code>\u0110\u1ec3 l\u01b0u t\u1ec7p v\u00e0 tho\u00e1t kh\u1ecfi&nbsp;<code>nano<\/code>tr\u00ecnh so\u1ea1n th\u1ea3o v\u0103n b\u1ea3n, h\u00e3y nh\u1ea5n&nbsp;<kbd>CTRL<\/kbd>+&nbsp;<kbd>X<\/kbd>r\u1ed3i nh\u1ea5n&nbsp;<kbd>Y<\/kbd>v\u00e0&nbsp;<kbd>Enter<\/kbd>.C\u1ea5u h\u00ecnh tr\u00ean t\u1ea1o ra m\u1ed9t phi\u00ean b\u1ea3n Rasa v\u1edbi m\u00f4 h\u00ecnh v\u00e0 c\u1ea5u h\u00ecnh v\u00ed d\u1ee5 c\u01a1 b\u1ea3n. N\u00f3 t\u1ea3i xu\u1ed1ng m\u00f4 h\u00ecnh \u0111\u00e0o t\u1ea1o ban \u0111\u1ea7u v\u1edbi tri\u1ec3n khai Rasa, \u0111\u00e0o t\u1ea1o m\u00f4 h\u00ecnh \u0111\u00f3 v\u00e0 k\u00edch ho\u1ea1t c\u00e1c \u0111i\u1ec3m cu\u1ed1i REST API c\u1ee7a Rasa.\u0110\u1ec3 bi\u1ebft th\u00eam v\u1ec1 c\u1ea5u h\u00ecnh Helm c\u1ee7a Rasa, h\u00e3y xem&nbsp;<a href=\"https:\/\/raw.githubusercontent.com\/RasaHQ\/helm-charts\/main\/charts\/rasa\/values.yaml\" target=\"_blank\" rel=\"noreferrer noopener\">c\u1ea5u h\u00ecnh Rasa Chart m\u1eb7c \u0111\u1ecbnh<\/a>&nbsp;c\u1ee7a Rasa . C\u1ea5u h\u00ecnh n\u00e0y bao g\u1ed3m h\u1ea7u h\u1ebft c\u00e1c thi\u1ebft l\u1eadp \u0111\u1ec3 t\u00f9y ch\u1ec9nh tri\u1ec3n khai Rasa, c\u00f9ng v\u1edbi c\u00e1c b\u00ecnh lu\u1eadn h\u1eefu \u00edch.\u0110\u1ec3 c\u00f3 c\u00e1ch ti\u1ebfp c\u1eadn n\u00e2ng cao v\u00e0 th\u1ef1c t\u1ebf h\u01a1n \u0111\u1ec3 c\u00f3 \u0111\u01b0\u1ee3c m\u00f4 h\u00ecnh ban \u0111\u1ea7u, h\u00e3y tham kh\u1ea3o m\u1ed9t trong&nbsp;<a href=\"https:\/\/github.com\/RasaHQ\/helm-charts\/blob\/main\/examples\/rasa\/train-model-helmfile.yaml\" target=\"_blank\" rel=\"noreferrer noopener\">c\u00e1c c\u1ea5u h\u00ecnh Helm Chart m\u1eabu<\/a>&nbsp;c\u1ee7a Rasa . C\u1ea5u h\u00ecnh n\u00e0y t\u1ea3i xu\u1ed1ng c\u00e1c t\u1ec7p m\u00f4 h\u00ecnh t\u1eeb kho l\u01b0u tr\u1eef Git v\u00e0 \u0111\u00e0o t\u1ea1o m\u00f4 h\u00ecnh ban \u0111\u1ea7u t\u1eeb c\u00e1c t\u1ec7p \u0111\u00f3. M\u1ed9t c\u00e1ch ti\u1ebfp c\u1eadn t\u01b0\u01a1ng t\u1ef1 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 tri\u1ec3n khai m\u1ed9t m\u00f4 h\u00ecnh \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n t\u00f9y ch\u1ec9nh.<\/li>\n<li>Th\u00eam kho l\u01b0u tr\u1eef Rasa v\u00e0o Helm:<code>helm repo add rasa https:\/\/helm.rasa.com<\/code><code>\"rasa\" has been added to your repositories<\/code><\/li>\n<li>Tri\u1ec3n khai c\u1ea5u h\u00ecnh Rasa Helm Chart v\u00e0o kh\u00f4ng gian t\u00ean c\u1ee7a c\u1ee5m. Ph\u1ea7n&nbsp;<code>rasarelease<\/code>l\u1ec7nh v\u00ed d\u1ee5 cung c\u1ea5p t\u00ean cho tri\u1ec3n khai. Tri\u1ec3n khai sau \u0111\u00f3 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c truy c\u1eadp b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng ch\u1ec9 \u0111\u1ecbnh n\u00e0y.<code>helm install --namespace rasacluster --values rasa-values.yaml rasarelease rasa\/rasa<\/code><code>[...] rasa 3.2.6 has been deployed! [...]<\/code><\/li>\n<\/ol>\n<h3 id=\"accessing-the-rasa-assistant\">Truy c\u1eadp Tr\u1ee3 l\u00fd Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#accessing-the-rasa-assistant\"><\/a><\/h3>\n<p>M\u1ed9t phi\u00ean b\u1ea3n Rasa v\u1edbi m\u00f4 h\u00ecnh c\u01a1 b\u1ea3n hi\u1ec7n \u0111ang ch\u1ea1y tr\u00ean c\u1ee5m Kubernetes. \u0110\u1ec3 truy c\u1eadp phi\u00ean b\u1ea3n, h\u00e3y s\u1eed d\u1ee5ng c\u00e1c l\u1ec7nh \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb \u1edf \u0111\u00e2y \u0111\u1ec3 chuy\u1ec3n ti\u1ebfp c\u1ed5ng c\u1ee7a phi\u00ean b\u1ea3n:<\/p>\n<pre class=\"wp-block-code\"><code>export SERVICE_PORT<strong>=<\/strong><strong>$(<\/strong>kubectl get --namespace rasacluster -o jsonpath<strong>=<\/strong>\"{.spec.ports&#91;0].port}\" services rasarelease<strong>)<\/strong>\nkubectl port-forward --namespace rasacluster svc\/rasarelease ${SERVICE_PORT}:${SERVICE_PORT}<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>Forwarding from 127.0.0.1:5005 -&gt; 5005\nForwarding from &#91;::1]:5005 -&gt; 5005<\/code><\/pre>\n<p>\u0110\u1ea7u ra cho bi\u1ebft c\u1ed5ng n\u00e0o m\u00e0 phi\u00ean b\u1ea3n Rasa kh\u1ea3 d\u1ee5ng. M\u1edf m\u1ed9t c\u1eeda s\u1ed5 terminal m\u1edbi v\u00e0 xem n\u00f3 ho\u1ea1t \u0111\u1ed9ng b\u1eb1ng l\u1ec7nh nh\u01b0 sau:<\/p>\n<pre class=\"wp-block-code\"><code>curl localhost:5005<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>Hello from Rasa: 3.2.6<\/code><\/pre>\n<p>C\u1ea5u h\u00ecnh Helm Chart \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u1edf tr\u00ean c\u0169ng cho ph\u00e9p REST API c\u1ee7a tr\u1ee3 l\u00fd Rasa. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p d\u1ec5 d\u00e0ng truy c\u1eadp v\u00e0o m\u00f4 h\u00ecnh t\u1eeb c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c. Sau \u0111\u00e2y l\u00e0 v\u00ed d\u1ee5 v\u1ec1 vi\u1ec7c s\u1eed d\u1ee5ng API v\u1edbi cURL:<\/p>\n<pre class=\"wp-block-code\"><code>curl -X POST localhost:5005\/webhooks\/rest\/webhook -d '{ \"sender\": \"A User\", \"message\": \"Hello, Rasa!\" }'<\/code><\/pre>\n<pre class=\"wp-block-code\"><code>&#91;{\"recipient_id\":\"A User\",\"text\":\"Hey! How are you?\"}]<\/code><\/pre>\n<p>S\u1eed d\u1ee5ng&nbsp;<code>\/webhooks\/rest\/webhook<\/code>\u0111i\u1ec3m cu\u1ed1i cho ph\u00e9p tr\u00f2 chuy\u1ec7n v\u1edbi tr\u1ee3 l\u00fd nh\u01b0 b\u1ea1n s\u1ebd l\u00e0m th\u00f4ng qua d\u00f2ng l\u1ec7nh. C\u1ea5u tr\u00fac d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c ch\u1ea5p nh\u1eadn cho ph\u00e9p ch\u1ec9 \u0111\u1ecbnh ng\u01b0\u1eddi g\u1eedi tin nh\u1eafn, cho ph\u00e9p tr\u1ee3 l\u00fd theo d\u00f5i c\u00e1c cu\u1ed9c tr\u00f2 chuy\u1ec7n gi\u1eefa nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng.<\/p>\n<h3 id=\"updating-the-rasa-deployment\">C\u1eadp nh\u1eadt tri\u1ec3n khai Rasa<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#updating-the-rasa-deployment\"><\/a><\/h3>\n<p>Khi thi\u1ebft l\u1eadp n\u00e0y ph\u00e1t tri\u1ec3n, b\u1ea1n c\u00f3 th\u1ec3 c\u1ea7n \u0111i\u1ec1u ch\u1ec9nh c\u1ea5u h\u00ecnh Bi\u1ec3u \u0111\u1ed3 Rasa Helm. V\u00ed d\u1ee5 tr\u00ean s\u1eed d\u1ee5ng m\u1ed9t m\u00f4 h\u00ecnh m\u1eabu, nh\u01b0ng API&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/pages\/http-api\" target=\"_blank\" rel=\"noreferrer noopener\">Rasa<\/a>&nbsp;c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 t\u1ea1o v\u00e0 \u0111\u00e0o t\u1ea1o m\u00f4 h\u00ecnh theo c\u00e1ch th\u1ee7 c\u00f4ng. URL m\u1eabu c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thay th\u1ebf b\u1eb1ng URL cho m\u1ed9t m\u00f4 h\u00ecnh kh\u00e1c v\u00e0 sau \u0111\u00f3 c\u00f3 th\u1ec3 \u0111i\u1ec1u ch\u1ec9nh vi\u1ec7c tri\u1ec3n khai \u0111\u1ec3 s\u1eed d\u1ee5ng&nbsp;<a href=\"https:\/\/rasa.com\/docs\/rasa\/model-storage\/#load-model-from-server\" target=\"_blank\" rel=\"noreferrer noopener\">m\u00e1y ch\u1ee7 m\u00f4 h\u00ecnh<\/a>&nbsp;.<\/p>\n<p>Trong nh\u1eefng tr\u01b0\u1eddng h\u1ee3p nh\u01b0 v\u1eady, h\u00e3y s\u1eed d\u1ee5ng l\u1ec7nh Helm&nbsp;<code>upgrade<\/code>\u0111\u1ec3 \u0111\u1ea9y c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt d\u1ef1a tr\u00ean c\u00e1c thay \u0111\u1ed5i \u0111\u1ed1i v\u1edbi&nbsp;<code>rasa-values.yaml<\/code>t\u1ec7p. S\u1eed d\u1ee5ng c\u00e1c ch\u1ec9 \u0111\u1ecbnh v\u00ed d\u1ee5 \u0111\u01b0\u1ee3c cung c\u1ea5p trong h\u01b0\u1edbng d\u1eabn n\u00e0y, l\u1ec7nh s\u1ebd tr\u00f4ng nh\u01b0 sau:<\/p>\n<pre class=\"wp-block-code\"><code>helm upgrade --namespace rasacluster --reuse-values -f rasa-values.yaml rasarelease rasa\/rasa<\/code><\/pre>\n<h2 id=\"conclusion\">Ph\u1ea7n k\u1ebft lu\u1eadn<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/#conclusion\"><\/a><\/h2>\n<p>\u0110i\u1ec1u n\u00e0y bao g\u1ed3m m\u1ecdi th\u1ee9 c\u1ea7n thi\u1ebft \u0111\u1ec3 b\u1eaft \u0111\u1ea7u x\u00e2y d\u1ef1ng tr\u1ee3 l\u00fd t\u1ef1 \u0111\u1ed9ng v\u00e0 chatbot v\u1edbi Rasa. C\u00e1c m\u00f4 h\u00ecnh c\u1ee7a Rasa c\u00f3 kh\u1ea3 n\u0103ng cao, ph\u00e1t tri\u1ec3n v\u00e0 th\u00edch \u1ee9ng v\u1edbi nhu c\u1ea7u c\u00e1 nh\u00e2n. L\u00ean k\u1ebf ho\u1ea1ch cho nh\u1eefng \u0111i\u1ec1u n\u00e0y, t\u00ecm hi\u1ec3u kh\u1ea3 n\u0103ng c\u1ee7a c\u00e1c m\u00f4 h\u00ecnh v\u00e0 l\u00e0m vi\u1ec7c th\u00f4ng qua c\u00e1c ph\u01b0\u01a1ng ph\u00e1p hay nh\u1ea5t c\u1ee7a Rasa c\u00f3 th\u1ec3 gi\u00fap \u00edch. C\u00e1c li\u00ean k\u1ebft trong h\u01b0\u1edbng d\u1eabn n\u00e0y v\u00e0 c\u00e1c t\u00e0i nguy\u00ean trong t\u00e0i li\u1ec7u Rasa \u0111\u01b0\u1ee3c li\u00ean k\u1ebft b\u00ean d\u01b0\u1edbi c\u00f3 th\u1ec3 gi\u00fap kh\u1edfi \u0111\u1ed9ng qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n tr\u1ee3 l\u00fd AI \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf ch\u00ednh x\u00e1c.<\/p>\n<h2 id=\"more-information\">Th\u00f4ng tin th\u00eam<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n tham kh\u1ea3o c\u00e1c ngu\u1ed3n sau \u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 ch\u1ee7 \u0111\u1ec1 n\u00e0y. M\u1eb7c d\u00f9 ch\u00fang t\u00f4i cung c\u1ea5p v\u1edbi hy v\u1ecdng r\u1eb1ng ch\u00fang s\u1ebd h\u1eefu \u00edch, nh\u01b0ng xin l\u01b0u \u00fd r\u1eb1ng ch\u00fang t\u00f4i kh\u00f4ng th\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c ho\u1eb7c t\u00ednh k\u1ecbp th\u1eddi c\u1ee7a c\u00e1c t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean ngo\u00e0i.<\/p>\n<ul>\n<li><a href=\"https:\/\/rasa.com\/docs\/rasa\/\" target=\"_blank\" rel=\"noreferrer noopener\">Rasa Docs: Gi\u1edbi thi\u1ec7u v\u1ec1 M\u00e3 ngu\u1ed3n m\u1edf Rasa &amp; Rasa Pro<\/a><\/li>\n<li><a href=\"https:\/\/towardsdatascience.com\/chatbots-made-easier-with-rasa-2-0-b999323cdde\" target=\"_blank\" rel=\"noreferrer noopener\">H\u01b0\u1edbng t\u1edbi Khoa h\u1ecdc D\u1eef li\u1ec7u: X\u00e2y d\u1ef1ng Chatbots d\u1ec5 d\u00e0ng v\u1edbi Rasa 2.0: H\u01b0\u1edbng d\u1eabn t\u1eebng b\u01b0\u1edbc<\/a><\/li>\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/chatbots-using-python-and-rasa\/\" target=\"_blank\" rel=\"noreferrer noopener\">GeeksforGeeks: Chatbot s\u1eed d\u1ee5ng Python v\u00e0 Rasa<\/a><\/li>\n<\/ul>\n<p>Ngu\u1ed3n : https:\/\/www.linode.com\/docs\/guides\/getting-started-with-rasa\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rasa l\u00e0 m\u1ed9t khu\u00f4n kh\u1ed5 h\u1ecdc m\u00e1y m\u00e3 ngu\u1ed3n m\u1edf s\u1eed d\u1ee5ng ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn theo c\u00e2u chuy\u1ec7n \u0111\u1ec3 ph\u00e1t tri\u1ec3n tr\u1ee3 l\u00fd tr\u00f2 chuy\u1ec7n b\u1eb1ng v\u0103n b\u1ea3n v\u00e0 gi\u1ecdng n\u00f3i t\u1ef1 \u0111\u1ed9ng. Rasa s\u1eed d\u1ee5ng m\u1ed9t m\u00f4 h\u00ecnh hi\u1ec7u qu\u1ea3 v\u00e0 d\u1ec5 ti\u1ebfp c\u1eadn \u0111\u1ec3 t\u1ea1o v\u00e0 \u0111\u00e0o t\u1ea1o chatbot, v\u00e0 khu\u00f4n kh\u1ed5<\/p>\n","protected":false},"author":1,"featured_media":35457,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-34862","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-big-data"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=34862"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34862\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/35457"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=34862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=34862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=34862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}