diff --git a/.config/emacs/init.el b/.config/emacs/init.el index e3a988b..19992c8 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -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) ) ) diff --git a/.local/bin/llm-import-model b/.local/bin/podllama similarity index 66% rename from .local/bin/llm-import-model rename to .local/bin/podllama index ffd2c6c..947b0d0 100755 --- a/.local/bin/llm-import-model +++ b/.local/bin/podllama @@ -5,5 +5,5 @@ 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 pull "${1}" -podman kill "${pod_id}" +podman exec --interactive --tty "${pod_id}" ollama "$@" +podman kill "${pod_id}" > /dev/null