2023-08-21 23:48:06 -06:00
|
|
|
import collections
|
|
|
|
import time
|
2023-08-21 21:28:52 -06:00
|
|
|
from datetime import datetime
|
2023-08-21 23:48:06 -06:00
|
|
|
from threading import Semaphore, Thread
|
2023-08-21 21:28:52 -06:00
|
|
|
|
2023-08-21 23:50:41 -06:00
|
|
|
from llm_server import opts
|
2023-08-21 21:28:52 -06:00
|
|
|
from llm_server.integer import ThreadSafeInteger
|
2023-08-22 00:26:46 -06:00
|
|
|
from llm_server.opts import concurrent_gens
|
2023-08-21 21:28:52 -06:00
|
|
|
|
2023-08-21 23:48:06 -06:00
|
|
|
proompters_1_min = 0
|
2023-08-22 00:26:46 -06:00
|
|
|
concurrent_semaphore = Semaphore(concurrent_gens)
|
2023-08-21 21:28:52 -06:00
|
|
|
proompts = ThreadSafeInteger(0)
|
|
|
|
start_time = datetime.now()
|
|
|
|
|
2023-08-21 23:48:06 -06:00
|
|
|
|
|
|
|
class SemaphoreCheckerThread(Thread):
|
|
|
|
def __init__(self, semaphore):
|
|
|
|
Thread.__init__(self)
|
|
|
|
self.semaphore = semaphore
|
|
|
|
self.values = collections.deque(maxlen=60)
|
|
|
|
self.daemon = True
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
global proompters_1_min
|
|
|
|
while True:
|
2023-08-22 21:55:03 -06:00
|
|
|
# If the semaphore value is less than the maximum, a prompter has sent a prompt
|
|
|
|
if opts.concurrent_gens > self.semaphore._value:
|
|
|
|
self.values.append(1)
|
|
|
|
else:
|
|
|
|
self.values.append(0)
|
|
|
|
proompters_1_min = sum(self.values)
|
2023-08-21 23:48:06 -06:00
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
thread = SemaphoreCheckerThread(concurrent_semaphore)
|
|
|
|
thread.start()
|