semantic-analyzer / python_engine /engine_server.py
Dwarakesh-V's picture
Copy files from Github to HF spaces
369c2da
import sys
import json
from core import interact_with_user, cache_embeddings
from json_parser import tree_from_json
from tree import struct_tree
from time import time
import os
# Load model once
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
PROJECT_ROOT = os.path.dirname(BASE_DIR)
filepath_root = os.path.join(PROJECT_ROOT, "tree_data")
filepath_naive = "portfolio_tree_data.json"
filepath = os.path.join(filepath_root, filepath_naive)
print("Loading engine...", file=sys.stderr)
s = time()
tree_file = tree_from_json(filepath)
print(f"Loaded tree json in {time() - s:.2f}s", file=sys.stderr)
s = time()
cache_embeddings(tree_file)
print(f"Cached embeddings in {time() - s:.2f}s", file=sys.stderr)
tree_file.save(filepath[:-5] + ".pkl")
s = time()
tree_data = struct_tree.load(filepath[:-5] + ".pkl")
print(f"Loaded tree pickle in {time() - s:.2f}s", file=sys.stderr)
print("READY", file=sys.stderr)
sys.stderr.flush()
# Request loop
while True:
line = sys.stdin.readline()
if not line:
break
try:
data = json.loads(line)
user_query = data.get("query", "")
result = interact_with_user(tree_data, user_query)
sys.stdout.write(json.dumps({"response": result}) + "\n")
sys.stdout.flush()
except Exception as e:
sys.stdout.write(json.dumps({"error": str(e)}) + "\n")
sys.stdout.flush()