Rasa网页部署以及和LLM的结合

一 Rasa如何部署在网页中?

参考如下链接,有多种方法

https://forum.rasa.com/t/rasa-3-chatbot-integration-with-website/50193
image-20230815184915479 image-20230815185623371 image-20230815185842167
方法1:
https://github.com/vba34520/Rasa-UI/tree/master

步骤如下

1.credentials.yml中添加如下内容

socketio:
  user_message_evt: user_uttered
  bot_message_evt: bot_uttered
  session_persistence: true

2.把上面github中的common.js index.html两个都拷贝到rasa3test工作目录下,

3.启动服务 rasa run --enable-api

4.点击打开index.html,就可实现

image-20230809175922625

方法2:

https://github.com/Dustyposa/rasa_bot_front_dist

步骤:

1.把该目录下文件都拷贝到rasa3test目录下

2.点击index.html

3.执行命令  rasa run --cors "*"

二 Rasa-x的安装及使用

Rasa-x是什么?

重点:Rasa-x只支持rasa3以下的版本。 rasa3不支持。

rasax的功能主要是可以在线编辑story,多人在线会话并后台保存。

盲目按照网上教程安装rasax,会打包安装rasa2.8 rasa-sdk2.8 rasax等。已经写好的脚本就没法用。

PASS

三 Rasa-Gpt的研究和使用

Rasa-Gpt是什么

https://cloud.tencent.com/developer/article/2296206?areaSource=102001.11&traceId=3Adc3qXo3YPWBG0_bq96F

将Langchain/LlamaIndex和Rasa集成, 可以实现在Rasa添加多租户,会话和元数据.

相当于rasa进行聊天时候,如果匹配到意图是out_of_scope,就会执行action_gpt_fallback, 该action不仅能调用chatgpt做回复,还能实现langchain来导入本地数据,从本地数据中索引出问题答案来做回答。

源码: https://github.com/paulpierre/RasaGPT
路径: /Users/lijieqiong/work/myCode/ContextDialog/rasa_github/RasaGPT-main

安装,mac上安装不成功,在linux上安装

# 获取代码
git clone https://github.com/paulpierre/RasaGPT.git
cd RasaGPT

## 设置.env文件
cp .env-example .env

# 编辑您的.env文件并添加所有必要的凭证
make install

报错,

解决,修改 app/rasa/actions/Dockerfile 和 docker-compose.yml中的User

重新make install。成功,make run 也成功

重点:

然后怎么用? 就不知道了。 这玩意干嘛的?不知道怎么用? 和action中调用glm服务有区别吗??

四 RASA 根据domain准备多个服务

