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

40 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
from llm_server.routes.cache import redis
# proompters_1_min = 0
concurrent_semaphore = Semaphore(concurrent_gens)
start_time = datetime.now()
def get_count():
count = redis.get('proompts')
if count is None:
count = 0
else:
count = int(count)
return count
class SemaphoreCheckerThread(Thread):
proompters_1_min = 0
recent_prompters = {}
def __init__(self, semaphore):
Thread.__init__(self)
self.semaphore = semaphore
self.daemon = True
def run(self):
while True:
current_time = time.time()
SemaphoreCheckerThread.recent_prompters = {ip: timestamp for ip, timestamp in SemaphoreCheckerThread.recent_prompters.items() if current_time - timestamp <= 60}
SemaphoreCheckerThread.proompters_1_min = len(SemaphoreCheckerThread.recent_prompters)
time.sleep(1)