Answer the question
In order to leave comments, you need to log in
How to make sure that the service that responds to the POST request is running?
Good afternoon!
In web programming and in Python, I am a complete layman. I downloaded this code on the Internet (see below), I want to modify it for my selfish needs, but for a start it would be nice to make sure that the code works and see the result of the work.
The service should, in response to a request, offer to buy an elephant.
Service code:
# coding: utf-8
# Импортирует поддержку UTF-8.
from __future__ import unicode_literals
# Импортируем модули для работы с JSON и логами.
import json
import logging
# Импортируем подмодули Flask для запуска веб-сервиса.
from flask import Flask, request
app = Flask(__name__)
logging.basicConfig(level=logging.DEBUG)
# Хранилище данных о сессиях.
sessionStorage = {}
# Задаем параметры приложения Flask.
@app.route("/", methods=['POST'])
def main():
# Функция получает тело запроса и возвращает ответ.
logging.info('Request: %r', request.json)
response = {
"version": request.json['version'],
"session": request.json['session'],
"response": {
"end_session": False
}
}
handle_dialog(request.json, response)
logging.info('Response: %r', response)
return json.dumps(
response,
ensure_ascii=False,
indent=2
)
# Функция для непосредственной обработки диалога.
def handle_dialog(req, res):
user_id = req['session']['user_id']
if req['session']['new']:
# Это новый пользователь.
# Инициализируем сессию и поприветствуем его.
sessionStorage[user_id] = {
'suggests': [
"Не хочу.",
"Не буду.",
"Отстань!",
]
}
res['response']['text'] = 'Привет! Купи слона!'
res['response']['buttons'] = getSuggests(user_id)
return
# Обрабатываем ответ пользователя.
if req['request']['original_utterance'].lower() in [
'ладно',
'куплю',
'покупаю',
'хорошо',
]:
# Пользователь согласился, прощаемся.
res['response']['text'] = 'Слона можно найти на Яндекс.Маркете!'
return
# Если нет, то убеждаем его купить слона!
res['response']['text'] = 'Все говорят "%s", а ты купи слона!' % (
req['request']['original_utterance']
)
res['response']['buttons'] = getSuggests(user_id)
# Функция возвращает две подсказки для ответа.
def getSuggests(user_id):
session = sessionStorage[user_id]
# Выбираем две первые подсказки из массива.
suggests = [
{'title': suggest, 'hide': True}
for suggest in session['suggests'][:2]
]
# Убираем первую подсказку, чтобы подсказки менялись каждый раз.
session['suggests'] = session['suggests'][1:]
sessionStorage[user_id] = session
# Если осталась только одна подсказка, предлагаем подсказку
# со ссылкой на Яндекс.Маркет.
if len(suggests) < 2:
suggests.append({
"title": "Ладно",
"url": "https://market.yandex.ru/search?text=слон",
"hide": True
})
return suggests
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question