Function: gptel-curl--get-args

gptel-curl--get-args is a natively compiled function defined in gptel-request.el.

Signature

(gptel-curl--get-args INFO UUID)

Documentation

Produce list of arguments for calling Curl.

INFO contains the request data, UUID is a unique identifier.

Source Code

;; Defined in /nix/store/q3r7g81pvghw7a523kjk2k2zih3pfk8z-emacs-packages-deps/share/emacs/site-lisp/elpa/gptel-20261002.545/gptel-request.el
(defun gptel-curl--get-args (info uuid)
  "Produce list of arguments for calling Curl.

INFO contains the request data, UUID is a unique identifier."
  (let* (;; We have to let-bind the following three since their dynamic
         ;; values are used for key lookup and url resolution
         (gptel-backend (plist-get info :backend))
         (gptel-model (plist-get info :model))
         (gptel-stream (plist-get info :stream))
         (url (let ((backend-url (gptel-backend-url gptel-backend)))
                (gptel--maybe-funcall backend-url info)))
         (data (plist-get info :data))
         (data-json (decode-coding-string (gptel--json-encode data) 'utf-8 t)))
    (when gptel-log-level
      (gptel--log data-json "request body"))
    (append
     (gptel-curl--get-config-args info)
     (cl-loop
      for (key . val) in
      (append '(("Content-Type" . "application/json"))
              (when-let* ((header (gptel-backend-header gptel-backend)))
                (gptel--maybe-funcall header info)))
      collect (format "-H%s: %s" key val))
     (list (format "-w(%s . %%{size_header})" uuid))
     (list (format "-d%s" data-json))
     (when (not (string-empty-p gptel-proxy))
       (list "--proxy" gptel-proxy
             "--proxy-negotiate"
             "--proxy-user" ":"))
     (list url))))