web-dev-qa-db-ja.com

dialogflow-セッションIDを取得する方法は?

まず第一に、私はdialogflowとWebサービスの初心者です。作成したばかりのdialogflowエージェントを統合し、ローカルコンピューター上のアプリと統合しようとしています。私はproject_idと他のすべての重要な情報を取得することができましたが、どこを見ても、セッションIDの取得元について誰も話していないようです。これは、api.ai githubページから分岐した、私が使用している音声からテキストへのコードです。

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)

Webhookを有効にし、Webhookをherokuにリンクしましたが、それでもこのセッションIDを取得できる場所がわかりません。誰かが私を助けることができますか?

8
Phillip1982

リンク https://dialogflow.com/docs/reference/api-v2/rest/v2/projects.agent.sessions/detectIntent で、HTTP要求セッションパスパラメーターの下に次のように記載されています。 「適切なセッションIDを選択するのはAPI呼び出し側次第です。乱数または何らかのタイプのユーザーID(できればハッシュ化された)を使用できます。セッションIDの長さは36バイトを超えてはなりません。」

8
saffetgokcensen