#+TITLE: SKILL: Llama Backend (org-skill-llama-backend.org) #+AUTHOR: Agent #+FILETAGS: :skill:llm:backend:ollama: #+PROPERTY: header-args:lisp :tangle %%SKILLS_DIR%%/org-skill-llama-backend.lisp * Overview The *Llama Backend* skill provides the actual implementation for calling local models via Ollama. * Implementation ** Ollama API Call (ollama-call) #+begin_src lisp (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)))))) #+end_src ** Skill Registration #+begin_src lisp (register-probabilistic-backend :ollama #'ollama-call) (defskill :skill-llama-backend :priority 50 :trigger (lambda (ctx) (declare (ignore ctx)) nil)) #+end_src