rank model start and gibo file support
This commit is contained in:
1 parent
94fdd24260
commit
7a4a8e268b
10 files changed
+525
-52
No files matched your search
@@ -15,6 +15,7 @@ from kivymd.uix.boxlayout import MDBoxLayout
|
||||
from kivymd.uix.selectioncontrol import MDCheckbox
|
||||
from kivymd.uix.textfield import MDTextField
|
||||
|
||||
from katrain.core.ai import ai_rank_estimation
|
||||
from katrain.core.constants import (
|
||||
AI_CONFIG_DEFAULT,
|
||||
AI_DEFAULT,
|
||||
@@ -29,6 +30,7 @@ from katrain.core.lang import i18n
|
||||
from katrain.core.utils import PATHS, find_package_resource
|
||||
from katrain.gui.kivyutils import BackgroundMixin, I18NSpinner
|
||||
from katrain.gui.style import DEFAULT_FONT, EVAL_COLORS
|
||||
from katrain.gui.widgets import RankGraph
|
||||
from katrain.gui.widgets.progress_loader import ProgressLoader
|
||||
|
||||
|
||||
@@ -313,6 +315,16 @@ class ConfigAIPopup(QuickConfigGui):
|
||||
self.build_ai_options()
|
||||
self.ai_select.bind(text=self.build_ai_options)
|
||||
|
||||
def estimate_rank_from_options(self,*_args):
|
||||
strategy = self.ai_select.selected[1]
|
||||
options = self.collect_properties(self) # [strategy]
|
||||
print(strategy,options)
|
||||
prefix = f"ai/{strategy}/"
|
||||
options = {k[len(prefix):]:v for k,v in options.items() if k.startswith(prefix)}
|
||||
print(options)
|
||||
dan_rank, model_based = ai_rank_estimation(strategy, options)
|
||||
self.estimated_rank_label.text = ('' if model_based else '~') + RankGraph.rank_label(dan_rank)
|
||||
|
||||
def build_ai_options(self, *_args):
|
||||
strategy = self.ai_select.selected[1]
|
||||
mode_settings = self.katrain.config(f"ai/{strategy}")
|
||||
@@ -325,6 +337,7 @@ class ConfigAIPopup(QuickConfigGui):
|
||||
if values == "bool":
|
||||
widget = LabelledCheckBox(input_property=f"ai/{strategy}/{k}")
|
||||
widget.active = v
|
||||
widget.bind(active=self.estimate_rank_from_options)
|
||||
else:
|
||||
if isinstance(values[0], Tuple): # with descriptions, possibly language-specific
|
||||
fixed_values = [(v, re.sub(r"\[(.*?)\]", lambda m: i18n._(m[1]), l)) for v, l in values]
|
||||
@@ -332,6 +345,7 @@ class ConfigAIPopup(QuickConfigGui):
|
||||
fixed_values = [(v, str(v)) for v in values]
|
||||
widget = LabelledSelectionSlider(values=fixed_values, input_property=f"ai/{strategy}/{k}")
|
||||
widget.set_value(v)
|
||||
widget.textbox.bind(text=self.estimate_rank_from_options)
|
||||
self.options_grid.add_widget(wrap_anchor(widget))
|
||||
else:
|
||||
self.options_grid.add_widget(
|
||||
@@ -339,6 +353,7 @@ class ConfigAIPopup(QuickConfigGui):
|
||||
)
|
||||
for _ in range((self.max_options - len(mode_settings)) * 2):
|
||||
self.options_grid.add_widget(Label(size_hint_x=None))
|
||||
Clock.schedule_once(self.estimate_rank_from_options)
|
||||
|
||||
|
||||
class ConfigPopup(QuickConfigGui):
|
||||
|
||||
Reference in new issue
Block a user