Files
confi-emacs-actual/configs/init-ai.el
kj 021e19fb3c Add copilot package.
It is disabled by default but can be enabled if necessary.
2025-09-01 11:53:00 -03:00

53 lines
2.6 KiB
EmacsLisp

;;; init-ai.el --- Configuración de inteligencias artificales -*- lexical-binding: t -*-
;; Author: kj <webmaster@outcontrol.net>
;; URL: https://git.kj2.me/kj/confi-emacs-actual
;;; Commentary:
;; Esta configuración para Inteligencia artifical en emacs, principalmente para el uso de chats.
;;; Code:
;; Cliente LLM (ollama, chatgpt, gemini, etc.)
(use-package gptel
:config
;; (setq gptel-model 'gemma3:4b
;; gptel-backend (gptel-make-ollama "Ollama"
;; :host "localhost:11434"
;; :stream t
;; :models '("mistral:latest"
;; "deepseek-r1:1.5b"
;; "deepcoder"
;; "dolphin-llama3:latest"
;; "gemma3:4b"
;; "llava:latest"))
gptel-default-mode 'org-mode
gptel-prompt-prefix-alist
'((markdown-mode . "# ")
(org-mode . "* ")
(text-mode . "# "))
gptel-directives
'((default . "Eres un LLM que vive dentro de Emacs. Responde de manera concisa.")
(programming . "Eres un LLM y un programador profesional cuidadoso. Provee el código y solo el código como output sin ningún texto adicional, prompt o nota.")
(programming_tutor . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y realiza sugerencias concisas en español para mejorarlo.")
(programming_explainer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español de manera concisa, su funcionamiento.")
(programming_describer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español su funcionamiento línea a línea.")
(writing . "Eres un LLM y un asistente de escritura. Responde de manera concisa.")
(grammarly . "You are a large language model and professional philologist. Improve grammar and spelling.")
(chat . "Eres un LLM y un compañero de conversación. Responde de manera concisa.")
(traductor . "Eres un traductor profesional. Traduce a español tomando en cuenta los posibles tecnicismos y nombres que no deberían traducirse.")
)
)
)
(use-package copilot
:bind (("M-<return>" . copilot-complete)
:map copilot-completion-map
("C-g" . 'copilot-clear-overlay)
("C-<return>" . 'copilot-accept-completion)
("C-<tab>" . 'copilot-accept-completion-by-word)))
(provide 'init-ai)
;;; init-ai.el ends here