Download session.py from KumaTea/KumaGLM: direct link, hf CLI and curl.
- Browser
- Download file 2.34 kB
-
https://huggingface.co/spaces/KumaTea/KumaGLM/resolve/main/session.py
- Command line
-
hf download hf://spaces/KumaTea/KumaGLM/session.py
-
curl -L -o session.py https://huggingface.co/spaces/KumaTea/KumaGLM/resolve/main/session.py
2.34 kB
| import os | |
| import psutil | |
| import logging | |
| from pathlib import Path | |
| logging.basicConfig( | |
| format='%(asctime)s %(levelname)-8s %(message)s', | |
| level=logging.INFO, | |
| datefmt='%m/%d %H:%M:%S') | |
| logger = logging.getLogger(__name__) | |
| def log_sys_info(): | |
| cpu_cores = psutil.cpu_count() | |
| # cpu_freq = '{:.2f}'.format(psutil.cpu_freq().max / 1000) + 'GHz' | |
| cpu_percent = '{:.2f}'.format(psutil.cpu_percent()) + '%' | |
| mem = psutil.virtual_memory() | |
| mem_total = '{:.2f}'.format(mem.total / 1024 / 1024 / 1024) + 'GB' | |
| mem_used = '{:.2f}'.format(mem.used / 1024 / 1024 / 1024) + 'GB' | |
| mem_percent = '{:.2f}'.format(mem.percent) + '%' | |
| disk = psutil.disk_usage('.') | |
| disk_total = '{:.2f}'.format(disk.total / 1024 / 1024 / 1024) + 'GB' | |
| disk_used = '{:.2f}'.format(disk.used / 1024 / 1024 / 1024) + 'GB' | |
| disk_percent = '{:.2f}'.format(disk.percent) + '%' | |
| logger.info('======== SYSTEM INFO =========') | |
| logger.info(f'CPU: {cpu_cores} cores, {cpu_percent} used') | |
| logger.info(f'RAM: {mem_used} / {mem_total}, {mem_percent} used') | |
| logger.info(f'DISK: {disk_used} / {disk_total}, {disk_percent} used') | |
| logger.info('==============================') | |
| class CHAT_DB: | |
| def __init__(self): | |
| self.prompts = {} | |
| self.results = {} | |
| self.index = 1 | |
| self.lockfile = '.lock' | |
| def set(self, index, prompt=None, result=None): | |
| assert prompt or result | |
| if prompt: | |
| if index in self.prompts: | |
| raise ValueError('Prompt already exists') | |
| self.prompts[index] = prompt | |
| self.index += 1 | |
| if result: | |
| self.results[index] = result | |
| def lock(self): | |
| if not os.path.exists(self.lockfile): | |
| Path(self.lockfile).touch(exist_ok=True) | |
| def unlock(self): | |
| if os.path.exists(self.lockfile): | |
| os.remove(self.lockfile) | |
| def islocked(self): | |
| return os.path.exists(self.lockfile) | |
| def clean(self): | |
| if len(self.prompts) > 100: | |
| self.prompts = dict(list(self.prompts.items())[-100:]) | |
| k = list(set(self.prompts.keys()).intersection(set(self.results.keys()))) # keys to preserve | |
| self.prompts = {i: self.prompts[i] for i in k} | |
| self.results = {i: self.results[i] for i in k} | |
| log_sys_info() | |
| db = CHAT_DB() | |