Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModewide
// Токен для чтения баз знаний, брать из АФ в разделе Настройки - Общие - Параметры прямого подключения к базам знаний через API
установитьПеременную("autorizationToken", "XXX")+
// ID и токен базы знаний - классфикатора
установитьПеременную("kb_id", "XX")+
установитьПеременную("kb_token", "XXX")+
// Адрес API баз знаний - получить у администратора системы, ниже примеры:
установитьПеременную("kb_qna_enpoint", "https://xxx.autofaq.ai/q/api/v1/query")+
установитьПеременную("kb_crud_endpoint", "https://xxx.autofaq.ai/api/v1")+
// Требуемы минимальный уровень уверенности при классификации
установитьПеременную("serviceOtherScore", "0.2") +
вызвать.внешнийСервис("{kb_qna_enpoint}","POST").сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8"),("AUTOFAQ-User-Token", "{autorizationToken}")).сТеломСообщения("{\"service_token\":\"{kb_token}\",\"service_id\":\"{kb_id}\",\"query\":\"{platformInMessageQuery}\"}").сохранитьРезультатКакСтроку("answer")+
// если запрос в базы знаний неудачный
если("{http_code} != 200").то(
  // добавление комментария в диалог и завершение сценария
  комментарий("При запросе на классификацию возникла ошибка {http_code}, текст ошибки {answer}")+
  комментарий("Обратитесь к администратору системы")+
  завершить
)+
комментарий("Запрос в классификатор прошел успешно.")+
// Разбор ответа на запрос классификации
выполнитьJs("""
  var answerParsed = JSON.parse(answer);
  var resultsLength = answerParsed.results.length;
  var className = '';
  var classAnswer = '';
  var classIdFromClissifier = '';
  var classScore = 0.0;
  if (resultsLength > 0) {
    className = answerParsed.results[0]['name'];
    classIdFromClissifier = answerParsed.results[0]['document_id'].toString();
    classScore = answerParsed.results[0]['score'];
    classAnswer = answerParsed.results[0]['answer'];
  }
  var classScoreToPrint = Math.floor(classScore * 100).toString() + '%';
  var exit = {'className':className, 'classIdFromClissifier':classIdFromClissifier, 'classScore':classScore, 'classAnswer':classAnswer, 'classScoreToPrint':classScoreToPrint};
  exit;
""") +
комментарий("Результаты классификации: определен документ {className} с уверенностью {classScore} при установленном пороге уверенности {serviceOtherScore}")