Spaces:
Running
Running
ratings by user test@provider.com
Browse files- app.py +39 -9
- rate_results.jsonl +6 -0
app.py
CHANGED
@@ -5,14 +5,31 @@ from pathlib import Path
|
|
5 |
import huggingface_hub
|
6 |
from huggingface_hub import Repository
|
7 |
import json
|
|
|
8 |
|
|
|
|
|
9 |
|
10 |
-
|
|
|
11 |
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
if "paths_to_html" not in st.session_state:
|
15 |
-
st.session_state.paths_to_html = [
|
|
|
|
|
16 |
random.shuffle(st.session_state.paths_to_html)
|
17 |
|
18 |
if "html_idx" not in st.session_state:
|
@@ -51,21 +68,34 @@ if st.sidebar.button("Next email", key="next"):
|
|
51 |
idx = st.session_state.html_idx
|
52 |
idx = (idx + 1) % len(st.session_state.paths_to_html)
|
53 |
st.session_state.html_idx = idx
|
54 |
-
st.session_state.html_key = st.session_state.paths_to_html[
|
|
|
|
|
55 |
st.rerun()
|
56 |
|
57 |
elif st.sidebar.button("Previous email", key="previous"):
|
58 |
idx = st.session_state.html_idx
|
59 |
idx = (idx - 1) % len(st.session_state.paths_to_html)
|
60 |
st.session_state.html_idx = idx
|
61 |
-
st.session_state.html_key = st.session_state.paths_to_html[
|
|
|
|
|
62 |
st.rerun()
|
63 |
else:
|
64 |
if st.sidebar.button("Quit", key="quit"):
|
65 |
# send email with data or append to jsonl file
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
st.session_state
|
|
|
5 |
import huggingface_hub
|
6 |
from huggingface_hub import Repository
|
7 |
import json
|
8 |
+
import os
|
9 |
|
10 |
+
DATASET_REPO_URL = "https://huggingface.co/spaces/simonn8/email_rater"
|
11 |
+
DATA_FILENAME = "rate_results.jsonl"
|
12 |
|
13 |
+
HF_TOKEN = os.environ.get("HF_TOKEN")
|
14 |
+
print("is none?", HF_TOKEN is None)
|
15 |
|
16 |
+
repo = Repository(
|
17 |
+
local_dir=".", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
|
18 |
+
)
|
19 |
+
|
20 |
+
|
21 |
+
user = st.sidebar.text_input("User", "your.email@provider.com")
|
22 |
+
|
23 |
+
paths_to_html = random.shuffle(
|
24 |
+
[Path(filename) for filename in Path("./html_files/").glob("*.html")]
|
25 |
+
)
|
26 |
+
|
27 |
+
label_to_number = {"Human": 0, "AI": 1}
|
28 |
|
29 |
if "paths_to_html" not in st.session_state:
|
30 |
+
st.session_state.paths_to_html = [
|
31 |
+
Path(filename) for filename in Path("./html_files/").glob("*.html")
|
32 |
+
]
|
33 |
random.shuffle(st.session_state.paths_to_html)
|
34 |
|
35 |
if "html_idx" not in st.session_state:
|
|
|
68 |
idx = st.session_state.html_idx
|
69 |
idx = (idx + 1) % len(st.session_state.paths_to_html)
|
70 |
st.session_state.html_idx = idx
|
71 |
+
st.session_state.html_key = st.session_state.paths_to_html[
|
72 |
+
st.session_state.html_idx
|
73 |
+
].stem
|
74 |
st.rerun()
|
75 |
|
76 |
elif st.sidebar.button("Previous email", key="previous"):
|
77 |
idx = st.session_state.html_idx
|
78 |
idx = (idx - 1) % len(st.session_state.paths_to_html)
|
79 |
st.session_state.html_idx = idx
|
80 |
+
st.session_state.html_key = st.session_state.paths_to_html[
|
81 |
+
st.session_state.html_idx
|
82 |
+
].stem
|
83 |
st.rerun()
|
84 |
else:
|
85 |
if st.sidebar.button("Quit", key="quit"):
|
86 |
# send email with data or append to jsonl file
|
87 |
+
if user == "your.email@provider.com":
|
88 |
+
st.sidebar.error(f"Please provide your email adress")
|
89 |
+
else:
|
90 |
+
with open("rate_results.jsonl", "a", encoding="utf-8") as jsonl:
|
91 |
+
rating_data = {"user": user, "ratings": st.session_state.html_ratings}
|
92 |
+
jsonl.write(json.dumps(rating_data, ensure_ascii=False))
|
93 |
+
jsonl.write("\n")
|
94 |
+
repo.push_to_hub(commit_message=f"ratings by user {user}")
|
95 |
+
st.sidebar.success(
|
96 |
+
f"Thank you for rating {len(st.session_state.html_ratings)} emails. Registered for user {user}. You can close the webpage."
|
97 |
+
)
|
98 |
+
|
99 |
+
|
100 |
|
101 |
st.session_state
|
rate_results.jsonl
CHANGED
@@ -2,3 +2,9 @@
|
|
2 |
{"user": "simon.nachtergaele@gmail.com", "ratings": {"newsletter_5pm_240222": "Human", "newsletter_5pm_240228_generated": "AI"}}
|
3 |
{"user": "simon.nachtergaele@gmail.com", "ratings": {"newsletter_5pm_240304_generated": "AI", "newsletter_5pm_240228": "AI"}}
|
4 |
{"user": "simon.nachtergaele@gmail.com", "ratings": {"newsletter_5pm_240214": "AI", "newsletter_5pm_240215": "AI", "newsletter_5pm_240306_generated": "AI"}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
{"user": "simon.nachtergaele@gmail.com", "ratings": {"newsletter_5pm_240222": "Human", "newsletter_5pm_240228_generated": "AI"}}
|
3 |
{"user": "simon.nachtergaele@gmail.com", "ratings": {"newsletter_5pm_240304_generated": "AI", "newsletter_5pm_240228": "AI"}}
|
4 |
{"user": "simon.nachtergaele@gmail.com", "ratings": {"newsletter_5pm_240214": "AI", "newsletter_5pm_240215": "AI", "newsletter_5pm_240306_generated": "AI"}}
|
5 |
+
{"user": "simon@twipe.com", "ratings": {}}
|
6 |
+
{"user": "simon@twipe.com", "ratings": {"newsletter_5pm_240222": "AI", "newsletter_5pm_240226": "AI", "newsletter_5pm_240227": "AI", "newsletter_5pm_240305": "AI"}}
|
7 |
+
{"user": "lode@provider.com", "ratings": {"newsletter_5pm_240214_generated": "AI", "newsletter_5pm_240226": "AI"}}
|
8 |
+
{"user": "lode@provider.com", "ratings": {"newsletter_5pm_240214_generated": "AI", "newsletter_5pm_240226": "AI", "newsletter_5pm_240304": "Human"}}
|
9 |
+
{"user": "lode@provider.com", "ratings": {"newsletter_5pm_240214_generated": "AI", "newsletter_5pm_240226": "AI", "newsletter_5pm_240304": "Human", "newsletter_5pm_240227_generated": "AI"}}
|
10 |
+
{"user": "test@provider.com", "ratings": {"newsletter_5pm_240223": "AI", "newsletter_5pm_240228": "AI", "newsletter_5pm_240307": "AI"}}
|