rasa train的参数命令
rasa train [-h]   [-v 指定logging的输出级别是info] 
                  [-vv --debug, 指定log输出级别是debug] 
                  [--quiet 只输出warning级别的log] 
                  [--logging-config-file LOGGING_CONFIG_FILE 指定log输出路径]
                  [--data DATA data目录[DATA ...]]
                  [-c CONFIG config目录] 
                  [--domain  DOMAIN domain文件路径] 
                  [--out OUT输出模型目录,默认为models]
                  [--dry-run] [--augmentation AUGMENTATION] [--debug-plots] [--num-threads NUM_THREADS] 
                  [--fixed-model-name FIXED_MODEL_NAME 固定模型目录和模型文件的名称]
                  [--persist-nlu-data]
                  [--force强制重新训练,即便数据没有做改动,避免有时候系统检测文件没更新不做重训] 
                  [--finetune [FINETUNE]微调一个模型,如果不指定目录,就微调models下最新的模型文件] 
                  [--epoch-fraction EPOCH_FRACTION] [--endpoints ENDPOINTS指定endpoint文件]
                  {core,nlu  可以单独训练nlu和core模型,也可以都重训练 ...
rasa shell的参数命令
rasa shell [-h] [-v] [-vv] [--quiet] [--logging-config-file LOGGING_CONFIG_FILE] 
                  [--conversation-id CONVERSATION_ID] 
                  [-m MODEL 指定模型路径] 
                  [--log-file LOG_FILE 指定log路径]
                  [--use-syslog] [--syslog-address SYSLOG_ADDRESS] 
                  [--syslog-port SYSLOG_PORT] [--syslog-protocol SYSLOG_PROTOCOL] 
                  [--endpoints ENDPOINTS 指定endpoint文件]
                  [-i INTERFACE 指定服务界面,默认是0.0.0.0] 
                  [-p PORT 指定运行端口,默认是5055] [-t AUTH_TOKEN] 
                  [--cors [CORS [CORS ...]]指定xx,默认是*来代表所有白名单] 
                  [--enable-api 允许api接口外露] 
                  [--response-timeout RESPONSE_TIMEOUT]
                  [--request-timeout REQUEST_TIMEOUT] 
                  [--remote-storage REMOTE_STORAGE 指定远程模型目录地址] 
                  [--ssl-certificate SSL_CERTIFICATE] [--ssl-keyfile SSL_KEYFILE]
                  [--ssl-ca-file SSL_CA_FILE] [--ssl-password SSL_PASSWORD] 
                  [--credentials CREDENTIALS 指定credential.yml文件] 
                  [--connector CONNECTOR 指定连接的服务] [--jwt-secret JWT_SECRET]
                  [--jwt-method JWT_METHOD] [--jwt-private-key JWT_PRIVATE_KEY]
                  {nlu  只使用nlu模型做短语解析} 
rasa run actions 的参数命令
rasa run actions  [-h] [-v] [-vv] [--quiet] 
                  [--logging-config-file LOGGING_CONFIG_FILE] 
                  [-p PORT指定端口,默认是5055] 
                  [--cors Use * to whitelist all origins] 
                  [--actions ACTIONS 指定actions目录]
                  [--ssl-keyfile SSL_KEYFILE] 
                  [--ssl-certificate SSL_CERTIFICATE] [--ssl-password SSL_PASSWORD] 
                  [--auto-reload]

五 RASA如何与LLM结合

参考https://rasa.com/blog/answering-questions-about-structured-data-with-rasa-open-source-and-chatgpt/

https://pythonwarriors.com/how-to-use-chatgpt-with-rasa/

https://pipedream.com/apps/openai/integrations/rasa

https://www.upwork.com/services/product/development-it-an-interactive-rasa-botfront-chatbot-with-deployment-1334779461280882688

https://blog.csdn.net/duan_zhihua/article/details/129803691

https://rasa.com/docs/rasa/next/llms/large-language-models/

https://cloud.tencent.com/developer/article/2296209

https://github.com/RasaHQ/kb-demo-chatgpt

https://github.com/artmatsak/grace


https://blog.csdn.net/lly1122334/article/details/106072969
Python调用Rasa API服务进行连续对话

https://zhuanlan.zhihu.com/p/87747660

用rasa 如何使用http服务

https://mp.weixin.qq.com/s/KeZIgq6J092PNEaZwo0URg

动手给fay(github数字人开源项目)加上rasa及chatglm:兼顾实时、可控、记忆及大模型的生成能力](https://www.bilibili.com/video/BV1D14y1f7pr/)
https://mp.weixin.qq.com/s?__biz=MzU2NzkxNDY0Ng==&mid=2247485919&idx=1&sn=9927a3826ac3a1c12f13cca97b134eca&chksm=fc94b026cbe339308cf65992d93359e46e48f38d0e118da1a951b75c95e8072e5abdeb45cc60&scene=21#wechat_redirect

六 RASA研究前沿

一 Rasa结合chatgpt,基于结构化数据来回答问题

使用如下方法,这种基于 LLM 的方法的好处是我们可以立即开始回答这些问题,而无需重新训练机器人!我们只需确保附加字段最终出现在我们放入提示中的 CSV 表示形式中。要尝试此操作,请修改存储库中的 actions.py 文件以读取restaurants_extra.csv 文件。重新启动操作服务器,您的机器人现在将能够回答这些问题。

image-20230908112003539

文档介绍:https://rasa.com/blog/answering-questions-about-structured-data-with-rasa-open-source-and-chatgpt/
代码参考:https://github.com/RasaHQ/kb-demo-chatgpt

重点:

1.用自定义action的方法,从action中构建prompt,然后调用chatgpt

image-20230908113427323

2.将csv格式的数据传输给rasa构建prompt,同时可以本地知识读取

image-20230908113416667

  1. 增加一个分类器,来区分用户正常信息和注入攻击信息,来区分并拒绝injection

image-20230908113405210

二 摆脱意图:新的对话模型
https://rasa.com/blog/breaking-free-from-intents-a-new-dialogue-model/
https://rasa.com/blog/were-a-step-closer-to-getting-rid-of-intents/

image-20230913170215032

无意识对话现已成为 Rasa Pro 的测试版功能

使用一个组件: IntentlessPolicy,可以支持无意识对话。传入rasa的是问题答案对列表。

使用IntentlessPolicy,我们的机器人已经提供了良好的问答体验,理解用户表达问题的多种不同方式:

IntentlessPolicy处理逻辑: 根据对话历史记录决定下一步做什么,而不仅仅是最后一条用户消息。但与其他 Rasa策略不同的是,它直接处理用户发送的文本,而不是依赖 NLU 模型来预测意图。

无意识对话的定义方式

img

image-20230913171143154

image-20230913171743566

再一个例子:

地址

/myCode/ContextDialog/rasa_github/rasa-main/examples/e2ebot

story定义

- story: rejects suggestion, indirectly
  steps:
  - intent: search_restaurant
  - action: utter_suggest_cuisine
  - user: "I had that yesterday"
  - action: utter_suggest_cuisine

config定义

policies:
- name: TEDPolicy
  epochs: 200
三 rasa结合google calenda来创建日程表
文档:https://rasa.com/blog/connect-your-assistant-with-google-calendar/
代码:https://github.com/RasaHQ/HandsOn_with_rasa
重点1:写从googlecalenda中取日程的函数
image-20230915112113928
重点2:写一个自动生成event的函数(而不是从nlu中获得event)
image-20230915112500952
四 slotmapping啥意思,如何使用
https://rasa.com/blog/how-to-use-global-slot-mappings/
  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值