Files
Alpaca/src/local_instance.py
T

43 lines
1.2 KiB
Python
Raw Normal View History

2024-05-25 23:03:26 -06:00
# local_instance.py
2024-05-28 11:24:50 -06:00
import subprocess, os, threading
2024-05-25 23:03:26 -06:00
from time import sleep
2024-07-17 21:49:55 -05:00
from logging import getLogger
logger = getLogger(__name__)
2024-05-25 23:03:26 -06:00
instance = None
port = 11435
2024-05-28 11:24:50 -06:00
data_dir = os.getenv("XDG_DATA_HOME")
2024-06-03 16:31:03 -06:00
overrides = {}
2024-05-25 23:03:26 -06:00
2024-05-28 11:24:50 -06:00
def start():
if not os.path.isdir(os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp/ollama')):
os.mkdir(os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp/ollama'))
2024-06-03 16:31:03 -06:00
global instance, overrides
params = overrides.copy()
params["OLLAMA_HOST"] = f"127.0.0.1:{port}" # You can't change this directly sorry :3
params["HOME"] = data_dir
params["TMPDIR"] = os.path.join(os.getenv("XDG_CACHE_HOME"), 'tmp/ollama')
2024-06-03 16:31:03 -06:00
instance = subprocess.Popen(["/app/bin/ollama", "serve"], env={**os.environ, **params}, stderr=subprocess.PIPE, text=True)
2024-07-17 21:49:55 -05:00
logger.info("Starting Alpaca's Ollama instance...")
logger.debug(params)
2024-05-25 23:03:26 -06:00
sleep(1)
2024-07-17 21:49:55 -05:00
logger.info("Started Alpaca's Ollama instance")
2024-05-25 23:03:26 -06:00
def stop():
2024-07-17 21:49:55 -05:00
logger.info("Stopping Alpaca's Ollama instance")
2024-05-30 19:15:19 -06:00
global instance
if instance:
instance.terminate()
2024-05-30 19:15:19 -06:00
instance.wait()
instance = None
2024-07-17 21:49:55 -05:00
logger.info("Stopped Alpaca's Ollama instance")
2024-05-25 23:03:26 -06:00
2024-05-28 11:24:50 -06:00
def reset():
2024-07-17 21:49:55 -05:00
logger.info("Resetting Alpaca's Ollama instance")
2024-05-28 10:29:22 -06:00
stop()
sleep(1)
2024-05-28 11:24:50 -06:00
start()