commit 0385213faf4ddb2ae5e59f8a4ef944a24c19b10e
parent eaf10d0d48203b48d472ec009d6756d185ec7cfe
Author: Vineet Kumar <git@vineetk.net>
Date: Thu, 19 Mar 2026 13:46:57 -0400
demiurge, home: setup gptel in emacs
Diffstat:
2 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/epistemia/files/emacs/.config/emacs/init.el b/epistemia/files/emacs/.config/emacs/init.el
@@ -391,7 +391,9 @@
(age-file-enable)
:custom
(age-default-identity "~/.ssh/id_ed25519")
- (age-default-recipient "~/.ssh/id_ed25519.pub"))
+ (age-default-recipient "~/.ssh/id_ed25519.pub")
+ ;; technically an emacs custom variable, but I feel it's more appropriate here
+ (auth-sources '("~/.authinfo.age")))
;;;;;;;;;;;;;;
;; ORG-MODE ;;
@@ -538,9 +540,40 @@
;;;;;;;;;
;; LLM ;;
;;;;;;;;;
-; TODO: actually configure this to use llama-swap and openrouter
(use-package gptel
- :after transient)
+ :after age ; because of ~/.authinfo.age
+ :config
+ (setf (gptel-get-backend "ChatGPT") nil)
+ (gptel-make-openai "llama-swap"
+ :protocol "http"
+ :host "llm.demiurge.epistemia"
+ :endpoint "/v1/chat/completions"
+ :stream t
+ :models '(Qwen3.5-0.8B
+ Qwen3.5-2B
+ Qwen3.5-4B
+ Qwen3.5-9B
+ Qwen3.5-27B
+ Qwen3.5-35B-A3B_128K
+ Qwen3.5-35B-A3B_256K
+ Qwen3.5-122B-A10B
+ Qwen3.5-397B-A17B
+ Rocinante-X-12B-v1
+ Ministral-3-14B-Instruct-2512
+ Ministral-3-14B-Reasoning-2512
+ Nanbeige4.1-3B))
+ (gptel-make-openai "OpenRouter"
+ :host "openrouter.ai"
+ :endpoint "/api/v1/chat/completions"
+ :stream t
+ :key (auth-source-pick-first-password :host "openrouter.ai")
+ :models '(minimax/minimax-m2.7
+ minimax/minimax-m2.5:free
+ anthropic/claude-haiku-4.5
+ anthropic/claude-sonnet-4.6))
+ :custom
+ (gptel-model "llama-swap:Qwen3.5-35B-A3B_128K")
+ (gptel-temperature nil))
;;;;;;;;;
;; RSS ;;
diff --git a/epistemia/systems/demiurge.scm b/epistemia/systems/demiurge.scm
@@ -316,6 +316,7 @@ rpz:
(nginx-configuration
(server-blocks
(list
+ (nginx-reverse-proxy "llm.demiurge.epistemia" 8080)
(nginx-reverse-proxy "searx.demiurge.epistemia" 8081)
(nginx-reverse-proxy "redlib.demiurge.epistemia" 8085)
(nginx-reverse-proxy "navidrome.demiurge.epistemia" 4533)