Compare commits
9 commits
157a03687d
...
ed44c92fc9
| Author | SHA1 | Date | |
|---|---|---|---|
| ed44c92fc9 | |||
| d187c19d71 | |||
| 7998f20d52 | |||
| a019feb7cd | |||
| 131511a2f7 | |||
| 59583b296a | |||
| f533b3ef76 | |||
| 89d667542a | |||
| 7699aa4084 |
5 changed files with 128 additions and 32 deletions
|
|
@ -11,7 +11,7 @@ Volume=%h/.local/share/ollama:/root/.ollama:ro,z
|
||||||
# keep-sorted end
|
# keep-sorted end
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=default.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
# keep-sorted start
|
# keep-sorted start
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
)
|
)
|
||||||
load-path))
|
load-path))
|
||||||
:config
|
:config
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||||
(display-battery-mode)
|
(display-battery-mode)
|
||||||
(display-time-mode)
|
(display-time-mode)
|
||||||
|
|
@ -42,9 +42,9 @@
|
||||||
(put 'dired-find-alternate-file 'disabled nil)
|
(put 'dired-find-alternate-file 'disabled nil)
|
||||||
(set-default-file-modes #o750)
|
(set-default-file-modes #o750)
|
||||||
(windmove-default-keybindings 'super)
|
(windmove-default-keybindings 'super)
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
:custom
|
:custom
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(auto-save-interval 20)
|
(auto-save-interval 20)
|
||||||
(auto-save-visited-mode t)
|
(auto-save-visited-mode t)
|
||||||
(auto-save-visited-predicate #'should-auto-save-current-buffer)
|
(auto-save-visited-predicate #'should-auto-save-current-buffer)
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
(inhibit-startup-screen t)
|
(inhibit-startup-screen t)
|
||||||
(show-paren-context-when-offscreen 'overlay)
|
(show-paren-context-when-offscreen 'overlay)
|
||||||
(xref-search-program 'ripgrep)
|
(xref-search-program 'ripgrep)
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package diminish)
|
(use-package diminish)
|
||||||
|
|
@ -75,10 +75,10 @@
|
||||||
("<C-tab>" . dired-subtree-cycle)
|
("<C-tab>" . dired-subtree-cycle)
|
||||||
("<S-iso-lefttab>" . dired-subtree-remove))
|
("<S-iso-lefttab>" . dired-subtree-remove))
|
||||||
:config
|
:config
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(defadvice dired-subtree-cycle (after add-icons activate) (revert-buffer))
|
(defadvice dired-subtree-cycle (after add-icons activate) (revert-buffer))
|
||||||
(defadvice dired-subtree-toggle (after add-icons activate) (revert-buffer))
|
(defadvice dired-subtree-toggle (after add-icons activate) (revert-buffer))
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
:custom
|
:custom
|
||||||
(dired-subtree-use-backgrounds nil))
|
(dired-subtree-use-backgrounds nil))
|
||||||
|
|
||||||
|
|
@ -157,7 +157,7 @@
|
||||||
("M-." . org-open-at-point)
|
("M-." . org-open-at-point)
|
||||||
("M-," . org-mark-ring-goto))
|
("M-," . org-mark-ring-goto))
|
||||||
:custom
|
:custom
|
||||||
; keep-sorted start block=yes
|
;; keep-sorted start block=yes
|
||||||
(org-agenda-start-on-weekday 0)
|
(org-agenda-start-on-weekday 0)
|
||||||
(org-agenda-weekend-days '(5 6))
|
(org-agenda-weekend-days '(5 6))
|
||||||
(org-default-notes-file "~/Documents/notes.org")
|
(org-default-notes-file "~/Documents/notes.org")
|
||||||
|
|
@ -172,7 +172,7 @@
|
||||||
"** TODO %?\n %U")
|
"** TODO %?\n %U")
|
||||||
))
|
))
|
||||||
(org-clock-sound "~/Music/single-ding.wav")
|
(org-clock-sound "~/Music/single-ding.wav")
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package org-contrib)
|
(use-package org-contrib)
|
||||||
|
|
@ -217,7 +217,6 @@
|
||||||
(use-package apheleia
|
(use-package apheleia
|
||||||
:config
|
:config
|
||||||
(apheleia-global-mode)
|
(apheleia-global-mode)
|
||||||
(setf (alist-get 'emacs-lisp-mode apheleia-mode-alist nil 'remove) nil)
|
|
||||||
(setf (alist-get 'ruff-isort apheleia-formatters)
|
(setf (alist-get 'ruff-isort apheleia-formatters)
|
||||||
'("ruff" "check"
|
'("ruff" "check"
|
||||||
"-n"
|
"-n"
|
||||||
|
|
@ -236,18 +235,18 @@
|
||||||
(use-package flymake
|
(use-package flymake
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:bind (:map flymake-mode-map
|
:bind (:map flymake-mode-map
|
||||||
("C-c C-l" . flymake-show-buffer-diagnostics)
|
("C-c C-l" . flymake-show-buffer-diagnostics)
|
||||||
("C-x C-l" . flymake-show-project-diagnostics)
|
("C-x C-l" . flymake-show-project-diagnostics)
|
||||||
("C-c C-n" . flymake-goto-next-error)
|
("C-c C-n" . flymake-goto-next-error)
|
||||||
("C-c C-p" . flymake-goto-prev-error))
|
("C-c C-p" . flymake-goto-prev-error))
|
||||||
:custom
|
:custom
|
||||||
(flymake-show-diagnostics-at-end-of-line t)
|
(flymake-show-diagnostics-at-end-of-line t)
|
||||||
)
|
)
|
||||||
|
|
||||||
; Note: debugging Python in a virtualenv requires debugpy to be installed inside the venv
|
;; Note: debugging Python in a virtualenv requires debugpy to be installed inside the venv
|
||||||
(use-package dape)
|
(use-package dape)
|
||||||
|
|
||||||
; Requires poetry to be installed
|
;; Requires poetry to be installed
|
||||||
(use-package poetry)
|
(use-package poetry)
|
||||||
|
|
||||||
(defun load-python-env ()
|
(defun load-python-env ()
|
||||||
|
|
@ -278,10 +277,10 @@
|
||||||
:config
|
:config
|
||||||
(require 'ein-notebook)
|
(require 'ein-notebook)
|
||||||
:custom
|
:custom
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(ein:jupyter-default-notebook-directory "~/Projects/notebooks")
|
(ein:jupyter-default-notebook-directory "~/Projects/notebooks")
|
||||||
(ein:output-area-inlined-images t)
|
(ein:output-area-inlined-images t)
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package direnv
|
(use-package direnv
|
||||||
|
|
@ -306,29 +305,46 @@
|
||||||
auto-mode-alist))
|
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)
|
||||||
|
())))
|
||||||
|
|
||||||
|
(defun enrich-ollama-models (available library)
|
||||||
|
"Enrich the available models with metadata from the library of known models."
|
||||||
|
(mapcar
|
||||||
|
(lambda (model)
|
||||||
|
(seq-find (lambda (x) (eq (car x) model)) library model))
|
||||||
|
available))
|
||||||
|
|
||||||
(use-package gptel
|
(use-package gptel
|
||||||
:hook
|
:hook
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(gptel-mode . gptel-highlight-mode)
|
(gptel-mode . gptel-highlight-mode)
|
||||||
(gptel-mode . visual-line-mode)
|
(gptel-mode . visual-line-mode)
|
||||||
(gptel-post-response . gptel-end-of-response)
|
(gptel-post-response . gptel-end-of-response)
|
||||||
(gptel-post-stream . gptel-auto-scroll)
|
(gptel-post-stream . gptel-auto-scroll)
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
:custom
|
:custom
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(gptel-backend (gptel-get-backend "Ollama"))
|
(gptel-backend (gptel-get-backend "Ollama"))
|
||||||
(gptel-default-mode 'org-mode)
|
(gptel-default-mode 'org-mode)
|
||||||
|
(gptel-expert-commands t)
|
||||||
(gptel-highlight-methods '(face margin))
|
(gptel-highlight-methods '(face margin))
|
||||||
(gptel-model 'llama3.2:latest)
|
(gptel-model 'llama3.2:latest)
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
:preface
|
:preface
|
||||||
|
(load "local-models.el")
|
||||||
(gptel-make-anthropic "Claude"
|
(gptel-make-anthropic "Claude"
|
||||||
:stream t
|
:stream t
|
||||||
:key 'gptel-api-key-from-auth-source
|
:key 'gptel-api-key-from-auth-source
|
||||||
)
|
)
|
||||||
(gptel-make-ollama "Ollama"
|
(gptel-make-ollama "Ollama"
|
||||||
:stream t
|
:stream t
|
||||||
:models '(llama3.2:latest)
|
:models (enrich-ollama-models (list-ollama-models) gptel--local-models)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -339,10 +355,10 @@
|
||||||
(require 'emms-setup)
|
(require 'emms-setup)
|
||||||
(emms-all)
|
(emms-all)
|
||||||
:custom
|
:custom
|
||||||
; keep-sorted start
|
;; keep-sorted start
|
||||||
(emms-info-functions '(emms-info-native))
|
(emms-info-functions '(emms-info-native))
|
||||||
(emms-player-list '(emms-player-mpv))
|
(emms-player-list '(emms-player-mpv))
|
||||||
; keep-sorted end
|
;; keep-sorted end
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun my-qr-selection ()
|
(defun my-qr-selection ()
|
||||||
|
|
|
||||||
37
.config/emacs/site-lisp/local-models.el
Normal file
37
.config/emacs/site-lisp/local-models.el
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
(defconst gptel--local-models
|
||||||
|
'(
|
||||||
|
;; keep-sorted start
|
||||||
|
(
|
||||||
|
hf.co/Orenguteng/Llama-3.1-8B-Lexi-Uncensored-V2-GGUF:latest
|
||||||
|
:description "Uncensored model based on Llama-3.1-8b-Instruct"
|
||||||
|
:context-window 128
|
||||||
|
:cutoff-date "2023-12"
|
||||||
|
)
|
||||||
|
(
|
||||||
|
hf.co/TheBloke/MythoMax-L2-13B-GGUF:latest
|
||||||
|
:description "Proficient at both roleplaying and storywriting"
|
||||||
|
:context-window 32
|
||||||
|
)
|
||||||
|
(
|
||||||
|
hf.co/bartowski/cognitivecomputations_Dolphin-Mistral-24B-Venice-Edition-GGUF:latest
|
||||||
|
:description "Uncensored version of Mistral 24B"
|
||||||
|
:context-window 32
|
||||||
|
:cutoff-date "2023-10"
|
||||||
|
)
|
||||||
|
(
|
||||||
|
llama3.2:latest
|
||||||
|
:description "Instruction-tuned model optimized for multilingual dialogue"
|
||||||
|
:context-window 128
|
||||||
|
:cutoff-date "2023-12"
|
||||||
|
)
|
||||||
|
(
|
||||||
|
mollysama/rwkv-7-g0a3:13.3b
|
||||||
|
:description "Pure RNN reasoning model, suitable for post-training and fine-tuning"
|
||||||
|
:context-window 1000
|
||||||
|
:cutoff-date "2023-10"
|
||||||
|
)
|
||||||
|
;; keep-sorted end
|
||||||
|
)
|
||||||
|
"List of known local models and associated properties.
|
||||||
|
Refer to https://gptel.org/manual.html#models for a description of supported properties"
|
||||||
|
)
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,7 @@ cargo_update() {
|
||||||
}
|
}
|
||||||
|
|
||||||
pipx_update() {
|
pipx_update() {
|
||||||
for venv in $(pipx list --json | jq --raw-output ".venvs | keys[]")
|
pipx upgrade-all
|
||||||
do
|
|
||||||
pipx upgrade "${venv}"
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
git_sync_update() {
|
git_sync_update() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue