gptel: Rename stream-related vars and defuns

* gptel.el (gptel--convert-playback-markdown->org, gptel--request-data,
gptel-playback):
- `gptel-playback' is now obsolete, use `gptel-stream' instead.
- `gptel--convert-playback-markdown->org': rename to
  `gptel--stream-convert-markdown->org'

* gptel-curl.el (gptel-curl--filter, gptel-curl-get-response):
- `gptel--insert-response-stream': rename to `gptel-curl--stream-insert-response'
- `gptel-curl--cleanup-stream': rename to `gptel-curl--stream-cleanup'
- `gptel-curl--filter': rename to `gptel-curl--stream-filter'
This commit is contained in:
Karthik Chikmagalur 2023-04-06 16:35:51 -07:00
parent ba133267ec
commit a43f5ac5fa
2 changed files with 17 additions and 13 deletions

View file

@ -83,22 +83,22 @@ the response is inserted into the current buffer after point."
(setf (alist-get process gptel-curl--process-alist)
(nconc (list :token token
:callback (or callback
(if gptel-playback
#'gptel--insert-response-stream
(if gptel-stream
#'gptel-curl--stream-insert-response
#'gptel--insert-response))
:transformer (when (or (eq gptel-default-mode 'org-mode)
(eq (buffer-local-value
'major-mode
(plist-get info :gptel-buffer))
'org-mode))
(gptel--convert-playback-markdown->org)))
(gptel--stream-convert-markdown->org)))
info))
(if gptel-playback
(progn (set-process-sentinel process #'gptel-curl--cleanup-stream)
(set-process-filter process #'gptel-curl--filter))
(if gptel-stream
(progn (set-process-sentinel process #'gptel-curl--stream-cleanup)
(set-process-filter process #'gptel-curl--stream-filter))
(set-process-sentinel process #'gptel-curl--sentinel)))))
(defun gptel-curl--cleanup-stream (process status)
(defun gptel-curl--stream-cleanup (process status)
"Process sentinel for GPTel curl requests.
PROCESS and STATUS are process parameters."
@ -152,7 +152,7 @@ See `gptel--url-get-response' for details."
(gptel--update-header-line
(format " Response Error: %s" status-str) 'error))))
(defun gptel-curl--filter (process output)
(defun gptel-curl--stream-filter (process output)
(let* ((content-strs)
(proc-info (alist-get process gptel-curl--process-alist)))
(with-current-buffer (process-buffer process)
@ -182,7 +182,7 @@ See `gptel--url-get-response' for details."
(http-status (plist-get proc-info :http-status)))
;; Find data chunk(s) and run callback
(funcall (or (plist-get proc-info :callback)
#'gptel--insert-response-stream)
#'gptel-curl--stream-insert-response)
(if (equal http-status "200")
(let* ((json-object-type 'plist)
(response) (content-str))

View file

@ -76,14 +76,18 @@ key (more secure)."
(string :tag "API key")
(function :tag "Function that returns the API key")))
(defcustom gptel-playback nil
"Whether responses from ChatGPT be played back in chunks.
(defcustom gptel-stream nil
"Whether responses from ChatGPT be played back as they are received.
When set to nil, it is inserted all at once.
This option is ignored unless Curl is in use (see `gptel-use-curl').
When set to nil, Emacs waits for the full response and inserts it
all at once. This wait is asynchronous.
'tis a bit silly."
:group 'gptel
:type 'boolean)
(make-obsolete-variable 'gptel-playback 'gptel-stream "0.3.0")
(defcustom gptel-use-curl (and (executable-find "curl") t)
"Whether gptel should prefer Curl when available."
@ -556,7 +560,7 @@ elements."
(insert "/")))))))
(buffer-string)))
(defun gptel--convert-playback-markdown->org ()
(defun gptel--stream-convert-markdown->org ()
"Return a Markdown to Org converter.
This function parses a stream of Markdown text to Org