当前位置: 首页 > wzjs >正文

辽宁网站建设哪里好重庆做优化的网络公司

辽宁网站建设哪里好,重庆做优化的网络公司,盐城网站建设0515icp,商业网站的特点此篇接续上一篇 传统业务对接AI-AI编程框架-Rasa的业务应用实战(4)--Rasa成型可用 针对业务配置rasa并训练和部署 上一篇我们已经让Rasa准确识别了我们自然语言指令的开票和查询发票的意图和实体。 # 开具发票场景 用户输入:开具一张1000元…

此篇接续上一篇 传统业务对接AI-AI编程框架-Rasa的业务应用实战(4)--Rasa成型可用 针对业务配置rasa并训练和部署
 

上一篇我们已经让Rasa准确识别了我们自然语言指令的开票和查询发票的意图和实体。

# 开具发票场景

用户输入:开具一张1000元的发票,税率13%   // 识别开票意图和实体

rasa输出:好的,我将为您开具一张金额为1000元,税率为13%的发票。

# 查询发票场景

用户输入:查询发票编号12345  // 识别发票查询意图和实体

rasa输出:正在查询发票编号12345的详情,请稍候。

此篇我们要做进一步提升改造,内容如下:

1、当前是命令行界面输入文本来交互,我则希望是前端发送http rest请求来输入自然语言指令。 

比如:前端页面访问 http://localhost:xxx/xxx/ (rasa服务的交互接口)

2、Rasa 接收到前端的自然语言指令后,识别了意图和实体,调用后端的开票/查询业务服务接口

并最终将最后的业务操作结果,返回给前端。

http://localhost:8088/ai/rasa/issue_invoice(开票接口)


http://localhost:8088/ai/rasa/query_invoice/xxx(查票接口)


接下来就是我们具体的改造 

1、定义 Rasa 的后台服务API地址,通过配置 endpoints.yml 文件来实现:(在其中添加以下配置内容)

action_endpoint:url: "http://localhost:5055/webhook"

解释:http://localhost:5055/webhook 此即 rasa对外暴露的API接口,前端界面就可以通过这个url来传入自然语言指令来与rasa交互

2、先改规则配置文件:

 开票和查票的两个意图的动作,都由原来的返回响应文本(utter_issue_invoice),改成执行动作(action_issue_invoice),即触发对应domain.yml中配置的动作项:

3、实现rasa的开票和查票的两个动作 即 action_issue_invoice 和 action_query_invoice 去调用业务系统的后台服务接口

编辑工作目录下的actions/actions.py文件 如下:

from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
from rasa_sdk.events import SlotSet
import requestsclass ActionIssueInvoice(Action):def name(self):return "action_issue_invoice"def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: dict):amount = tracker.get_slot("amount")tax_rate = tracker.get_slot("tax_rate")if amount and tax_rate:# 替换为你的发票系统 API 地址和参数try:response = requests.post("http://localhost:8088/ai/rasa/issue_invoice",json={"amount": amount.replace("元", ""), "tax_rate": tax_rate.replace("%", "")},headers={"Authorization": "Bearer YOUR_API_TOKEN"})if response.status_code == 200:dispatcher.utter_message(text=f"发票已开具,金额为{amount},税率为{tax_rate}。")else:dispatcher.utter_message(text=f"发票开具失败:{response.json().get('error', '未知错误')}。")except Exception as e:dispatcher.utter_message(text=f"发票开具失败:{str(e)}。")return [SlotSet("amount", amount), SlotSet("tax_rate", tax_rate)]else:dispatcher.utter_message(text="抱歉,无法识别金额或税率,请重新输入。")return []class ActionQueryInvoice(Action):def name(self):return "action_query_invoice"def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: dict):invoice_number = tracker.get_slot("invoice_number")if invoice_number:# 替换为你的发票系统 API 地址和参数try:response = requests.get(f"http://localhost:8088/ai/rasa/query_invoice/{invoice_number}",headers={"Authorization": "Bearer YOUR_API_TOKEN"})if response.status_code == 200:invoice_data = response.json()dispatcher.utter_message(text=f"发票编号{invoice_number}的详情:{invoice_data}。")else:dispatcher.utter_message(text=f"查询失败:{response.json().get('error', '未知错误')}。")except Exception as e:dispatcher.utter_message(text=f"查询失败:{str(e)}。")return [SlotSet("invoice_number", invoice_number)]else:dispatcher.utter_message(text="抱歉,无法识别发票编号,请重新输入。")return []

此即意味着,当识别了开票意图后, 会执行Python的action_issue_invoice方法,传入识别的实体信息去调用开票的后端服务接口。当识别了查询发票的意图后,会执行Python的action_query_invoice方法, 传入识别的实体信息去调用开票的后端服务接口。

 4、以服务方式(非壳方式 即不是shell命令行模式)启动 rasa 执行以下命令:

rasa run --enable-api --cors "*" --port 5005

执行后运行如下:

这样 rasa 就以http server模式启动了,前端就可以通过http请求与之交互对话了。

5、启动 rasa 的动作服务器。  在工程目录下,新开个 powershell 执行界面,执行以下命令:

