nissmogt commited on
Commit
cd8e166
·
verified ·
1 Parent(s): e72a57e

added save state

Browse files
Files changed (1) hide show
  1. app.py +26 -5
app.py CHANGED
@@ -3,9 +3,19 @@ import json
3
  from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
4
  from urllib.parse import parse_qs, urlparse
5
  from inference import generate_excuse
6
- from dataset import load_leaderboard, save_leaderboard, update_leaderboard_votes
7
 
8
  API_TOKEN = os.getenv("HF_TOKEN")
 
 
 
 
 
 
 
 
 
 
 
9
 
10
  class RequestHandler(SimpleHTTPRequestHandler):
11
  def do_GET(self):
@@ -31,19 +41,30 @@ class RequestHandler(SimpleHTTPRequestHandler):
31
  "max_new_tokens": 100
32
  })
33
  leaderboard.sort(key=lambda x: x["votes"], reverse=True)
34
- save_leaderboard(leaderboard[:10]) # Keep only top 10
 
35
  self.send_response(200)
36
  self.send_header('Content-type', 'application/json')
37
  self.end_headers()
38
- self.wfile.write(json.dumps({'excuse': excuse, 'leaderboard': leaderboard[:10]}).encode())
39
  elif self.path == '/vote':
40
  index = int(parsed_data['index'][0])
41
  vote_value = int(parsed_data['vote'][0])
42
- updated_leaderboard = update_leaderboard_votes(index, vote_value)
 
 
 
 
 
 
 
 
 
 
43
  self.send_response(200)
44
  self.send_header('Content-type', 'application/json')
45
  self.end_headers()
46
- self.wfile.write(json.dumps({'leaderboard': updated_leaderboard}).encode())
47
  else:
48
  self.send_error(404, 'Not Found')
49
 
 
3
  from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
4
  from urllib.parse import parse_qs, urlparse
5
  from inference import generate_excuse
 
6
 
7
  API_TOKEN = os.getenv("HF_TOKEN")
8
+ LEADERBOARD_FILE = "leaderboard.json"
9
+
10
+ def save_leaderboard(leaderboard):
11
+ with open(LEADERBOARD_FILE, "w") as f:
12
+ json.dump(leaderboard, f)
13
+
14
+ def load_leaderboard():
15
+ if os.path.exists(LEADERBOARD_FILE):
16
+ with open(LEADERBOARD_FILE, "r") as f:
17
+ return json.load(f)
18
+ return []
19
 
20
  class RequestHandler(SimpleHTTPRequestHandler):
21
  def do_GET(self):
 
41
  "max_new_tokens": 100
42
  })
43
  leaderboard.sort(key=lambda x: x["votes"], reverse=True)
44
+ leaderboard = leaderboard[:10] # Keep only top 10
45
+ save_leaderboard(leaderboard)
46
  self.send_response(200)
47
  self.send_header('Content-type', 'application/json')
48
  self.end_headers()
49
+ self.wfile.write(json.dumps({'excuse': excuse, 'leaderboard': leaderboard}).encode())
50
  elif self.path == '/vote':
51
  index = int(parsed_data['index'][0])
52
  vote_value = int(parsed_data['vote'][0])
53
+ leaderboard = load_leaderboard()
54
+ if 0 <= index < len(leaderboard):
55
+ leaderboard[index]["votes"] += vote_value
56
+ leaderboard.sort(key=lambda x: x["votes"], reverse=True)
57
+ save_leaderboard(leaderboard)
58
+ self.send_response(200)
59
+ self.send_header('Content-type', 'application/json')
60
+ self.end_headers()
61
+ self.wfile.write(json.dumps({'leaderboard': leaderboard}).encode())
62
+ elif self.path == '/leaderboard':
63
+ leaderboard = load_leaderboard()
64
  self.send_response(200)
65
  self.send_header('Content-type', 'application/json')
66
  self.end_headers()
67
+ self.wfile.write(json.dumps({'leaderboard': leaderboard}).encode())
68
  else:
69
  self.send_error(404, 'Not Found')
70