Spaces:
Sleeping
Sleeping
File size: 1,736 Bytes
5e71af7 a202b6d 1c007bb a202b6d 1c007bb a202b6d 1c007bb a202b6d 5e71af7 a202b6d 1c007bb a202b6d 1c007bb c10a05f a202b6d 1c007bb 5e71af7 d5ef8f7 5e71af7 d5ef8f7 1c007bb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import random
from a3c.play import get_play_model_path, play
from flask import Flask, request, jsonify
from flask_cors import cross_origin
from wordle_env.words import target_vocabulary
from wordle_env.wordle import get_env
app = Flask(__name__)
def validate_goal_word(word):
if not word:
return True, 'Goal word not provided'
if word.upper() not in target_vocabulary:
return True, 'Goal word not in vocabulary'
return False, ''
@app.route('/play_word', methods=['GET'])
@cross_origin(origin='*', headers=['Content-Type', 'Authorization'])
def get_play():
# Get the goal word from the request
word = request.args.get('goal_word')
error, msge = validate_goal_word(word)
if error:
return jsonify({'error': msge}), 400
word = word.upper()
env = get_env()
model_path = get_play_model_path()
# Call the play function with the goal word
# and return the attempts and the result
won, attempts = play(env, model_path, word)
return jsonify({'attempts': attempts, 'won': won})
@app.route('/word', methods=['GET'])
@cross_origin(origin='*', headers=['Content-Type', 'Authorization'])
def get_word():
# Get a random word from the target vocabulary used to train the model
word = random.choice(target_vocabulary)
word = word.upper()
return jsonify({'word': word})
def create_app(settings_override=None):
"""
Create a Flask application using the app factory pattern.
:param settings_override: Override settings
:return: Flask app
"""
# app.config.from_object("config.settings")
if settings_override:
app.config.update(settings_override)
return app
if __name__ == '__main__':
app.run(debug=True)
|