gptel: Add a debug flag

gptel.el (gptel--debug, gptel--url-parse-response): Add a debug
flag that shows the http response.  Fix json parsing error.

gptel-curl.el (gptel-curl--sentinel): Ditto.
This commit is contained in:
Karthik Chikmagalur 2023-03-12 15:40:39 -07:00
parent dfca03a266
commit 0d26b34526
2 changed files with 8 additions and 0 deletions

View file

@ -93,6 +93,9 @@ PROMPTS is the data to send, TOKEN is a unique identifier."
PROCESS and STATUS are process parameters."
(let ((proc-buf (process-buffer process)))
(when gptel--debug
(with-current-buffer proc-buf
(clone-buffer "*gptel-error*" 'show)))
(if-let* ((ok-p (equal status "finished\n"))
(proc-info (alist-get process gptel-curl--process-alist))
(proc-token (plist-get proc-info :token))

View file

@ -114,6 +114,7 @@ return the transformed string."
(writing . "You are a large language model and a writing assistant. Respond concisely.")
(chat . "You are a large language model and a conversation partner. Respond concisely."))
"Prompt templates (directives).")
(defvar gptel--debug nil)
(defvar-local gptel--max-tokens nil)
(defvar-local gptel--model "gpt-3.5-turbo")
(defvar-local gptel--temperature 1.0)
@ -296,9 +297,13 @@ Return the message received."
(defun gptel--url-parse-response (response-buffer)
"Parse response in RESPONSE-BUFFER."
(when (buffer-live-p response-buffer)
(when gptel--debug
(with-current-buffer response-buffer
(clone-buffer "*gptel-error*" 'show)))
(with-current-buffer response-buffer
(if-let* ((status (buffer-substring (line-beginning-position) (line-end-position)))
((string-match-p "200 OK" status))
(json-object-type 'plist)
(response (progn (forward-paragraph)
(json-read)))
(content (map-nested-elt