Function: eca-chat-select-model

eca-chat-select-model is an interactive and natively compiled function defined in eca-chat.el.

Signature

(eca-chat-select-model)

Documentation

Select which model to use in the active chat.

Key Bindings

eca-chat-mode-map C-c RET

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
;;;###autoload
(defun eca-chat-select-model ()
  "Select which model to use in the active chat."
  (interactive)
  (let ((session (eca-session)))
    (eca-assert-session-running session)
    (when eca-chat-custom-model
      (error (eca-error
              "The eca-chat-custom-model variable is already set: %s"
              eca-chat-custom-model)))
    (when-let* ((model (completing-read
                        "Select a model: "
                        (append (eca--session-models session) nil)
                        nil t))
                (target (eca-chat--get-active-buffer session)))
      (let ((chat-id (buffer-local-value 'eca-chat--id target))
            (variant (with-current-buffer target
                       (eca-chat--variant))))
        (eca-chat--with-current-buffer target
          (setq-local eca-chat--selected-model model))
        (setf (eca--session-chat-default-model session) model)
        (eca-api-notify session
                        :method "chat/selectedModelChanged"
                        :params (append (list :model model)
                                        (when variant
                                          (list :variant variant))
                                        (when chat-id
                                          (list :chatId chat-id))))
        (eca-chat--notify-status-changed session)))))