docker - Dialogflow在线编辑器评估在Docker上运行的Tensorflow SavedModel

标签 docker tensorflow axios dialogflow-es

我在Docker上运行了Tensorflow SavedModel。我在Docker Quickstart Terminal中使用了以下命令,它可以正常工作,为我提供了预测和概率。

curl -d'{“examples”:[{“Features:” abcdefghi“}]}'-X POST http://192.168......:8501/v1/models/exports:classify

我打算让Dialogflow访问Docker容器以从此SavedModel获取预测。我该怎么办?

我注意到Naresh Ganatra在Youtube上使用axios的一种可能性,但不知道如何将curl json格式转换为axios json格式re:“url”,也不知道如何更改“response.data.rate”。

function exchangeRate(agent) {
  var currency1 = agent.parameters["currency-name"];
  var currency2 = agent.parameters["currency-name1"];
  var url = 'https://api.exchangeratesapi.io/latest?base='+ currency1  +'&symbols=' + currency2 ;
  return getRate(url).then(response => {
  var bot_response = "The exchange rate is " + response.data.rates[currency2];

  console.log(bot_response);
  agent.add(bot_response);
  }).catch (error => {
    console.log("Something is wrong  !! ");
    console.log(error);
    agent.add(bot_response);
});
};

function getRate(url) {
    const axios = require('axios');
    return axios.get(url);
}

有人可以帮忙吗?我是编程新手,请多多包涵。谢谢!

我创建了一个Ngrok隧道来访问该模型,但是通过各种尝试来更改上述有关URL,数据和响应的代码,我收到了“格式错误的请求”或“错误的请求”。

感谢您的协助!

最佳答案

最终,我设法自己找到了答案。通过Ngrok成功连接到Docker Tensorflow,并获得要显示在Dialogflow上的预测。

function predict(agent) {
  let data = agent.context.get('havehistory').parameters.any;  
  var dataString = '{"examples": [{"Features": "' + data + '"}]}';
  var options = 'http://1234567.ngrok.io/v1/models/exports:classify'; 

  return getRate(options,dataString).then(response => {
  var bot_response = "The answer is " + JSON.stringify(response.data.results);
  agent.add(bot_response);
  console.log(bot_response);
  }).catch (error => {
    console.log("Something is wrong  !! ");
    console.log(error);
    var bot_response = "Something is wrong: " + response.data;
    agent.add(bot_response);
});
}

function getRate(options,dataString) {
    const axios = require('axios');
    return axios.post(options,dataString);
}

关于docker - Dialogflow在线编辑器评估在Docker上运行的Tensorflow SavedModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55056644/

相关文章:

postgresql - Docker - 如何在 postgres 容器中运行 psql 命令?

tensorflow - 在 Tensorflow 对象检测 API 中训练时可以更改学习率吗

vue.js - 带有 Bearer token 的 VueJS GET 请求

docker - Docker公开端口

debugging - 在 Docker 中启用 Wildfly 域模式下的调试 - 端口已在使用中

github - 无法使用 dockerfile 克隆私有(private)存储库

tensorflow - Inception-v3 使用 RMSProp epsilon=1

python - Pytorch 相当于 `tf.reverse_sequence` ?

javascript - 如何在 Node.js 中的每个 API 调用之间进行延迟

reactjs - 使用 React Hooks 创建具有多个输入的 axios post