modified: slop_with_models.py
This commit is contained in:
parent
33da167c93
commit
0fcd05a7a1
1 changed files with 17 additions and 7 deletions
|
|
@ -68,6 +68,8 @@ def save_memory_to_file(memory_data):
|
|||
try:
|
||||
with open(MEMORY_FILE, "w") as f:
|
||||
json.dump(memory_data, f)
|
||||
f.flush() # Ensure write is completed
|
||||
os.fsync(f.fileno()) # Sync to disk
|
||||
logger.debug(f"Saved memory to {MEMORY_FILE}: {memory_data}")
|
||||
except Exception as e:
|
||||
logger.error(f"Error saving memory to {MEMORY_FILE}: {str(e)}", exc_info=True)
|
||||
|
|
@ -111,6 +113,8 @@ def save_resources_to_file(resources_data):
|
|||
try:
|
||||
with open(RESOURCES_FILE, "w") as f:
|
||||
json.dump(resources_data, f)
|
||||
f.flush() # Ensure write is completed
|
||||
os.fsync(f.fileno()) # Sync to disk
|
||||
logger.debug(f"Saved resources to {RESOURCES_FILE}: {resources_data}")
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
|
|
@ -247,7 +251,7 @@ tools = {
|
|||
},
|
||||
}
|
||||
|
||||
# Load resources from file at startup
|
||||
# Load resources from file at startup (initial load only)
|
||||
resources = load_resources_from_file()
|
||||
|
||||
|
||||
|
|
@ -255,6 +259,7 @@ resources = load_resources_from_file()
|
|||
def get_or_create_wallet(agent_id):
|
||||
wallet_key = f"casino/wallet/agent_{agent_id}"
|
||||
with resource_lock:
|
||||
resources = load_resources_from_file() # Always load fresh
|
||||
if wallet_key not in resources:
|
||||
resources[wallet_key] = {
|
||||
"id": wallet_key,
|
||||
|
|
@ -268,6 +273,7 @@ def get_or_create_wallet(agent_id):
|
|||
def get_or_create_stats(game, agent_id):
|
||||
stats_key = f"casino/{game}/stats/agent_{agent_id}"
|
||||
with resource_lock:
|
||||
resources = load_resources_from_file() # Always load fresh
|
||||
if stats_key not in resources:
|
||||
if game == "slots":
|
||||
resources[stats_key] = {
|
||||
|
|
@ -299,10 +305,8 @@ def get_or_create_stats(game, agent_id):
|
|||
|
||||
def update_resource(resource_id, new_content):
|
||||
with resource_lock:
|
||||
# If the resource doesn't exist, initialize it with the correct structure
|
||||
if resource_id not in resources:
|
||||
resources[resource_id] = {"id": resource_id, "content": None}
|
||||
resources[resource_id]["content"] = new_content
|
||||
resources = load_resources_from_file() # Always load fresh
|
||||
resources[resource_id] = {"id": resource_id, "content": new_content}
|
||||
save_resources_to_file(resources)
|
||||
logger.debug(f"Updated resource {resource_id}: {new_content}")
|
||||
|
||||
|
|
@ -438,7 +442,12 @@ def play_blackjack(bet, agent_id, game_id=None, action=None):
|
|||
# Continue an existing game
|
||||
game_key = f"casino/blackjack/games/{game_id}"
|
||||
with resource_lock:
|
||||
resources = load_resources_from_file()
|
||||
logger.debug(
|
||||
f"Checking for game {game_key} in resources: {list(resources.keys())}"
|
||||
)
|
||||
if game_key not in resources:
|
||||
logger.warning(f"Game {game_id} not found in resources")
|
||||
return {"error": f"Game {game_id} not found"}
|
||||
game_state = resources[game_key]["content"]
|
||||
|
||||
|
|
@ -447,6 +456,7 @@ def play_blackjack(bet, agent_id, game_id=None, action=None):
|
|||
if game_state["status"] != "active":
|
||||
return {"error": "This game is already complete"}
|
||||
if action not in ["hit", "stand"]:
|
||||
logger.warning(f"Invalid action '{action}' received for game {game_id}")
|
||||
return {"error": "Action must be 'hit' or 'stand'"}
|
||||
|
||||
wallet = get_or_create_wallet(agent_id)
|
||||
|
|
@ -761,6 +771,7 @@ def use_tool(tool_id):
|
|||
def list_resources():
|
||||
logger.info("Received /resources request")
|
||||
with resource_lock:
|
||||
resources = load_resources_from_file()
|
||||
resource_list = list(resources.values())
|
||||
logger.debug(f"Returning resources: {resource_list}")
|
||||
return jsonify({"resources": resource_list}), 200
|
||||
|
|
@ -770,8 +781,6 @@ def list_resources():
|
|||
def get_resource(resource_id):
|
||||
logger.info(f"Received /resources/{resource_id} GET request")
|
||||
with resource_lock:
|
||||
# Reload resources to ensure we have the latest state
|
||||
global resources
|
||||
resources = load_resources_from_file()
|
||||
logger.debug(f"Resources after reload: {list(resources.keys())}")
|
||||
if resource_id in resources:
|
||||
|
|
@ -802,6 +811,7 @@ def update_resource_endpoint(resource_id):
|
|||
logger.warning(f"Invalid resource update request: {data}")
|
||||
return jsonify({"error": "Missing 'content'"}), 400
|
||||
with resource_lock:
|
||||
resources = load_resources_from_file()
|
||||
resources[resource_id] = {"id": resource_id, "content": data["content"]}
|
||||
save_resources_to_file(resources)
|
||||
logger.info(f"Updated/created resource {resource_id}: {resources[resource_id]}")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue