httr API 调用向量中的每一行 + 改变响应
httr API call for each row in a vector + mutate the response
我正在尝试向向量中的每一行的 API 发送 POST 请求,并且我想将 API 给出的响应改变为新列(对于每一行也是如此)。
我收到此查询的 200 响应:
this_works <- POST(url_predict, body= '{"text": "This is a bad thing"}')
但现在我想用文本“这是一件坏事”替换数据框每一行中包含的文本。
我目前的尝试:
bquery <- function(df){
df3 <- data.frame()
text_col <- toString(df4$text)
url_predict = "http://127.0.0.1:8000/predict"
this_doesnt_work <- POST(url_predict, body = paste("'{'", "text", "':'", text_col, "'}'", sep = ""))
content1 <- content(this_doesnt_work)
df3$bert_sentiment <- content1$sentiment
df3$probability_negative <- content1$probabilities$negative
df3$probability_neutral <- content1$probabilities$neutral
df3$probability_positive <- content1$probabilities$positive
df3$confidence <- content1$confidence
df3
}
这不起作用,但是我的粘贴函数的输出看起来应该起作用:
"'{'text':'This is a bad thing.'}'"
如有任何帮助,我们将不胜感激。
来自服务器的响应值为:
$probabilities
$probabilities$negative
[1] 0.999736
$probabilities$neutral
[1] 0.0001732047
$probabilities$positive
[1] 9.086558e-05
$sentiment
[1] "negative"
$confidence
[1] 0.999736
我想将这些值突变为每个 response/row 的原始数据集。
尝试一次发送一个字符串值:
bquery <- function(string){
df3 <- data.frame()
url_predict = "http://127.0.0.1:8000/predict"
this_should_work <- POST(url_predict, body = sprintf('{"text":"%s"}',string))
#Rest of the code
#.....
#.....
}
然后检查它是否适用于一个值:
bquery(df4$text[1])
如果确实如此,则对所有人使用 lapply
:
do.call(rbind, lapply(df4$text, bquery))
或 purrr::map_df
purrr::map_df(df4$text, bquery)
我正在尝试向向量中的每一行的 API 发送 POST 请求,并且我想将 API 给出的响应改变为新列(对于每一行也是如此)。
我收到此查询的 200 响应:
this_works <- POST(url_predict, body= '{"text": "This is a bad thing"}')
但现在我想用文本“这是一件坏事”替换数据框每一行中包含的文本。
我目前的尝试:
bquery <- function(df){
df3 <- data.frame()
text_col <- toString(df4$text)
url_predict = "http://127.0.0.1:8000/predict"
this_doesnt_work <- POST(url_predict, body = paste("'{'", "text", "':'", text_col, "'}'", sep = ""))
content1 <- content(this_doesnt_work)
df3$bert_sentiment <- content1$sentiment
df3$probability_negative <- content1$probabilities$negative
df3$probability_neutral <- content1$probabilities$neutral
df3$probability_positive <- content1$probabilities$positive
df3$confidence <- content1$confidence
df3
}
这不起作用,但是我的粘贴函数的输出看起来应该起作用:
"'{'text':'This is a bad thing.'}'"
如有任何帮助,我们将不胜感激。
来自服务器的响应值为:
$probabilities
$probabilities$negative
[1] 0.999736
$probabilities$neutral
[1] 0.0001732047
$probabilities$positive
[1] 9.086558e-05
$sentiment
[1] "negative"
$confidence
[1] 0.999736
我想将这些值突变为每个 response/row 的原始数据集。
尝试一次发送一个字符串值:
bquery <- function(string){
df3 <- data.frame()
url_predict = "http://127.0.0.1:8000/predict"
this_should_work <- POST(url_predict, body = sprintf('{"text":"%s"}',string))
#Rest of the code
#.....
#.....
}
然后检查它是否适用于一个值:
bquery(df4$text[1])
如果确实如此,则对所有人使用 lapply
:
do.call(rbind, lapply(df4$text, bquery))
或 purrr::map_df
purrr::map_df(df4$text, bquery)