localai
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env bash
# shellcheck disable=SC2034
set -euo pipefail
SCRIPT_PATH="$(readlink -f "${BASH_SOURCE[0]}")"
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
# shellcheck source=/dev/null
. "$SCRIPT_DIR/lib/bootstrap.sh" 2>/dev/null ||
. "$SCRIPT_DIR/../lib/bootstrap.sh" 2>/dev/null ||
{ echo "Error: missing LocalAI bootstrap library: lib/bootstrap.sh" >&2; exit 1; }
source_localai_cli_lib() {
local name="$1"
local candidate
for candidate in "$SCRIPT_DIR/lib/$name" "$SCRIPT_DIR/../lib/$name"; do
if [ -f "$candidate" ]; then
# shellcheck source=/dev/null
. "$candidate"
return 0
fi
done
if [[ "$name" == cli/* ]] && [ "${LOCALAI_CLI_LIB_REPAIR:-0}" != "1" ] && [ -x "$SCRIPT_DIR/update-local-ai.sh" ]; then
echo "Warning: missing LocalAI CLI module $name; attempting repair with $SCRIPT_DIR/update-local-ai.sh --no-start" >&2
if LOCALAI_CLI_LIB_REPAIR=1 "$SCRIPT_DIR/update-local-ai.sh" --no-start >/dev/null; then
for candidate in "$SCRIPT_DIR/lib/$name" "$SCRIPT_DIR/../lib/$name"; do
if [ -f "$candidate" ]; then
# shellcheck source=/dev/null
. "$candidate"
return 0
fi
done
fi
fi
echo "Error: missing LocalAI library: $name" >&2
if [[ "$name" == cli/* ]]; then
echo "Run the direct updater to repair the installed CLI modules:" >&2
echo " $SCRIPT_DIR/update-local-ai.sh" >&2
fi
exit 1
}
AI_DIR="$(resolve_ai_dir)"
BIN_DIR="$AI_DIR/$LOCALAI_BIN_SUBDIR"
CONF_DIR="$AI_DIR/$LOCALAI_CONF_SUBDIR"
MODELS_DIR="$AI_DIR/$LOCALAI_MODELS_SUBDIR"
CONFIG="$CONF_DIR/$LOCALAI_CONFIG_FILE"
KEYS_DIR="$CONF_DIR/$LOCALAI_KEYS_SUBDIR"
KEYS_FILE="$KEYS_DIR/$LOCALAI_KEYS_FILE"
LOG_FILE="$AI_DIR/$LOCALAI_LOGS_SUBDIR/llama-swap.log"
PORT_FILE="$CONF_DIR/$LOCALAI_PORT_FILE"
PID_FILE="$CONF_DIR/$LOCALAI_PID_FILE"
PID_START_FILE="$CONF_DIR/$LOCALAI_PID_FILE.start"
SERVICE_UNIT="${LOCALAI_SERVICE_NAME%.service}"
SERVICE_FILE="$LOCALAI_SYSTEMD_USER_DIR/$LOCALAI_SERVICE_NAME"
resolve_llama_swap_paths
source_localai_cli_lib cli/core.sh
source_localai_cli_lib cli/service.sh
source_localai_cli_lib cli/models.sh
source_localai_cli_lib cli/suggest.sh
source_localai_cli_lib cli/lifecycle.sh
source_localai_cli_lib cli/key.sh
source_localai_cli_lib install.sh
source_localai_cli_lib cuda.sh
source_localai_cli_lib cli/switch.sh
source_localai_cli_lib cli/backend.sh
COMMAND="${1:-help}"
if [ "$#" -gt 0 ]; then
shift
fi
case "$COMMAND" in
start|stop|restart)
service_cmd "$COMMAND"
;;
reload)
reload_cmd "$@"
;;
status)
status_cmd
;;
check)
check_cmd "$@"
;;
logs)
logs_cmd
;;
models)
models_cmd
;;
ui)
ui_cmd "$@"
;;
suggest)
suggest_cmd "$@"
;;
key)
key_cmd "$@"
;;
load)
load_cmd "$@"
;;
unload)
unload_cmd "$@"
;;
update)
update_cmd "$@"
;;
switch)
switch_cmd "$@"
;;
backend)
backend_cmd "$@"
;;
rollback)
rollback_cmd "$@"
;;
version)
version_cmd
;;
uninstall)
uninstall_cmd "$@"
;;
help|-h|--help)
usage
;;
*)
usage >&2
exit 2
;;
esac