File tree Expand file tree Collapse file tree 4 files changed +40
-4
lines changed Expand file tree Collapse file tree 4 files changed +40
-4
lines changed Original file line number Diff line number Diff line change
1
+ import itertools
2
+ import sys
3
+ import threading
4
+ import time
5
+ from contextlib import contextmanager
6
+
7
+ @contextmanager
8
+ def loading_spinner (label , current_step = None , total_steps = None ):
9
+ spinner_done = False
10
+
11
+ def spinner_function ():
12
+ spinner = itertools .cycle (["-" , "/" , "|" , "\\ " ])
13
+ while not spinner_done :
14
+ prefix = f"[{ current_step } /{ total_steps } ] " if current_step is not None and total_steps is not None else ""
15
+ sys .stdout .write (f'\r { prefix } { label } { next (spinner )} ' )
16
+ sys .stdout .flush ()
17
+ time .sleep (0.1 )
18
+ print ("\r " , end = "" )
19
+ print (f"{ prefix } { label } ✓" )
20
+
21
+ spinner_thread = threading .Thread (target = spinner_function )
22
+ spinner_thread .start ()
23
+
24
+ try :
25
+ yield
26
+ finally :
27
+ spinner_done = True
28
+ spinner_thread .join ()
29
+
30
+
Original file line number Diff line number Diff line change 1
1
from typing import List
2
2
3
+ from langdiversity .extras .spinner import loading_spinner
4
+
3
5
from langdiversity .measures import AbstractMeasure
4
6
from langdiversity .models import AbstractBaseModel
5
7
@@ -29,9 +31,13 @@ def generate(self, prompts: List[str]):
29
31
selected_diversity = float ("inf" ) if self .selection == "min" else float ("-inf" )
30
32
31
33
info = []
32
- for prompt in prompts :
33
- responses = self .model .generate (prompt , self .num_responses )
34
- diversity = self .diversity_measure .generate (responses )
34
+
35
+ total_prompts = len (prompts )
36
+ for i , prompt in enumerate (prompts ):
37
+ with loading_spinner (f"Collecting { self .num_responses } responses..." , current_step = i + 1 , total_steps = total_prompts ):
38
+ responses = self .model .generate (prompt , self .num_responses )
39
+ with loading_spinner ("Performing diversity measure calculations..." , current_step = i + 1 , total_steps = total_prompts ):
40
+ diversity = self .diversity_measure .generate (responses )
35
41
36
42
if self .selection == "max" and diversity > selected_diversity :
37
43
selected_diversity = diversity
Original file line number Diff line number Diff line change 8
8
setup (
9
9
name = 'langdiversity' ,
10
10
packages = find_packages (exclude = ['tests' ]),
11
- version = '1.0.0 ' ,
11
+ version = '1.0.1 ' ,
12
12
description = 'A tool to elevate your language models with insightful diversity metrics.' ,
13
13
long_description = long_description ,
14
14
long_description_content_type = "text/markdown" ,
You can’t perform that action at this time.
0 commit comments