问题描述
我正在尝试使用Plumber创建一个针对松弛的机器人响应,并且当从命令行查询或进行大范围测试时,我可以使模型工作并获得文本响应。当我从Slack使用斜杠命令时,尽管响应会返回,但是通道中只会显示一个空响应。我已经尝试了一些小调整,但对我来说这样做是行不通的,因此希望拥有Slack Plumber bot工作正常的人可以看到我在做错什么。
#' return chatbot response
#' @param text the message used for analysis
#' @post /response
function(text=" ",res) {
# turn parsed message into tidy dataframe
msg_df <- tibble(line = 1:1,text = text)
# unnest words in dataframe and create response
msg_df <<- msg_df %>% unnest_tokens(word,text)
body <- pred(msg_df)
my_message <- list(response_type = unBox("in_channel"),text=unBox(body))
return(my_message)
}
返回的响应如下所示,这是我在Slack教程中看到的
响应正文
{
"response_type": "in_channel","text": "some text information"
}
真的很感谢任何想法!
解决方法
最初的解决方案是可以将Plumber序列化程序更改为:
@serializer contentType list(type =“ text / plain”)#提供简单的文本响应
如果您只需要纯文本而不格式化(对我而言适用),这将起作用