Ошибка возникает из-за того, что переменная s не определена. Вместо этого вы передаете пустую строку a в функцию textMessage(). Чтобы исправить ошибку, замените s на message при вызове функции textMessage(). Также стоит изменить строчку responseJson = json.loads (request.getresponse().read().decode('utf-8')) на две отдельные строки, чтобы избежать ошибки AttributeError: 'NoneType' object has no attribute 'read'.
Вот исправленный код:
import apiai
import json
def textMessage(message):
# Токен API к Dialogflow
request = apiai.ApiAI('f3bb1deb708e57e72c86b6469300e1c1bb3c6fa5').text_request()
# На каком языке будет послан запрос
request.lang = 'ru'
# ID Сессии диалога (нужно, чтобы учить бота)
request.session_id = '3301megabot'
# Посылаем запрос к ИИ с сообщением от пользователя
request.query = message
responseJson = request.getresponse().read().decode('utf-8')
responseJson = json.loads(responseJson)
# Разбираем JSON и вытаскиваем ответ
response = responseJson['result']['fulfillment']['speech']
if response:
return response
else:
return 'Я Вас не совсем понял'
a = ''
while a != 'Выход':
message = input('Введите ваше сообщение: ')
print(textMessage(message))
import apiai
import json
def textMessage(s):
# Токен API к Dialogflow
request = apiai.ApiAI('f3bb1deb708e57e72c86b6469300e1c1bb3c6fa5').text_request()
# На каком языке будет послан запрос
request.lang = 'ru'
# ID Сессии диалога (нужно, чтобы учить бота)
request.session_id = '3301megabot'
# Посылаем запрос к ИИ с сообщением от пользователя
request.query = s
responseJson = json.loads (request.getresponse().read().decode('utf-8'))
# Разбираем JSON и вытаскиваем ответ
response = responseJson['result']['fulfillment']['speech']
if response:
return response
else:
return 'Я Вас не совсем понял'
a=''
while (a!='Выход'):
message = input('Введите ваше сообщение: ')
print (textMessage(s))