Рубрики
Без рубрики

Build Intelligent Thatbot, используя диалог

Сегодня Chatbots стали очень важной частью для большинства веб-сайтов, а не только ответить на часто задаваемые вопросы или Provide … Теги с обучением машины, Python, Serverless, Google Cloud.

Сегодня Chatbots стали очень важной частью для большинства веб-сайтов, а не только ответить на часто задаваемые вопросы или предоставлять обслуживание клиентов, но и дать интеллектуальную службу для навигации на веб-сайте. На рынке имеется много инструментов Thatbot, доступных на рынке Amazon Lex, Google Dialogflow, для открытия исходного кода RASA и т. Д. Мы собираемся посмотреть, как мы можем создать Thatbot, используя диалоговое значение Google и функцию облака Python.

Dialogflow – это сквозная, построенная после развертывания в развертывании повсюду, предоставляется Google для создания разговорных интерфейсов для веб-сайтов, мобильных приложений, популярных платформ обмена сообщениями и устройствами IoT.

Настройка диалогового значения –

  1. Агент – сначала создайте новый агент на dialogflow. Обеспечить общую информацию, связанную с вашим требованием к проекту в разделе «Настройки».

  2. Намерение – это классифицирует намерение конечного пользователя для одного разговора. Когда пользователь что-то говорит, диалоговое значение сочетается с наилучшим намерением в агенте.

  3. Парафразы – тренировочные фразы – это примерные фразы для того, какие конечные пользователи могут ввести или сказать. Каждое намерение может иметь несколько парафров.

  4. Действие и параметры – поле действия – это простое удобное поле, которое помогает в выполнении логики в вашем обслуживании. Когда намерение сопоставлено во время выполнения, диалог обеспечивает извлеченные значения из выражения конечного пользователя в качестве параметров, которые мы можем использовать в сервисе, запущенном с помощью приведенного выше поля действия.

  5. Ответ – каждый намерен имеет обработчик ответа, который может вернуть ответы после сопоставления намерения. Мы можем установить текст или разные форматы ответов, предоставляемые диалоговым потоком.

Обнаруживать намерение –

Разверните небольшую программу Python в области облачных функций, которые обнаруживают намерения для пользовательских запросов. Вы также должны получить ключ доступа диалогового потока, чтобы запустить его из облачной функции. Скачайте его с учетных записей службы в IAM и Admin.

требования

Flask
dialogflow
functions-framework

main.py

import dialogflow
import json, logging
from flask import request, jsonify
from google.protobuf.json_format import MessageToJson
from google.protobuf.struct_pb2 import Struct
from google.protobuf.struct_pb2 import Value

def detect_intent(request):
    response = {
        'status_code': 500,
        'message': 'Failed to fetch data from dialogflow.',
        'data': []
    }

    try:
        request_json = request.get_json(silent=True, force=True)

        project_id = ""
        session_client = dialogflow.SessionsClient.from_service_account_json('key.json')

        payload = {'project_id': project_id, 'session_id': request_json.get("session_id")}
        struct_pb = Struct(fields={
            key: Value(string_value=value) for key, value in payload.items()
        })
        params = dialogflow.types.QueryParameters(
            time_zone="IST", payload=struct_pb)
        session = session_client.session_path(project_id, request_json.get("session_id"))

        text_input = dialogflow.types.TextInput(
            text=request_json.get("text"), language_code='en-US')
        query_input = dialogflow.types.QueryInput(text=text_input)
        df_response = session_client.detect_intent(
            session=session, query_input=query_input, query_params=params)

        # Convert proto object and serialize it to a json format string.
        json_obj = MessageToJson(df_response)

        result = json.loads(json_obj)
        response['status_code'] = 200
        response['data'] = result
        response['message'] = "Successfully fetched response from dialogflow."
    except Exception as e:
        logging.error(e)

    return jsonify(response)

WebHook Call –

Для каждого намерения, если вы хотите обработать какую-то деловую логику, используя параметры, извлеченные из запроса, вы включаете вызов веб -ook при выполнении в намерениях. Добавьте конечную точку API WebHook в вкладке «Выполнение».

требования

pydialogflow-fulfillment
Flask
functions-framework

main.py

import json
from flask import request
from pydialogflow_fulfillment import DialogflowResponse, DialogflowRequest
from pydialogflow_fulfillment.response import SimpleResponse, OutputContexts
import logging

def webhook(request):
    dialogflow_response = DialogflowResponse()
    try:
        dialog_fulfillment = DialogflowRequest(request.data) 
        action = dialog_fulfillment.get_action()
        if action == "welcome":
            dialogflow_response.add(SimpleResponse("This is a simple text response","This is a simple text response"))
        else:
            dialogflow_response.add(SimpleResponse("This is a fallback text response","This is a fallback text response"))

    except Exception as e:
        logging.error(e)
        dialogflow_response = DialogflowResponse()
        dialogflow_response.add(SimpleResponse("Something went wrong.","Something went wrong."))
        return json.loads(dialogflow_response.get_final_response())

    return json.loads(dialogflow_response.get_final_response())

Загрузить код из гадость

Оригинал: “https://dev.to/mrkanthaliya/build-intelligent-chatbot-using-dialogflow-54nh”