Add no-cache parameter to kagi-summarize-{buffer,region}
This commit is contained in:
parent
9773229d6b
commit
72119bd9b7
13
kagi-test.el
13
kagi-test.el
|
@ -372,19 +372,20 @@ https://www.example.com"
|
|||
(expect #'kagi--display-summary :not :to-have-been-called)
|
||||
(expect #'kagi--insert-summary :to-have-been-called))
|
||||
(it "passes arguments to kagi-summary"
|
||||
(spy-on #'kagi--get-summarizer-parameters :and-return-value '(t lang bram random))
|
||||
(spy-on #'kagi--get-summarizer-parameters :and-return-value '(t lang bram random maybe))
|
||||
(call-interactively #'kagi-summarize-buffer)
|
||||
(expect #'kagi-summarize :to-have-been-called)
|
||||
(expect #'kagi--display-summary :not :to-have-been-called)
|
||||
(expect #'kagi--insert-summary :to-have-been-called)
|
||||
(kagi-test--expect-arg #'kagi-summarize 1 :to-equal 'lang)
|
||||
(kagi-test--expect-arg #'kagi-summarize 2 :to-equal 'bram)
|
||||
(kagi-test--expect-arg #'kagi-summarize 3 :to-equal 'random)))
|
||||
(kagi-test--expect-arg #'kagi-summarize 3 :to-equal 'random)
|
||||
(kagi-test--expect-arg #'kagi-summarize 4 :to-equal 'maybe)))
|
||||
(describe "kagi-summarize-region"
|
||||
(before-each
|
||||
(spy-on #'region-beginning)
|
||||
(spy-on #'region-end)
|
||||
(spy-on #'kagi--get-summarizer-parameters :and-return-value '(lang bram random))
|
||||
(spy-on #'kagi--get-summarizer-parameters :and-return-value '(lang bram random maybe))
|
||||
(spy-on #'kagi-summarize :and-return-value dummy-output)
|
||||
(spy-on #'buffer-name :and-return-value "buffer-name")
|
||||
(spy-on #'buffer-substring-no-properties))
|
||||
|
@ -394,7 +395,8 @@ https://www.example.com"
|
|||
(expect #'kagi-summarize :to-have-been-called)
|
||||
(kagi-test--expect-arg #'kagi-summarize 1 :to-equal 'lang)
|
||||
(kagi-test--expect-arg #'kagi-summarize 2 :to-equal 'bram)
|
||||
(kagi-test--expect-arg #'kagi-summarize 3 :to-equal 'random))
|
||||
(kagi-test--expect-arg #'kagi-summarize 3 :to-equal 'random)
|
||||
(kagi-test--expect-arg #'kagi-summarize 4 :to-equal 'maybe))
|
||||
(it "opens a buffer with the summary"
|
||||
(call-interactively #'kagi-summarize-region)
|
||||
(expect #'kagi--display-summary :to-have-been-called)
|
||||
|
@ -409,7 +411,8 @@ https://www.example.com"
|
|||
(call-interactively #'kagi-summarize-url)
|
||||
(kagi-test--expect-arg #'kagi-summarize 1 :to-equal 'lang)
|
||||
(kagi-test--expect-arg #'kagi-summarize 2 :to-equal 'bram)
|
||||
(kagi-test--expect-arg #'kagi-summarize 3 :to-equal 'random))
|
||||
(kagi-test--expect-arg #'kagi-summarize 3 :to-equal 'random)
|
||||
(kagi-test--expect-arg #'kagi-summarize 4 :to-equal nil))
|
||||
(it "opens a buffer with the summary"
|
||||
(call-interactively #'kagi-summarize-url)
|
||||
(expect #'kagi--display-summary :to-have-been-called)
|
||||
|
|
39
kagi.el
39
kagi.el
|
@ -600,11 +600,14 @@ content."
|
|||
(gethash "code" firsterror)))
|
||||
(error "An error occurred while requesting a summary")))))
|
||||
|
||||
(defun kagi--get-summarizer-parameters (&optional prompt-insert-p)
|
||||
(defun kagi--get-summarizer-parameters (&optional prompt-insert-p prompt-cache-p)
|
||||
"Return a list of interactively obtained summarizer parameters.
|
||||
|
||||
Not all commands need to insert a summary, so only prompt for
|
||||
this when PROMPT-INSERT-P is non-nil."
|
||||
this when PROMPT-INSERT-P is non-nil.
|
||||
|
||||
Likewise, not all commands need to disable the cache, so only
|
||||
prompt when PROMPT-CACHE-P is t."
|
||||
(append
|
||||
(when prompt-insert-p
|
||||
(list
|
||||
|
@ -639,11 +642,14 @@ this when PROMPT-INSERT-P is non-nil."
|
|||
summary-formats
|
||||
kagi-summarizer-default-summary-format
|
||||
nil
|
||||
#'string=))))))
|
||||
#'string=))))
|
||||
(list
|
||||
(and prompt-cache-p
|
||||
(equal current-prefix-arg '(4))
|
||||
(y-or-n-p "Cache the result?")))))
|
||||
|
||||
;; TODO no-cache
|
||||
;;;###autoload
|
||||
(defun kagi-summarize-buffer (buffer &optional insert language engine format interactive-p)
|
||||
(defun kagi-summarize-buffer (buffer &optional insert language engine format no-cache interactive-p)
|
||||
"Summarize the BUFFER's content and show it in a new window.
|
||||
|
||||
By default, the summary is shown in a new buffer.
|
||||
|
@ -662,6 +668,11 @@ defined in `kagi--summarizer-engines'.
|
|||
FORMAT is the summary format, where `summary' returns a paragraph
|
||||
of text and `takeaway' returns a bullet list.
|
||||
|
||||
When NO-CACHE is t, inputs are not retained inside Kagi's
|
||||
infrastructure. When nil, the default value for
|
||||
`kagi-summarizer-cache' is used. Set to t for confidential
|
||||
content.
|
||||
|
||||
With a single universal prefix argument (`C-u'), the user is
|
||||
prompted whether the summary has to be inserted at point, which
|
||||
target LANGUAGE to use, which summarizer ENGINE to use and which
|
||||
|
@ -670,19 +681,18 @@ summary FORMAT to use.
|
|||
INTERACTIVE-P is t when called interactively."
|
||||
(interactive (append
|
||||
(list (read-buffer (format-prompt "Buffer" "") nil t))
|
||||
(kagi--get-summarizer-parameters t)
|
||||
(kagi--get-summarizer-parameters t t)
|
||||
(list t)))
|
||||
(let ((summary (with-current-buffer buffer
|
||||
(kagi-summarize (buffer-string) language engine format)))
|
||||
(kagi-summarize (buffer-string) language engine format no-cache)))
|
||||
(summary-buffer-name (with-current-buffer buffer
|
||||
(kagi--summary-buffer-name (buffer-name)))))
|
||||
(cond ((and insert (not buffer-read-only)) (kagi--insert-summary summary))
|
||||
(interactive-p (kagi--display-summary summary summary-buffer-name))
|
||||
(t summary))))
|
||||
|
||||
;; TODO no-cache
|
||||
;;;###autoload
|
||||
(defun kagi-summarize-region (begin end &optional language engine format)
|
||||
(defun kagi-summarize-region (begin end &optional language engine format no-cache)
|
||||
"Summarize the region's content marked by BEGIN and END positions.
|
||||
|
||||
The summary is always shown in a new buffer.
|
||||
|
@ -697,20 +707,25 @@ defined in `kagi--summarizer-engines'.
|
|||
FORMAT is the summary format, where `summary' returns a paragraph
|
||||
of text and `takeaway' returns a bullet list.
|
||||
|
||||
When NO-CACHE is t, inputs are not retained inside Kagi's
|
||||
infrastructure. When nil, the default value for
|
||||
`kagi-summarizer-cache' is used. Set to t for confidential
|
||||
content.
|
||||
|
||||
With a single universal prefix argument (`C-u'), the user is
|
||||
prompted for which target LANGUAGE to use, which summarizer
|
||||
ENGINE to use and which summary FORMAT to use."
|
||||
(interactive (append
|
||||
(list (region-beginning) (region-end))
|
||||
(kagi--get-summarizer-parameters)))
|
||||
(kagi--get-summarizer-parameters nil t)))
|
||||
(kagi--display-summary
|
||||
(kagi-summarize (buffer-substring-no-properties begin end)
|
||||
language
|
||||
engine
|
||||
format)
|
||||
format
|
||||
no-cache)
|
||||
(kagi--summary-buffer-name (buffer-name))))
|
||||
|
||||
;; TODO no-cache
|
||||
;;;###autoload
|
||||
(defun kagi-summarize-url (url &optional insert language engine format)
|
||||
"Show the summary of the content behind the given URL.
|
||||
|
|
Loading…
Reference in a new issue