HTTP-запрос запроса диалога - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать очень простого чат-бота с помощью диалогового потока, чтобы я мог задать вопрос и получить обратно сообщение об исполнении. Я смог использовать библиотеку диалоговых потоков python, чтобы заставить это работать, но когда я попытался изменить его на обычный запрос, он не работал. Вот рабочий код:

import os
import dialogflow
from google.api_core.exceptions import InvalidArgument

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = PATH_TO_JSON

DIALOGFLOW_PROJECT_ID = PROJECT_ID
DIALOGFLOW_LANGUAGE_CODE = 'en'
SESSION_ID = 'me'

text_to_be_analyzed = "How are my stocks"

session_client = dialogflow.SessionsClient()
session = session_client.session_path(DIALOGFLOW_PROJECT_ID, SESSION_ID)
text_input = dialogflow.types.TextInput(text=text_to_be_analyzed, language_code=DIALOGFLOW_LANGUAGE_CODE)
query_input = dialogflow.types.QueryInput(text=text_input)
try:
    response = session_client.detect_intent(session=session, query_input=query_input)
except InvalidArgument:
    raise

#print(response)
print("Response:", response.query_result.fulfillment_text)

и он печатает

your stocks are good

Используя библиотеку запросов, я попробовал аналогичную настройку и написал это:

my_key = CLIENT_ACCESS_TOKEN

url = "https://api.dialogflow.com/v1/query?v=20170712"
headers = {
  'Authorization': 'Bearer ' + my_key ,
  'Content-Type' : 'application/json'
}
body = {
    "lang": "en",
    "query": "how are my stocks",
    "sessionId": "me",
}
r.post(url,headers=headers,data=body).text

и Я получаю сообщение об ошибке:

{
  "status": {
    "code": 400,
    "errorType": "bad_request",
    "errorDetails": "Cannot parse json. Please validate your json. Code: 400"
  }
}

Я получаю свой пример из этого url для запроса пост-запроса. Причина, по которой я хочу, чтобы это работало как http-запрос, заключается в том, что я хотел бы иметь возможность использовать его в других приложениях и иметь согласованный способ доступа к своим намерениям. Спасибо за помощь!

1 Ответ

0 голосов
/ 06 февраля 2020

После дополнительных исследований я обнаружил ошибку по этой ссылке . Таким образом, вопрос был меньше об интеграции с диалоговым потоком и больше о создании запроса в python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...