Compare commits

...

5 commits

4 changed files with 26 additions and 2 deletions

View file

@ -5,8 +5,9 @@ Description=A local LLM server
# keep-sorted start
ContainerName=ollama
Image=docker.io/ollama/ollama:latest
Network=ollama.network
PublishPort=11434:11434
Volume=%h/.local/share/ollama:/root/.ollama:Z
Volume=%h/.local/share/ollama:/root/.ollama:ro,z
# keep-sorted end
[Install]

View file

@ -0,0 +1,5 @@
[Unit]
Description=Isolated network for my local LLM server
[Network]
Internal=true

View file

@ -306,6 +306,14 @@
auto-mode-alist))
)
(defun list-ollama-models ()
"Query the local Ollama server for the list of installed models"
(condition-case error-var
(mapcar #'intern (mapcar #'car (mapcar #'split-string (cdr (process-lines "podllama" "list")))))
(error
(message "Failed to list local models: %s" error-var)
())))
(use-package gptel
:hook
; keep-sorted start
@ -318,6 +326,7 @@
; keep-sorted start
(gptel-backend (gptel-get-backend "Ollama"))
(gptel-default-mode 'org-mode)
(gptel-expert-commands t)
(gptel-highlight-methods '(face margin))
(gptel-model 'llama3.2:latest)
; keep-sorted end
@ -328,7 +337,7 @@
)
(gptel-make-ollama "Ollama"
:stream t
:models '(llama3.2:latest)
:models (list-ollama-models)
)
)

9
.local/bin/podllama Executable file
View file

@ -0,0 +1,9 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
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