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
|
||||
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/
|
||||
pod_id=$(podman run --detach --rm --volume ~/.local/share/ollama/:/root/.ollama ollama:latest)
|
||||
podman exec --interactive --tty "${pod_id}" ollama "$@"
|
||||
podman kill "${pod_id}" > /dev/null
|
||||
|
||||
if [[ "true" == "${volatile}" ]]; then
|
||||
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