gptel: Fix model/backend mismatch (#242)
* gptel.el (gptel--sanitize-model, gptel): Check for mismatches between the default values of gptel-backend and gptel-model when starting a new gptel chat. Previously the default value of gptel-backend was compared against the buffer-local value of gptel-model.
This commit is contained in:
parent
5e9e36d854
commit
3d6147830e
1 changed files with 5 additions and 3 deletions
8
gptel.el
8
gptel.el
|
@ -1210,19 +1210,20 @@ See `gptel-curl--get-response' for its contents.")
|
||||||
"Could not parse HTTP response.")))))
|
"Could not parse HTTP response.")))))
|
||||||
|
|
||||||
(cl-defun gptel--sanitize-model (&key (backend gptel-backend)
|
(cl-defun gptel--sanitize-model (&key (backend gptel-backend)
|
||||||
|
(model gptel-model)
|
||||||
(shoosh t))
|
(shoosh t))
|
||||||
"Check if `gptel-model' is available in BACKEND, adjust accordingly.
|
"Check if MODEL is available in BACKEND, adjust accordingly.
|
||||||
|
|
||||||
If SHOOSH is true, don't issue a warning."
|
If SHOOSH is true, don't issue a warning."
|
||||||
(let* ((available (gptel-backend-models backend)))
|
(let* ((available (gptel-backend-models backend)))
|
||||||
(unless (member gptel-model available)
|
(unless (member model available)
|
||||||
(let ((fallback (car available)))
|
(let ((fallback (car available)))
|
||||||
(unless shoosh
|
(unless shoosh
|
||||||
(display-warning
|
(display-warning
|
||||||
'gptel
|
'gptel
|
||||||
(format (concat "Preferred `gptel-model' \"%s\" not"
|
(format (concat "Preferred `gptel-model' \"%s\" not"
|
||||||
"supported in \"%s\", using \"%s\" instead")
|
"supported in \"%s\", using \"%s\" instead")
|
||||||
gptel-model (gptel-backend-name backend) fallback)))
|
model (gptel-backend-name backend) fallback)))
|
||||||
(setq-local gptel-model fallback)))))
|
(setq-local gptel-model fallback)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
@ -1265,6 +1266,7 @@ INTERACTIVEP is t when gptel is called interactively."
|
||||||
(visual-line-mode 1))
|
(visual-line-mode 1))
|
||||||
(t (funcall gptel-default-mode)))
|
(t (funcall gptel-default-mode)))
|
||||||
(gptel--sanitize-model :backend (default-value 'gptel-backend)
|
(gptel--sanitize-model :backend (default-value 'gptel-backend)
|
||||||
|
:model (default-value 'gptel-model)
|
||||||
:shoosh nil)
|
:shoosh nil)
|
||||||
(unless gptel-mode (gptel-mode 1))
|
(unless gptel-mode (gptel-mode 1))
|
||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
|
|
Loading…
Add table
Reference in a new issue