rasa run actions

 此一步正是第3步中的 actions/actions.py 的服务端实现的部署启动,用来对外调用业务接口

如上图所示 就是启动成功了 动作服务器的端口默认为:5055 

6、模拟业务前端界面发起开票的自然语言指令试试效果

如下图,我用自然语言,作为传入参数,调用rasa的server,它成功调用了业务端接口并返回了正确的预期结果。大功告成!

上图是我的模拟开票服务的后端接口日志输出,证明rasa在识别到开票的自然语言指令后确实成功调用了业务接口。 

再试试查票的识别:

也是OK 完美识别。 


末尾,顺带附上我测试用的业务接口的代码 (模拟开发票和查发票的业务API) 

@RestController
@RequestMapping("/ai/rasa")
public class Ai4BizController extends BaseController {private static final Logger logger = LoggerFactory.getLogger(Ai4BizController.class);@PostMapping("/issue_invoice")public JSONObject issueInvoice(@RequestBody JSONObject reqObj) {String amount = reqObj.getString("amount");String taxRate = reqObj.getString("tax_rate");if (StringUtils.isEmpty(amount) || StringUtils.isEmpty(taxRate)) {return fail("开票失败,缺少开票信息!");}logger.info("业务系统后台成功开具了一张发票!金额:{}, 税率:{}", reqObj.getString("amount"), reqObj.getString("tax_rate"));JSONObject data = new JSONObject().fluentPut("info", "发票开具成功!").fluentPut("fee", reqObj.getString("amount")).fluentPut("tax_rate", reqObj.getString("tax_rate"));return success(data);}@GetMapping("/query_invoice/{invoice_number}")public JSONObject queryInvoice(@PathVariable("invoice_number") String invoiceNumber) {if (StringUtils.isEmpty(invoiceNumber)) {return fail("查询失败,缺少发票号码!");}return success(new JSONObject().fluentPut("info", "您查询的发票号码是:" + invoiceNumber));}
}


文章转载自:

http://on22w8y8.qgwdc.cn
http://Yx9DYutr.qgwdc.cn
http://96P893tY.qgwdc.cn
http://2UcFHmv4.qgwdc.cn
http://4R1OyQ9f.qgwdc.cn
http://xGPajx9X.qgwdc.cn
http://b2iX3Xzm.qgwdc.cn
http://IFkHbw7H.qgwdc.cn
http://ajRdsoHZ.qgwdc.cn
http://waqrvD6p.qgwdc.cn
http://PTHEuF5e.qgwdc.cn
http://w4qveA6X.qgwdc.cn
http://N6WbVoYr.qgwdc.cn
http://FPmYpnpO.qgwdc.cn
http://D3luA3eH.qgwdc.cn
http://nALUGsQj.qgwdc.cn
http://RehTgNiL.qgwdc.cn
http://k5efckIV.qgwdc.cn
http://yaBxxz8Z.qgwdc.cn
http://KBAQvpXq.qgwdc.cn
http://jk05VKPu.qgwdc.cn
http://yjsy2ofJ.qgwdc.cn
http://ptCPuRh9.qgwdc.cn
http://qorK7g85.qgwdc.cn
http://ZPwReQRg.qgwdc.cn
http://om4ewf0I.qgwdc.cn
http://ozQXJYTa.qgwdc.cn
http://LvWFuHr4.qgwdc.cn
http://b77fiJ7Q.qgwdc.cn
http://g51mKLWh.qgwdc.cn
http://www.dtcms.com/wzjs/717068.html

相关文章:

  • 网站备案是备什么中国网站开发公司排名
  • 南宁正规公众号网站建设推广网站制作的流程有哪些
  • 国际网站怎么开通用织梦做网站快吗
  • 做h5网站设计网站建设商务的术语
  • 网站建设合同 附件烟台网站建设精通臻动传媒
  • 凡客诚品网站设计特点网站建设undefined
  • 如何建立网站快捷方式文化馆网站建设解决方案
  • 台山市网站建设wordpress 朴素
  • dede网站 index.php无法访问设计师培训班多少钱
  • 郑州网站建设华久建物流网站
  • win7 做服务器开网站网站开发文档百度文库
  • 国家商标查询官方网站最高法律网站是做啥的
  • 做体育直播网站资料网站怎么做的
  • 东凤网站重庆免费做网站
  • 如何做网站流量网站怎么自动加水印
  • 网站建设改手机号百度云官网登录入口
  • 重庆公司网站制作哪个网站可以做司考题
  • 成都网站建设求职简历网站内部优化策略
  • 研究生院 网站 建设做參考資料的网站
  • 提供网站设计服务商兖州网站建设哪家好
  • 深圳app开发网站建设外包网站
  • 我做淘宝网站卖东西怎么激活wordpress 动态文字
  • 网站制作困难用户体验设计课程
  • 网站历史记录怎么恢复自己的网站做怎样的优化调整
  • 层流病房建设单位网站商铺设计
  • 大连个人网站开发制作ui设计到底能不能学
  • 住房建设部官方网站命令微博网页版官网
  • 做网站网站庄家杭州百度推广网站建设
  • 北京网站优化怎么样做小程序要有网站吗
  • 智慧城市展厅设计公司优化网站制作公司好吗