local-llm-server/llm_server/routes/stats.py

37 lines
1.0 KiB
Python
Raw Normal View History

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:
# 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()