如何使用 agent rasa sdk 聊天机器人自信地获得预测意图
How to get the predicted intent with confidence using agent rasa sdk chatbot
我正在使用这个手动加载训练好的 rasa 模型
agent = Agent.load(
model,
action_endpoint=EndpointConfig(ACTION_ENDPOINT)
)
我是这样预测结果的
botResponse = await agent.handle_text(query)
但这只是 returns 文本响应,但我还需要信心和意图名称
我尝试了 handle_message
,但仍然没有信心。
您可以从 Agent
的 tracker_store
实例中检索此信息。为此,首先确保您在调用 agent.handle_text(query, sender_id="some sender id")
时传递了发件人 ID。然后检索跟踪器:
current_tracker = agent.get_or_create_tracker(sender_id="some sender id")
拥有跟踪器后,您可以检索最后发送的消息的 NLU 解析数据:
user_event = tracker.get_last_event_for(UserUttered)
if user_event:
nlu_parse_data = user_event.parse_data
nlu_parse_data
应该看起来像这样:
"text": "Hi MoodBot.",
"parse_data": {
"intent": {
"id": 3068390702409455462,
"name": "greet",
"confidence": 0.9968197345733643
},
"entities": [],
"text": "Hi MoodBot.",
"message_id": "47efa155fc234abea554242883f0a74e",
"metadata": {},
"intent_ranking": [
{
"id": 3068390702409455462,
"name": "greet",
"confidence": 0.9968197345733643
},
{
"id": -7997748339392136471,
"name": "bot_challenge",
"confidence": 0.0019184695556759834
},
{
"id": -3856210704443307570,
"name": "mood_unhappy",
"confidence": 0.0010514792520552874
},
我使用了两种不同的 rasa api 来实现相同的效果
获取查询的意图和置信度 parse_message_using_nlu_interpreter
并获取响应 handle_text
queryResponseList = await agent.handle_text(query)
intentInfo = await agent.parse_message_using_nlu_interpreter(query)
intent = Intent(**{
"name": intentInfo["intent"]["name"],
"confidence": intentInfo["intent"]["confidence"]
})
我正在使用这个手动加载训练好的 rasa 模型
agent = Agent.load(
model,
action_endpoint=EndpointConfig(ACTION_ENDPOINT)
)
我是这样预测结果的
botResponse = await agent.handle_text(query)
但这只是 returns 文本响应,但我还需要信心和意图名称
我尝试了 handle_message
,但仍然没有信心。
您可以从 Agent
的 tracker_store
实例中检索此信息。为此,首先确保您在调用 agent.handle_text(query, sender_id="some sender id")
时传递了发件人 ID。然后检索跟踪器:
current_tracker = agent.get_or_create_tracker(sender_id="some sender id")
拥有跟踪器后,您可以检索最后发送的消息的 NLU 解析数据:
user_event = tracker.get_last_event_for(UserUttered)
if user_event:
nlu_parse_data = user_event.parse_data
nlu_parse_data
应该看起来像这样:
"text": "Hi MoodBot.",
"parse_data": {
"intent": {
"id": 3068390702409455462,
"name": "greet",
"confidence": 0.9968197345733643
},
"entities": [],
"text": "Hi MoodBot.",
"message_id": "47efa155fc234abea554242883f0a74e",
"metadata": {},
"intent_ranking": [
{
"id": 3068390702409455462,
"name": "greet",
"confidence": 0.9968197345733643
},
{
"id": -7997748339392136471,
"name": "bot_challenge",
"confidence": 0.0019184695556759834
},
{
"id": -3856210704443307570,
"name": "mood_unhappy",
"confidence": 0.0010514792520552874
},
我使用了两种不同的 rasa api 来实现相同的效果
获取查询的意图和置信度 parse_message_using_nlu_interpreter
并获取响应 handle_text
queryResponseList = await agent.handle_text(query)
intentInfo = await agent.parse_message_using_nlu_interpreter(query)
intent = Intent(**{
"name": intentInfo["intent"]["name"],
"confidence": intentInfo["intent"]["confidence"]
})