def delete_context(project_id, session_id, context_id):
    contexts_client = dialogflow.ContextsClient()

    context_name = contexts_client.context_path(
        project_id, session_id, context_id)

    contexts_client.delete_context(context_name)
def detect_intent_texts():
    session_client = dialogflow.SessionsClient()

    session = session_client.session_path(project_id, session_id)
    print('Session path: {}\n'.format(session))

    text_input = dialogflow.types.TextInput(text=text,
                                            language_code=language_code)

    query_input = dialogflow.types.QueryInput(text=text_input)

    client_context = dialogflow.ContextsClient()
    #    context = client_context.get_context("projects/fmla-faq/agent/sessions/b805e39f-3d28-4222-b159-cb46776ef1dc/contexts/randomtestforeric-followup")
    #    dialogflow.types.Context(name="projects/fmla-faq/agent/sessions/e8704b67-400f-4a90-bdfb-6b58db4bf3b4/contexts/randomtestforeric-followup", lifespan_count=1, parameters = "{fields {key: \"date\" value {string_value: ""}}fields {key: \"date.original\" value {string_value: \"\"}} fields { key: \"geo-city\" value { string_value: \"\" } } fields { key: \"geo-city.original\" value { string_value: \"\" } } fields { key: \"geo-state\" value { string_value: \"\" } } fields { key: \"geo-state.original\" value { string_value: \"\" } } } ")

    #    query_params = dialogflow.types.QueryParameters(contexts=context)

    response = session_client.detect_intent(session=session,
                                            query_input=query_input)

    print('=' * 20)
    print('Query text: {}'.format(response.query_result.query_text))
    print('Detected intent: {} (confidence: {})\n'.format(
        response.query_result.intent.display_name,
        response.query_result.intent_detection_confidence))
    print('Fulfillment text: {}\n'.format(
        response.query_result.fulfillment_text))
    print('Parameter text: {}\n'.format(response.query_result.parameters))
    print('Output context: {}\n'.format(response.query_result.output_contexts))
    print("***********************************")
    #    print(response.query_result.output_contexts.pop())
    print(response.query_result.output_contexts)
def create_context(project_id, session_id, context_id, lifespan_count):
    contexts_client = dialogflow.ContextsClient()

    session_path = contexts_client.session_path(project_id, session_id)
    context_name = contexts_client.context_path(
        project_id, session_id, context_id)

    context = dialogflow.types.Context(
        name=context_name, lifespan_count=lifespan_count)

    response = contexts_client.create_context(session_path, context)

    print('Context created: \n{}'.format(response))
Example #4
0
	def save_context_delito(self, llave, session_id):
		self.env['imco.norma.mail.analisis.nltk.contextos'].sudo().create({
			'channel_id': session_id,
			'message_id': self.id,
			'valor': ("delito_" + llave.lower() )})
		session_client = dialogflow.SessionsClient()
		# crea una sesion en dialog flow si no existe para identificar la conversacion
		session = session_client.session_path(PROJECT_ID, session_id)
		#Inicializa el objeto de dialogflow para contextos
		contexts_client = dialogflow.ContextsClient()
		context_name = contexts_client.context_path(PROJECT_ID, session_id, ("delito_" + llave.lower() ) )
		context = dialogflow.types.Context(name = context_name, lifespan_count = 100)
		response_ctx = contexts_client.create_context(session, context)
Example #5
0
    def contexts(self):
        contexts_client = dialogflow.ContextsClient()

        session_path = contexts_client.session_path(self.project_id,
                                                    self.session_id)

        contexts = contexts_client.list_contexts(session_path)

        dict = {}
        for context in contexts:
            for field, value in context.parameters.fields.items():
                if value.string_value:
                    dict[field] = value.string_value
        return dict
def list_contexts(project_id, session_id):
    contexts_client = dialogflow.ContextsClient()

    session_path = contexts_client.session_path(project_id, session_id)

    contexts = contexts_client.list_contexts(session_path)

    print('Contexts for session {}:\n'.format(session_path))
    for context in contexts:
        print('Context name: {}'.format(context.name))
        print('Lifespan count: {}'.format(context.lifespan_count))
        print('Fields:')
        for field, value in context.parameters.fields.items():
            if value.string_value:
                print('\t{}: {}'.format(field, value))
Example #7
0
	def analisis_dialogflow(self, text, session_id, context = None):
		"""
		Manda a dialog flow el texto para detectar las entidades en el mensaje y regresa las entidades  y la accion  encontradas con el siguiente formato
			 res = [
				"action": [accion],
				"entidades": [(key,value)]
				"dialogflow_response":[string]
			]
		"""
		session_client = dialogflow.SessionsClient()
		# crea una sesion en dialog flow si no existe para identificar la conversacion --------------------------------------------------------------------------------
		session = session_client.session_path(PROJECT_ID, session_id)
		# genera los parametros necesarios para el analisis ------------------------------------------------------------------------------------------------------------------------
		text_input = dialogflow.types.TextInput(text=text, language_code='es-MX')
		query_input = dialogflow.types.QueryInput(text=text_input)
		# envia el contexto a dialogflow si el contexto esta definido ------------------------------------------------------------------------------------------
		if context != None:
			if context.startswith("entidad_"):
				contexts_client = dialogflow.ContextsClient()
				context_name = contexts_client.context_path(PROJECT_ID, session_id, context )
				c = dialogflow.types.Context(name = context_name, lifespan_count=1)
				response_ctx = contexts_client.create_context(session, c)
		# analiza el mensaje del usuario -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
		response = session_client.detect_intent(session=session ,  query_input=query_input)
		res = {}
		res['action'] = response.query_result.action
		res['entidades'] = {}
		x = response.query_result.parameters.items()
		print(x)
		for key, value in x:
			if value != "" or type(value) in [int, float]:
				k = re.sub(r'[0-9]+', '', key.lower())
				print (k)
				if k not in res["entidades"]:
					res["entidades"][k]  = []
				#Guarda
				if type(value) == str:
					res['entidades'][k].append( value.lower()  )
				elif type(value) in (int, float):
					res['entidades'][k].append( str(value)  )
				else:
					for v2 in value.items():
						print(v2)
						res['entidades'][k].append( v2.lower()  )
		#res['entidades'] =  response.query_result.parameters.items()
		res['dialogflow_response']=response
		return res