Je suis en train d'apprendre à écrire des compétences Alexa en utilisant Flask-Ask. Voici le code pour flask_app.py:Alexa Compétence utilisant flask-ask: HTTP 500: ERREUR SERVEUR INTERNE
from flask import Flask, render_template
from flask_ask import Ask, statement, question, session
import random
app = Flask(__name__)
ask = Ask(app, "/")
def armstrong(num):
order = len(str(num))
num_sum = 0
temp = num
while temp > 0:
digit = temp % 10
num_sum += digit ** order
temp //= 10
if num == num_sum:
return True
else:
return False
@ask.launch
def new_game():
welcome_msg = render_template('welcome')
return statement(welcome_msg)
@ask.intent("AnswerIntent", convert = {'first': int})
def answer(first):
if armstrong(int(first)):
msg = render_template('win')
else:
msg = render_template('lose')
return statement(msg)
if __name__ == '__main__':
app.run()
Ceci est le code pour les intentions JSON:
{
"intents": [{
"intent": "AnswerIntent",
"slots": [{
"name": "number",
"type": "AMAZON.NUMBER"
}]
}]
}
Ce sont mes exemples: Utterances
AnswerIntent {number}
AnswerIntent My number is {number}
AnswerIntent Is {number} an armstrong number
Mais l'erreur ma ligne de commande est:
[2017-07-09 15:37:07,543] ERROR in app: Exception on/[POST]
Traceback (most recent call last):
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask\app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask\app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask\app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask\app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask\app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask_ask\core.py", line 571, in _flask_view_func
ask_payload = self._alexa_request(verify=self.ask_verify_requests)
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\flask_ask\core.py", line 533, in _alexa_request
timestamp = aniso8601.parse_datetime(alexa_request_payload['request']['timestamp'])
File "C:\Users\Sayantan Das\AppData\Local\Programs\Python\Python36\lib\site- packages\aniso8601\time.py", line 120, in parse_datetime
isodatestr, isotimestr = isodatetimestr.split(delimiter)
AttributeError: 'int' object has no attribute 'split'
127.0.0.1 - - [09/Jul/2017 15:37:07] "POST/HTTP/1.1" 500 -
ngrok montre l'erreur suivante:
HTTP Requests
-------------
POST/ 500 INTERNAL SERVER ERROR
Et la réponse du service, après son entrée Enoncé 'start armstrong' à tester est:
There was an error calling the remote endpoint, which returned HTTP 500 :
INTERNAL SERVER ERROR
Ceci est mon premier Alexa Skill.I essaie de le mettre en œuvre en utilisant Flask et flask-ask sur Python. Aide de Pls.
Même ici. Une autre chose étrange à propos de ce bogue est que si vous copiez le JSON généré par le testeur de texte et le collez dans l'onglet JSON du testeur, cela fonctionne réellement. – alpalalpal
@alpalalpal Je vais essayer votre suggestion. –