热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rasahttpapi测试

rasa-httpapi测试rasarun--enable-api--cors*仅解析意图请求地址:localhost:5005modelparse命令行curl-XPOSTl




rasa - http api测试

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


仅解析意图

请求地址:localhost:5005/model/parse
命令行 curl -X POST localhost:5005/model/parse -d ‘{“text”: “hello”}’


代码示例

import json
import requests
url = "http://localhost:5005/model/parse"
data = {"text": "hello"}
data = json.dumps(data, ensure_ascii=False)
data = data.encode(encoding="utf-8")
r = requests.post(url=url, data=data)
print(json.loads(r.text))

连续对话

请求地址: localhost:5005/webhooks/rest/webhook
curl -X POST localhost:5005/webhooks/rest/webhook -d {“sender”: sender, “message”: message}


代码示例

import json
import secrets
import requests
def post(url, data=None):
data = json.dumps(data, ensure_ascii=False)
data = data.encode(encoding="utf-8")
r = requests.post(url=url, data=data)
r = json.loads(r.text)
return r
sender = secrets.token_urlsafe(16)
url = "http://localhost:5005/webhooks/rest/webhook"
while True:
message = input("Your input -> ")
data = {
"sender": sender,
"message": message
}
print(post(url, data))


1. post请求,添加messages

请求地址:localhost:5005/conversations/0/messages
命令行 curl -X POST localhost:5005/conversations/0/messages -d ‘{ “text”: “Hello!”, “sender”: “user” }’


2. post请求,预测action

请求地址:localhost:5005/conversations/0/predict
命令行 curl -X POST localhost:5005/conversations/0/predict


3. 执行action

请求地址:localhost:5005/conversations/0/execute
命令行 curl -X POST localhost:5005/conversations/0/execute -d ‘{ “name”: “utter_greet” }’


代码示例

import json
import requests
def post(url, data=None):
data = json.dumps(data, ensure_ascii=False)
data = data.encode(encoding="utf-8")
r = requests.post(url=url, data=data)
r = json.loads(r.text)
return r
if __name__ == "__main__":
# 会话id,此处简单设为0
conversation_id = 0

# 1. 发送消息
url = "http://localhost:5005/conversations/{}/messages".format(conversation_id)
data = {
"text": "Hi",
"sender": "user"
}
result = post(url, data)
print(result)
# 2. 预测下一步动作
url = "http://localhost:5005/conversations/{}/predict".format(conversation_id)
result = post(url)
print(result)
# 3. 执行动作
url = "http://localhost:5005/conversations/{}/execute".format(conversation_id)
data = {
"name": result["scores"][0]["action"] # 取置信度最高的动作
}
result = post(url, data)
print(result)
print(result["messages"]) # 获取对话信息
# [{'recipient_id': '1', 'text': 'Hey! How are you?'}]

对话流程

简单例子无法连续对话,如何连续对话呢?

import json
import secrets
import requests
def post(url, data=None):
data = json.dumps(data, ensure_ascii=False)
data = data.encode(encoding="utf-8")
r = requests.post(url=url, data=data)
r = json.loads(r.text)
return r
if __name__ == "__main__":
conversation_id = secrets.token_urlsafe(16) # 随机生成会话id
messages_url = "http://localhost:5005/conversations/{}/messages".format(conversation_id) # 发送消息
predict_url = "http://localhost:5005/conversations/{}/predict".format(conversation_id) # 预测下一步动作
execute_url = "http://localhost:5005/conversations/{}/execute".format(conversation_id) # 执行动作
action = "action_listen" # 动作初始化为等待输入
while True:
if action in ["action_listen", "action_default_fallback", "action_restart"]:
# 等待输入
text = input("Your input -> ")
post(messages_url, data={"text": text, "sender": "user"}) # 发送消息
respOnse= post(predict_url) # 预测下一步动作
action = response["scores"][0]["action"] # 取出置信度最高的下一步动作
respOnse= post(execute_url, data={"name": action}) # 执行动作
messages = response["messages"] # 取出对话信息
if messages:
print(messages)

domain.yml中的utter_great可添加buttons

responses:
utter_greet:
- text: Hey! How are you?
buttons:
- payload: '/mood_great'
title: 'great'
- payload: '/mood_unhappy'
title: 'sad'


常用命令

查看5005端口是否被占用 netstat -aon | findstr 5005
启动Rasa API服务(跨域)rasa run --enable-api --cors “*”
启动Rasa API服务(保存日志)rasa run --enable-api --log-file out.log
启动Rasa API服务(指定模型)rasa run --enable-api -m models


遇到的坑

若遇到死循环,一般是遇到默认动作没有退出,查看默认动作



推荐阅读
author-avatar
专情与你2602899315
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有