web-dev-qa-db-fra.com

dialogflow - comment obtenir l'identifiant de session?

Tout d'abord, je suis un noob avec dialogflow et services web. J'essaie d'intégrer un agent de flux de dialogue que je viens de créer et de l'intégrer à mon application sur mon ordinateur local. J'ai pu obtenir project_id et toutes les autres informations importantes, mais peu importe où je regarde, personne ne semble dire d'où proviennent les identifiants de session. Voici le code audio-texte que j'utilise qui a été dérivé de la page github d'api.ai:

import os
import dialogflow_v2 as dialogflow
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "My Google Credential"
project_id = 'project id'
session_id = "this i don't know where to get"
audio_file_path = 'my wave file directory name'
language_code = 'en'

def detect_intent_audio(project_id, session_id, audio_file_path,
                        language_code):
    """Returns the result of detect intent with an audio file as input.

    Using the same `session_id` between requests allows continuation
    of the conversaion."""

    session_client = dialogflow.SessionsClient()

    # Note: hard coding audio_encoding and sample_rate_hertz for simplicity.
    audio_encoding = dialogflow.enums.AudioEncoding.AUDIO_ENCODING_LINEAR_16
    sample_rate_hertz = 44100

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

    with open(audio_file_path, 'rb') as audio_file:
        input_audio = audio_file.read()

    audio_config = dialogflow.types.InputAudioConfig(
        audio_encoding=audio_encoding, language_code=language_code,
        sample_rate_hertz=sample_rate_hertz)
    query_input = dialogflow.types.QueryInput(audio_config=audio_config)

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

    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))

detect_intent_audio(project_id, session_id, audio_file_path,
                        language_code)

J'ai activé le webhook et lié le webhook à heroku, mais je ne vois toujours pas où obtenir cet ID de session. Est-ce que quelqu'un peut m'aider?

8
Phillip1982

Sur le lien, https://dialogflow.com/docs/reference/api-v2/rest/v2/projects.agent.sessions/detectIntent , il est indiqué sous les paramètres de chemin de session de la requête HTTP qui "C'est à l'appelant de l'API de choisir un ID de session approprié. Il peut s'agir d'un nombre aléatoire ou d'un type d'identifiant d'utilisateur (de préférence haché). La longueur de l'ID de session ne doit pas dépasser 36 octets."

8
saffetgokcensen