From 551295549ebe24e9edb6b0c33fdd12a09ff6dd19 Mon Sep 17 00:00:00 2001 From: sanj <67624670+iodrift@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:19:22 -0700 Subject: [PATCH] Auto-update: Thu Aug 8 16:19:22 PDT 2024 --- sijapi/helpers/start.py | 51 ++++++++++++++++++++++++++++------------- sijapi/routers/llm.py | 5 +--- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/sijapi/helpers/start.py b/sijapi/helpers/start.py index c41c54f..69ca112 100644 --- a/sijapi/helpers/start.py +++ b/sijapi/helpers/start.py @@ -53,13 +53,19 @@ def is_local_tmux_session_running(session_name): except subprocess.CalledProcessError: return False -def start_local_server(server): +def start_local_server(server, pull=False, push=False): try: if is_local_tmux_session_running('sijapi'): logging.info("Local sijapi tmux session is already running.") return - command = f"{server['tmux']} new-session -d -s sijapi 'cd {server['path']} && {server['conda_env']}/bin/python -m sijapi'" + git_command = "" + if pull: + git_command = "git pull &&" + elif push: + git_command = "git add -A . && git commit -m \"auto-update\" && git push origin --force &&" + + command = f"{server['tmux']} new-session -d -s sijapi 'cd {server['path']} && {git_command} {server['conda_env']}/bin/python -m sijapi'" logging.info(f"Executing local command: {command}") result = subprocess.run(command, shell=True, check=True, capture_output=True, text=True) logging.info(f"Successfully started sijapi session on local machine") @@ -68,7 +74,7 @@ def start_local_server(server): logging.error(f"Failed to start sijapi session on local machine. Error: {e}") logging.error(f"Error output: {e.stderr}") -def start_remote_server(server): +def start_remote_server(server, pull=False, push=False): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) @@ -86,7 +92,13 @@ def start_remote_server(server): logging.info(f"sijapi session already exists on {server['ts_id']}") return - command = f"{server['tmux']} new-session -d -s sijapi 'cd {server['path']} && {server['conda_env']}/bin/python -m sijapi'" + git_command = "" + if pull: + git_command = "git pull &&" + elif push: + git_command = "git add -A . && git commit -m \"auto-update\" && git push origin --force &&" + + command = f"{server['tmux']} new-session -d -s sijapi 'cd {server['path']} && {git_command} {server['conda_env']}/bin/python -m sijapi'" status, output, error = execute_ssh_command(ssh, command) if status == 0: @@ -145,6 +157,8 @@ def main(): parser.add_argument('--kill', action='store_true', help='Kill the local sijapi tmux session') parser.add_argument('--restart', action='store_true', help='Restart the local sijapi tmux session') parser.add_argument('--all', action='store_true', help='Apply the action to all servers') + parser.add_argument('--pull', action='store_true', help='Pull latest changes before starting the server') + parser.add_argument('--push', action='store_true', help='Push changes before starting the server') args = parser.parse_args() @@ -159,31 +173,36 @@ def main(): kill_local_server() sys.exit(0) - if args.restart: + if args.restart or args.pull or args.push: if args.all: for server in pool: if server['ts_id'] == local_ts_id: kill_local_server() - start_local_server(server) + start_local_server(server, pull=args.pull, push=args.push) else: kill_remote_server(server) - start_remote_server(server) + start_remote_server(server, pull=args.pull, push=args.push) else: kill_local_server() local_server = next(server for server in pool if server['ts_id'] == local_ts_id) - start_local_server(local_server) + start_local_server(local_server, pull=args.pull, push=args.push) sys.exit(0) - # If no specific arguments, run the original script + # If no specific arguments, run the default behavior + local_server = next(server for server in pool if server['ts_id'] == local_ts_id) + if not check_server(local_server['ts_ip'], local_server['app_port'], local_server['ts_id']): + logging.info(f"Local server {local_server['ts_id']} is not responding correctly. Attempting to start...") + kill_local_server() + start_local_server(local_server, push=True) + for server in pool: - if check_server(server['ts_ip'], server['app_port'], server['ts_id']): - logging.info(f"{server['ts_id']} is running and responding correctly.") - else: - logging.info(f"{server['ts_id']} is not responding correctly. Attempting to start...") - if server['ts_id'] == local_ts_id: - start_local_server(server) + if server['ts_id'] != local_ts_id: + if not check_server(server['ts_ip'], server['app_port'], server['ts_id']): + logging.info(f"{server['ts_id']} is not responding correctly. Attempting to start...") + kill_remote_server(server) + start_remote_server(server, pull=True) else: - start_remote_server(server) + logging.info(f"{server['ts_id']} is running and responding correctly.") time.sleep(1) diff --git a/sijapi/routers/llm.py b/sijapi/routers/llm.py index 036f65a..63dcff6 100644 --- a/sijapi/routers/llm.py +++ b/sijapi/routers/llm.py @@ -13,7 +13,6 @@ import aiofiles import os import re import glob -import chromadb from openai import OpenAI import uuid import json @@ -40,9 +39,7 @@ def warn(text: str): logger.warning(text) def err(text: str): logger.error(text) def crit(text: str): logger.critical(text) -# Initialize chromadb client -client = chromadb.Client() -# OBSIDIAN_CHROMADB_COLLECTION = client.create_collection("obsidian") + VISION_MODELS = ["llava-phi3", "moondream", "llava", "llava-llama3", "llava:34b", "llava:13b-v1.5-q8_0"] # Function to read all markdown files in the folder