Skip to content

Instantly share code, notes, and snippets.

@yakticus
Last active October 5, 2022 09:36
Show Gist options
  • Select an option

  • Save yakticus/de3639c23675a4f6e05b54e5faef56d4 to your computer and use it in GitHub Desktop.

Select an option

Save yakticus/de3639c23675a4f6e05b54e5faef56d4 to your computer and use it in GitHub Desktop.
Very basic REST API for OpenAI gym
#!flask/bin/python
import gym
from flask import Flask, Response, jsonify
import datetime
app = Flask(__name__)
envname = 'CartPole-v0'
env = gym.make(envname)
env.reset()
@app.route('/')
def index():
return "Hello, World!"
@app.route('/monitor/<string:state>', methods=['GET'])
def monitor(state):
if state == 'on':
outdir = '/tmp/' + envname + '-results-' + str(datetime.datetime.now())
global env
env = gym.make(envname) # an environment needs to be re-created so that the monitor can be started again
env.monitor.start(outdir, force=True)
env.reset()
else:
env.monitor.close()
return jsonify({'monitor': state})
@app.route('/act/<int:action>', methods=['GET'])
def act(action):
ob, reward, done, _ = env.step(action)
if done:
env.reset() # automatically reset when done
return jsonify({'observation': ob.tolist(), 'reward': reward, 'done': done})
@app.route('/reset', methods=['GET'])
def reset():
env.reset()
return jsonify({'reset': True})
if __name__ == '__main__':
app.run(debug=True)
@ddharshan
Copy link
Copy Markdown

Hi !
Is this worked?

@ddharshan
Copy link
Copy Markdown

Do you know how to deploy a trained Deep Reinforcement model to Flask API and render in browser?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment