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

36 lines
1.1 KiB
Python

import collections
import time
from datetime import datetime
from threading import Semaphore, Thread
from llm_server import opts
from llm_server.integer import ThreadSafeInteger
from llm_server.opts import concurrent_gens
proompters_1_min = 0
concurrent_semaphore = Semaphore(concurrent_gens)
proompts = ThreadSafeInteger(0)
start_time = datetime.now()
class SemaphoreCheckerThread(Thread):
def __init__(self, semaphore):
Thread.__init__(self)
self.semaphore = semaphore
self.values = collections.deque(maxlen=60)
self.prev_semaphore_value = self.semaphore._value
self.daemon = True
def run(self):
global proompters_1_min
while True:
current_semaphore_value = self.semaphore._value
if current_semaphore_value < opts.concurrent_gens and current_semaphore_value != self.prev_semaphore_value:
self.values.append(1)
else:
self.values.append(0)
self.prev_semaphore_value = current_semaphore_value
proompters_1_min = sum(self.values)
# print(proompters_1_min)
time.sleep(1)