karthink / gptel

A simple LLM client for Emacs
GNU General Public License v3.0
1.04k stars 113 forks source link

gptel-send in org-mode - wrong number of arguments #183

Closed lalon closed 5 months ago

lalon commented 5 months ago

I am experiencing an issue with gptel-send in org-mode. Whenever I try to use gptel-send, I encounter the following error message: "let: Wrong number of arguments: setq, 1". This issue occurs consistently and prevents me from utilizing gptel-send in org-mode.

Please let me know if any additional information is required to investigate and resolve this issue. Thank you.

karthink commented 5 months ago
  1. Does gptel-send work fine in non Org mode buffers?
  2. Please run M-x toggle-debug-on-error, trigger the error and paste the stacktrace here.
  3. Paste your gptel configuration here.
lalon commented 5 months ago
  1. Yes
  2. Debugger entered--Lisp error: (wrong-number-of-arguments setq 1)
    (setq in-src-block)
    (let (in-src-block temp-buf start-pt cleanup-fn) (setq in-src-block) (setq temp-buf (generate-new-buffer-name "*gptel-temp*")) (setq start-pt (make-marker)) (setq cleanup-fn #'(lambda (&rest _) (if (buffer-live-p (get-buffer temp-buf)) (progn (set-marker start-pt nil) (kill-buffer temp-buf))) (remove-hook 'gptel-post-response-functions cleanup-fn))) (add-hook 'gptel-post-response-functions cleanup-fn) #'(lambda (str) (let ((noop-p)) (save-current-buffer (set-buffer (get-buffer-create temp-buf)) (save-excursion (goto-char (point-max)) (insert str)) (if (marker-position start-pt) (progn (goto-char start-pt))) (save-excursion (while (re-search-forward "`\\|\\*\\{1,2\\}\\|_" nil t) (let* ... ...))) (if noop-p (buffer-substring (point) start-pt) (prog1 (buffer-substring ... ...) (set-marker start-pt ...)))))))
    gptel--stream-convert-markdown->org()
    gptel-curl-get-response((:prompt ((:role "system" :content "You are a large language model living in Emacs and...") (:role "user" :content "How do i set binding in emacs?")) :buffer #<buffer testinggpt.org> :position #<marker at 31 in testinggpt.org>))
    funcall(gptel-curl-get-response (:prompt ((:role "system" :content "You are a large language model living in Emacs and...") (:role "user" :content "How do i set binding in emacs?")) :buffer #<buffer testinggpt.org> :position #<marker at 31 in testinggpt.org>))
    (let* ((response-pt (if (use-region-p) (set-marker (make-marker) (region-end)) (save-excursion (skip-syntax-forward "w.") (point-marker)))) (gptel-buffer (current-buffer)) (full-prompt (gptel--create-prompt response-pt))) (funcall (if gptel-use-curl #'gptel-curl-get-response #'gptel--url-get-response) (list :prompt full-prompt :buffer gptel-buffer :position response-pt)))
    (if (and arg (require 'gptel-transient nil t)) (call-interactively #'gptel-menu) (message "Querying %s..." (progn (or (and (memq (type-of gptel-backend) cl-struct-gptel-backend-tags) t) (signal 'wrong-type-argument (list 'gptel-backend gptel-backend))) (aref gptel-backend 1))) (let* ((response-pt (if (use-region-p) (set-marker (make-marker) (region-end)) (save-excursion (skip-syntax-forward "w.") (point-marker)))) (gptel-buffer (current-buffer)) (full-prompt (gptel--create-prompt response-pt))) (funcall (if gptel-use-curl #'gptel-curl-get-response #'gptel--url-get-response) (list :prompt full-prompt :buffer gptel-buffer :position response-pt))) (gptel--update-status " Waiting..." 'warning))
    gptel-send(nil)
    funcall-interactively(gptel-send nil)
    call-interactively(gptel-send record nil)
    command-execute(gptel-send record)
    execute-extended-command(nil "gptel-send" nil)
    funcall-interactively(execute-extended-command nil "gptel-send" nil)
    call-interactively(execute-extended-command nil nil)
    command-execute(execute-extended-command)
  3. the most basic config
    (use-package! gptel
    :config
    (setq! gptel-api-key "your key"))

    I'm using Doom emacs (GNU Emacs 27.2)

karthink commented 5 months ago

Hmm, this is strange. The backtrace does not correspond to the actual code! I wonder if Emacs 27 expands letrec differently.

I pushed a tentative fix, please update.

lalon commented 5 months ago

Yep that fixed it, thank you!