Встроенный редактор Dialogflow для оценки работы Tensorflow SavedModel в Docker - PullRequest
1 голос
/ 08 марта 2019

У меня в Docker работает Tensorflow SavedModel.Я использовал следующую команду в терминале быстрого запуска Docker, и она работает, давая мне прогнозы и вероятности.

curl -d '{"examples": [{"Features": "abcdefghi"}]}' -XPOST http://192.168. .....: 8501 / v1 / models / exports: classify

Я хочу, чтобы Dialogflow получил доступ к Docker-контейнеру, чтобы получать прогнозы из этой SavedModel.Как мне это сделать?

Я заметил одну возможность использования axios из Youtube от Нареша Ганатры, но не знаю, как перевести 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, данных иответ.

Благодарим Вас за помощь!

1 Ответ

1 голос
/ 18 марта 2019

Наконец мне удалось найти ответ самому.Успешно подключился к Docker Tensorflow через Ngrok и получил прогнозы для отображения в 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);
}
...