Files
passepartout/skills/org-skill-llama-backend.org
Amr Gharbeia 1eb8a3db92 refactor(skills): use %%SKILLS_DIR%% placeholder for portable tangling
- Updated 22 skill org files to use %%SKILLS_DIR%% placeholder
- Modified opencortex.sh setup to replace placeholder with XDG path
- Modified doctor_repair to handle placeholder replacement
- Removed hardcoded absolute path
2026-04-30 11:14:31 -04:00

1.4 KiB

SKILL: Llama Backend (org-skill-llama-backend.org)

Overview

The Llama Backend skill provides the actual implementation for calling local models via Ollama.

Implementation

Ollama API Call (ollama-call)

(defun ollama-call (prompt system-prompt &key (model "llama3"))
  "Sends a request to the local Ollama API."
  (let* ((host (or (uiop:getenv "OLLAMA_HOST") "localhost:11434"))
         (url (format nil "http://~a/api/generate" host))
         (payload (cl-json:encode-json-to-string 
                   `((model . ,model)
                     (prompt . ,prompt)
                     (system . ,system-prompt)
                     (stream . nil)))))
    (handler-case
        (let ((response (dex:post url :content payload :headers '(("Content-Type" . "application/json")))))
          (let ((data (cl-json:decode-json-from-string response)))
            (list :status :success :content (getf data :response))))
      (error (c)
        (list :status :error :message (format nil "Ollama Failure: ~a" c))))))

Skill Registration

(register-probabilistic-backend :ollama #'ollama-call)

(defskill :skill-llama-backend
  :priority 50
  :trigger (lambda (ctx) (declare (ignore ctx)) nil))