Support restricted one-off uses of language models
This commit is contained in:
parent
23c8d41cbd
commit
77f3b175ef
1 changed files with 49 additions and 3 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue