emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/gptel a660e13a8b 106/273: gptel, gptel-transient: Fix read


From: ELPA Syncer
Subject: [nongnu] elpa/gptel a660e13a8b 106/273: gptel, gptel-transient: Fix read temperature from minibuffer (#85)
Date: Wed, 1 May 2024 10:02:09 -0400 (EDT)

branch: elpa/gptel
commit a660e13a8bdea101d56cdbab0cb10731b8b8f1fa
Author: Tianshu Wang <wang@tianshu.me>
Commit: GitHub <noreply@github.com>

    gptel, gptel-transient: Fix read temperature from minibuffer (#85)
    
    gptel-transient.el (gtel--transient-read-variable): Use a custom transient 
infix reader.
    
    gptel.el (gptel--request-data): Don't use `gptel--numberize'.
---
 gptel-transient.el | 13 ++++++++-----
 gptel.el           | 11 +++++------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/gptel-transient.el b/gptel-transient.el
index 9894be0f82..7a3daa622d 100644
--- a/gptel-transient.el
+++ b/gptel-transient.el
@@ -230,6 +230,10 @@ Customize `gptel-directives' for task-specific prompts."
 
 ;; ** Infixes for model parameters
 
+(defun gptel--transient-read-variable (prompt initial-input history)
+  "Read value from minibuffer and interpret the result as a Lisp object."
+  (read-from-minibuffer prompt initial-input read-expression-map t history))
+
 (transient-define-infix gptel--infix-num-messages-to-send ()
   "Number of recent messages to send with each exchange.
 
@@ -242,7 +246,7 @@ include."
   :variable 'gptel--num-messages-to-send
   :key "n"
   :prompt "Number of past messages to include for context (leave empty for 
all): "
-  :reader 'transient-read-number-N0)
+  :reader 'gptel--transient-read-variable)
 
 (transient-define-infix gptel--infix-max-tokens ()
   "Max tokens per response.
@@ -259,7 +263,7 @@ will get progressively longer!"
   :variable 'gptel-max-tokens
   :key "<"
   :prompt "Response length in tokens (leave empty: default, 80-200: short, 
200-500: long): "
-  :reader 'transient-read-number-N+)
+  :reader 'gptel--transient-read-variable)
 
 (transient-define-infix gptel--infix-model ()
   "AI Model for Chat."
@@ -279,9 +283,8 @@ will get progressively longer!"
   :class 'transient-lisp-variable
   :variable 'gptel-temperature
   :key "t"
-  :reader (lambda (&rest _)
-            (read-from-minibuffer "Set temperature (0.0-2.0, leave empty for 
default): "
-                                  (number-to-string gptel-temperature))))
+  :prompt "Set temperature (0.0-2.0, leave empty for default): "
+  :reader 'gptel--transient-read-variable)
 
 ;; ** Infix for the refactor/rewrite system message
 
diff --git a/gptel.el b/gptel.el
index ba7ca40f10..87591918a7 100644
--- a/gptel.el
+++ b/gptel.el
@@ -263,7 +263,7 @@ By default, `gptel-host' is used as HOST and \"apikey\" as 
USER."
         secret)
     (user-error "No `gptel-api-key' found in the auth source")))
 
-;; FIXME Should we utf-8 encode the api-key here? 
+;; FIXME Should we utf-8 encode the api-key here?
 (defun gptel--api-key ()
   "Get api key from `gptel-api-key'."
   (pcase gptel-api-key
@@ -496,7 +496,7 @@ Model parameters can be let-bound around calls to this 
function."
             (set-marker (make-marker) position buffer))))
          (full-prompt
          (cond
-          ((null prompt) 
+          ((null prompt)
            (let ((gptel--system-message system))
              (gptel--create-prompt start-marker)))
           ((stringp prompt)
@@ -630,8 +630,7 @@ there."
           (goto-char (point-max))))
        (t (goto-char (or prompt-end (point-max)))))
       (let ((max-entries (and gptel--num-messages-to-send
-                              (* 2 (gptel--numberize
-                                    gptel--num-messages-to-send))))
+                              (* 2 gptel--num-messages-to-send)))
             (prop) (prompts))
         (while (and
                 (or (not max-entries) (>= max-entries 0))
@@ -659,9 +658,9 @@ there."
            :messages [,@prompts]
            :stream ,(or (and gptel-stream gptel-use-curl) :json-false))))
     (when gptel-temperature
-      (plist-put prompts-plist :temperature (gptel--numberize 
gptel-temperature)))
+      (plist-put prompts-plist :temperature gptel-temperature))
     (when gptel-max-tokens
-      (plist-put prompts-plist :max_tokens (gptel--numberize 
gptel-max-tokens)))
+      (plist-put prompts-plist :max_tokens gptel-max-tokens))
     prompts-plist))
 
 ;; TODO: Use `run-hook-wrapped' with an accumulator instead to handle



reply via email to

[Prev in Thread] Current Thread [Next in Thread]