branch: elpa/gptel commit b44bad8800edb8e70b5a6bee53e5849b814d8ede Author: Karthik Chikmagalur <karthikchikmaga...@gmail.com> Commit: Karthik Chikmagalur <karthikchikmaga...@gmail.com>
gptel: Set request URL from request buffer When the gptel-backend's url field is a function, it typically uses global variables like gptel-model to set the request URL (see gptel-gemini for an example). Ensure that this function runs from the request buffer to respect buffer-local values. * gptel.el (gptel--url-get-response): Make the change. * gptel-curl.el (gptel-curl--get-args): Make the change. --- gptel-curl.el | 4 +++- gptel.el | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gptel-curl.el b/gptel-curl.el index 09a61324f1..2d39a2b64c 100644 --- a/gptel-curl.el +++ b/gptel-curl.el @@ -71,7 +71,9 @@ REQUEST-DATA is the data to send, TOKEN is a unique identifier." (gptel-stream (plist-get info :stream)) (url (let ((backend-url (gptel-backend-url gptel-backend))) (if (functionp backend-url) - (funcall backend-url) backend-url))) + (with-current-buffer (plist-get info :buffer) + (funcall backend-url)) + backend-url))) (data-json (encode-coding-string (gptel--json-encode data) 'utf-8)) (headers (append '(("Content-Type" . "application/json")) diff --git a/gptel.el b/gptel.el index 4042a59369..39256c4442 100644 --- a/gptel.el +++ b/gptel.el @@ -2796,7 +2796,9 @@ the response is inserted into the current buffer after point." (let ((proc-buf (url-retrieve (let ((backend-url (gptel-backend-url gptel-backend))) (if (functionp backend-url) - (funcall backend-url) backend-url)) + (with-current-buffer (plist-get info :buffer) + (funcall backend-url)) + backend-url)) (lambda (_) (set-buffer-multibyte t) (set-buffer-file-coding-system 'utf-8-unix)