kaikaidai commited on
Commit
3201182
·
verified ·
1 Parent(s): 15a404c

User_id fix

Browse files
Files changed (1) hide show
  1. app.py +17 -8
app.py CHANGED
@@ -3,6 +3,7 @@ import re
3
  import random
4
  from collections import defaultdict
5
  from datetime import datetime, timezone
 
6
 
7
  from dotenv import load_dotenv
8
 
@@ -60,13 +61,21 @@ def load_model_data():
60
 
61
  model_data = load_model_data()
62
 
63
- current_session_id = 0
64
 
65
-
66
- def get_new_session_id():
67
- global current_session_id
68
- current_session_id += 1
69
- return f"user{current_session_id}"
 
 
 
 
 
 
 
 
 
70
 
71
 
72
  def store_vote_data(prompt, response_a, response_b, model_a, model_b, winner, judge_id):
@@ -265,7 +274,7 @@ def get_leaderboard():
265
 
266
  # Sort leaderboard by ELO score in descending order
267
  leaderboard.sort(key=lambda x: float(x["ELO Score"]), reverse=True)
268
-
269
  return leaderboard
270
 
271
 
@@ -434,7 +443,7 @@ def get_random_metric():
434
 
435
 
436
  with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
437
- judge_id = gr.State(get_new_session_id())
438
  gr.Markdown(MAIN_TITLE)
439
  gr.Markdown(HOW_IT_WORKS)
440
 
 
3
  import random
4
  from collections import defaultdict
5
  from datetime import datetime, timezone
6
+ import hashlib
7
 
8
  from dotenv import load_dotenv
9
 
 
61
 
62
  model_data = load_model_data()
63
 
 
64
 
65
+ # Generate a unique session ID based on the user's IP address
66
+ def get_new_session_id(request: gr.Request):
67
+ """Generate a unique session ID based on the user's IP address."""
68
+ if "cf-connecting-ip" in request.headers:
69
+ ip = request.headers["cf-connecting-ip"]
70
+ elif "x-forwarded-for" in request.headers:
71
+ ip = request.headers["x-forwarded-for"]
72
+ if "," in ip:
73
+ ip = ip.split(",")[0]
74
+ else:
75
+ ip = request.client.host
76
+
77
+ # Create a hash of the IP to maintain privacy
78
+ return f"user_{hashlib.md5(ip.encode()).hexdigest()[:8]}"
79
 
80
 
81
  def store_vote_data(prompt, response_a, response_b, model_a, model_b, winner, judge_id):
 
274
 
275
  # Sort leaderboard by ELO score in descending order
276
  leaderboard.sort(key=lambda x: float(x["ELO Score"]), reverse=True)
277
+
278
  return leaderboard
279
 
280
 
 
443
 
444
 
445
  with gr.Blocks(theme="default", css=CSS_STYLES) as demo:
446
+ judge_id = gr.State(lambda: get_new_session_id(gr.Request()))
447
  gr.Markdown(MAIN_TITLE)
448
  gr.Markdown(HOW_IT_WORKS)
449