Update slop_with_models.py

This commit is contained in:
Russell Ballestrini 2025-03-20 04:11:45 +00:00
parent 2999b83177
commit 20977e0967

View file

@ -8,10 +8,12 @@ import logging
from flask_swagger_ui import get_swaggerui_blueprint from flask_swagger_ui import get_swaggerui_blueprint
# Configure logging # Configure logging
DATA_DIR = "data"
LOG_FILE = os.path.join(DATA_DIR, "slop_with_models.log")
logging.basicConfig( logging.basicConfig(
level=logging.DEBUG, level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(message)s", format="%(asctime)s - %(levelname)s - %(message)s",
handlers=[logging.FileHandler("slop_with_models.log"), logging.StreamHandler()] handlers=[logging.FileHandler(LOG_FILE), logging.StreamHandler()]
) )
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -29,11 +31,6 @@ app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL)
MODEL_CLIENT_MAP = {} MODEL_CLIENT_MAP = {}
# Memory setup # Memory setup
DATA_DIR = "data"
# Memory endpoints with lock and timeout
# Seconds to wait for lock acquisition
LOCK_TIMEOUT = 2
MEMORY_FILE = os.path.join(DATA_DIR, "memory.json") MEMORY_FILE = os.path.join(DATA_DIR, "memory.json")
memory_lock = Lock() memory_lock = Lock()
@ -50,7 +47,7 @@ def load_memory_from_file():
data = json.load(f) data = json.load(f)
logger.debug(f"Loaded memory from {MEMORY_FILE}: {data}") logger.debug(f"Loaded memory from {MEMORY_FILE}: {data}")
return data return data
logger.info(f"No memory file found at {MEMORY_FILE}, starting with empty memory") logger.debug(f"No memory file found at {MEMORY_FILE}, returning empty dict")
return {} return {}
except Exception as e: except Exception as e:
logger.error(f"Error loading memory from {MEMORY_FILE}: {str(e)}", exc_info=True) logger.error(f"Error loading memory from {MEMORY_FILE}: {str(e)}", exc_info=True)
@ -64,10 +61,6 @@ def save_memory_to_file(memory_data):
except Exception as e: except Exception as e:
logger.error(f"Error saving memory to {MEMORY_FILE}: {str(e)}", exc_info=True) logger.error(f"Error saving memory to {MEMORY_FILE}: {str(e)}", exc_info=True)
# Initialize memory from file
memory = load_memory_from_file()
logger.info("Memory initialized from file")
# Load endpoints # Load endpoints
ENDPOINTS = [] ENDPOINTS = []
for i in range(1000): for i in range(1000):
@ -132,6 +125,9 @@ tools = {
} }
resources = {"hello": {"id": "hello", "content": "Hello, SLOP!"}} resources = {"hello": {"id": "hello", "content": "Hello, SLOP!"}}
# Memory endpoints with lock and timeout
LOCK_TIMEOUT = 2 # Seconds to wait for lock acquisition
@app.route("/memory", methods=["POST"]) @app.route("/memory", methods=["POST"])
def store_memory(): def store_memory():
logger.info("Received /memory POST request") logger.info("Received /memory POST request")
@ -143,6 +139,7 @@ def store_memory():
key, value = data["key"], data["value"] key, value = data["key"], data["value"]
if memory_lock.acquire(timeout=LOCK_TIMEOUT): if memory_lock.acquire(timeout=LOCK_TIMEOUT):
try: try:
memory = load_memory_from_file() # Always load fresh state
memory[key] = value memory[key] = value
save_memory_to_file(memory) save_memory_to_file(memory)
logger.info(f"Stored in memory: {key} = {value}") logger.info(f"Stored in memory: {key} = {value}")
@ -159,6 +156,7 @@ def get_memory(key):
logger.info(f"Received /memory/{key} GET request") logger.info(f"Received /memory/{key} GET request")
if memory_lock.acquire(timeout=LOCK_TIMEOUT): if memory_lock.acquire(timeout=LOCK_TIMEOUT):
try: try:
memory = load_memory_from_file() # Always load fresh state
value = memory.get(key) value = memory.get(key)
logger.debug(f"Retrieved memory for {key}: {value}") logger.debug(f"Retrieved memory for {key}: {value}")
if value is None: if value is None:
@ -175,6 +173,7 @@ def list_memory():
logger.info("Received /memory GET request") logger.info("Received /memory GET request")
if memory_lock.acquire(timeout=LOCK_TIMEOUT): if memory_lock.acquire(timeout=LOCK_TIMEOUT):
try: try:
memory = load_memory_from_file() # Always load fresh state
keys = list(memory.keys()) keys = list(memory.keys())
memory_state = memory.copy() memory_state = memory.copy()
logger.debug(f"Memory keys: {keys}") logger.debug(f"Memory keys: {keys}")
@ -191,6 +190,7 @@ def delete_memory(key):
logger.info(f"Received /memory/{key} DELETE request") logger.info(f"Received /memory/{key} DELETE request")
if memory_lock.acquire(timeout=LOCK_TIMEOUT): if memory_lock.acquire(timeout=LOCK_TIMEOUT):
try: try:
memory = load_memory_from_file() # Always load fresh state
if key not in memory: if key not in memory:
logger.warning(f"Key not found for deletion: {key}") logger.warning(f"Key not found for deletion: {key}")
return jsonify({"error": "Key not found"}), 404 return jsonify({"error": "Key not found"}), 404