update to fsrs-optimizer v5.6.0
Browse files- app.py +14 -3
- requirements.txt +1 -1
app.py
CHANGED
@@ -37,6 +37,8 @@ def optimizer(
|
|
37 |
revlog_start_date,
|
38 |
filter_out_suspended_cards,
|
39 |
requestRetention,
|
|
|
|
|
40 |
progress=gr.Progress(track_tqdm=True),
|
41 |
):
|
42 |
os.chdir(home_path)
|
@@ -50,7 +52,7 @@ def optimizer(
|
|
50 |
raise ValueError(
|
51 |
"File must be an Anki deck/collection file (.apkg or .colpkg) or a csv file."
|
52 |
)
|
53 |
-
if timezone
|
54 |
raise ValueError("Please select a timezone.")
|
55 |
now = datetime.now()
|
56 |
files = [
|
@@ -66,7 +68,7 @@ def optimizer(
|
|
66 |
proj_dir = Path(f"projects/{prefix}/{suffix}")
|
67 |
proj_dir.mkdir(parents=True, exist_ok=True)
|
68 |
os.chdir(proj_dir)
|
69 |
-
optimizer = Optimizer()
|
70 |
if mode == "anki":
|
71 |
optimizer.anki_extract(file.name, filter_out_suspended_cards)
|
72 |
else:
|
@@ -77,7 +79,7 @@ def optimizer(
|
|
77 |
).replace("\n", "\n\n")
|
78 |
optimizer.define_model()
|
79 |
optimizer.pretrain(verbose=False)
|
80 |
-
optimizer.train(verbose=False)
|
81 |
print(optimizer.w)
|
82 |
w_markdown = get_w_markdown(optimizer.w)
|
83 |
optimizer.predict_memory_states()
|
@@ -159,6 +161,13 @@ with gr.Blocks() as demo:
|
|
159 |
value="2006-10-05",
|
160 |
label="Revlog Start Date: Optimize review logs after this date.",
|
161 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
with gr.Row():
|
163 |
btn_plot = gr.Button("Optimize!")
|
164 |
with gr.Row():
|
@@ -184,6 +193,8 @@ with gr.Blocks() as demo:
|
|
184 |
revlog_start_date,
|
185 |
filter_out_suspended_cards,
|
186 |
requestRetention,
|
|
|
|
|
187 |
],
|
188 |
outputs=[w_output, markdown_output, plot_output, files_output],
|
189 |
)
|
|
|
37 |
revlog_start_date,
|
38 |
filter_out_suspended_cards,
|
39 |
requestRetention,
|
40 |
+
enable_short_term,
|
41 |
+
recency_weight,
|
42 |
progress=gr.Progress(track_tqdm=True),
|
43 |
):
|
44 |
os.chdir(home_path)
|
|
|
52 |
raise ValueError(
|
53 |
"File must be an Anki deck/collection file (.apkg or .colpkg) or a csv file."
|
54 |
)
|
55 |
+
if not timezone:
|
56 |
raise ValueError("Please select a timezone.")
|
57 |
now = datetime.now()
|
58 |
files = [
|
|
|
68 |
proj_dir = Path(f"projects/{prefix}/{suffix}")
|
69 |
proj_dir.mkdir(parents=True, exist_ok=True)
|
70 |
os.chdir(proj_dir)
|
71 |
+
optimizer = Optimizer(enable_short_term=enable_short_term)
|
72 |
if mode == "anki":
|
73 |
optimizer.anki_extract(file.name, filter_out_suspended_cards)
|
74 |
else:
|
|
|
79 |
).replace("\n", "\n\n")
|
80 |
optimizer.define_model()
|
81 |
optimizer.pretrain(verbose=False)
|
82 |
+
optimizer.train(verbose=False, recency_weight=recency_weight)
|
83 |
print(optimizer.w)
|
84 |
w_markdown = get_w_markdown(optimizer.w)
|
85 |
optimizer.predict_memory_states()
|
|
|
161 |
value="2006-10-05",
|
162 |
label="Revlog Start Date: Optimize review logs after this date.",
|
163 |
)
|
164 |
+
enable_short_term = gr.Checkbox(
|
165 |
+
value=True,
|
166 |
+
label="Enable short-term component in FSRS model",
|
167 |
+
)
|
168 |
+
recency_weight = gr.Checkbox(
|
169 |
+
value=True, label="Enable recency weight in training"
|
170 |
+
)
|
171 |
with gr.Row():
|
172 |
btn_plot = gr.Button("Optimize!")
|
173 |
with gr.Row():
|
|
|
193 |
revlog_start_date,
|
194 |
filter_out_suspended_cards,
|
195 |
requestRetention,
|
196 |
+
enable_short_term,
|
197 |
+
recency_weight,
|
198 |
],
|
199 |
outputs=[w_output, markdown_output, plot_output, files_output],
|
200 |
)
|
requirements.txt
CHANGED
@@ -1 +1 @@
|
|
1 |
-
FSRS-Optimizer==5.
|
|
|
1 |
+
FSRS-Optimizer==5.6.0
|