Support restricted one-off uses of language models

This commit is contained in:
Ohad Livne 2025-11-15 21:29:19 +02:00
parent f533b3ef76
commit 59583b296a
Signed by: libohad-dev
GPG key ID: 34FDC68B51191A4D

View file

@ -3,7 +3,53 @@
set -euo pipefail set -euo pipefail
IFS=$'\n\t' IFS=$'\n\t'
if ! PARSED_OPTIONS=$(getopt -o "" --long "offline,volatile" --name "$0" -- "$@"); then
echo "Error parsing options." >&2
exit 1
fi
eval set -- "$PARSED_OPTIONS"
offline=false
volatile=false
while true; do
case "$1" in
--offline)
offline=true
shift
;;
--volatile)
volatile=true
shift
;;
--)
shift
break
;;
*)
echo "Internal error!" >&2
exit 1
;;
esac
done
mkdir --parents ~/.local/share/ollama/ mkdir --parents ~/.local/share/ollama/
pod_id=$(podman run --detach --rm --volume ~/.local/share/ollama/:/root/.ollama ollama:latest)
podman exec --interactive --tty "${pod_id}" ollama "$@" if [[ "true" == "${volatile}" ]]; then
podman kill "${pod_id}" > /dev/null PODMAN=(podman --transient-store)
MOUNTS=()
else
PODMAN=(podman)
MOUNTS=(--volume ~/.local/share/ollama/:/root/.ollama)
fi
if [[ "true" == "${offline}" ]]; then
NETWORK=(--network none)
else
NETWORK=()
fi
pod_id=$("${PODMAN[@]}" run --detach --rm "${MOUNTS[@]}" "${NETWORK[@]}" ollama:latest)
"${PODMAN[@]}" exec --interactive --tty "${pod_id}" ollama "$@"
"${PODMAN[@]}" kill "${pod_id}" > /dev/null