...
Пример сценария:
Code Block | ||
---|---|---|
| ||
// Токен для чтения баз знаний, брать из АФ в разделе Настройки - Общие - Параметры прямого подключения к базам знаний через API установитьПеременную("autorizationToken", "XXX")+ // ID и токен базы знаний - классфикатора установитьПеременную("kb_id", "XX")+ установитьПеременную("kb_token", "XXX")+ // Адрес API баз знаний - получить у администратора системы, ниже примеры: установитьПеременную("kb_qna_enpoint", "https://croc-apixxx.autofaq.ai/q/api/v1/query")+ установитьПеременную("kb_crud_endpoint", "https://croc-api.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 exit = {'resultsLength':resultsLength}; exit; """) + // Разбор ответа на запрос классификации выполнить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}")+ |