Refactored summarizer summary type selection
This commit is contained in:
parent
01a761a2ff
commit
f5cc1475bb
2 changed files with 22 additions and 2 deletions
13
kagi-test.el
13
kagi-test.el
|
@ -319,6 +319,17 @@ https://www.example.com"
|
|||
(setq kagi-summarizer-engine "steve")
|
||||
(expect (kagi-summarize dummy-https-url) :to-equal dummy-output)
|
||||
(let ((args (car (spy-calls-args-for #'kagi--call-summarizer 0))))
|
||||
(expect (map-elt args "engine") :to-equal "cecil"))))))
|
||||
(expect (map-elt args "engine") :to-equal "cecil")))
|
||||
(it "returns a summary when the take-away style is requested"
|
||||
(expect (kagi-summarize just-enough-text-input nil nil 'takeaway) :to-equal dummy-output))
|
||||
(it "uses the summary style when an invalid format is given"
|
||||
(kagi-summarize just-enough-text-input nil nil 'invalid)
|
||||
(let ((args (car (spy-calls-args-for #'kagi--call-summarizer 0))))
|
||||
(expect (map-elt args "summary_type") :to-equal 'summary)))
|
||||
(it "uses the summary style when an invalid format is configured"
|
||||
(setq kagi-summarizer-default-summary-format 'invalid)
|
||||
(kagi-summarize just-enough-text-input)
|
||||
(let ((args (car (spy-calls-args-for #'kagi--call-summarizer 0))))
|
||||
(expect (map-elt args "summary_type") :to-equal 'summary))))))
|
||||
|
||||
;;; kagi-test.el ends here
|
||||
|
|
11
kagi.el
11
kagi.el
|
@ -551,6 +551,14 @@ to `kagi-summarizer-default-language'."
|
|||
(downcase kagi-summarizer-engine))
|
||||
(t "cecil")))
|
||||
|
||||
(defun kagi--summarizer-format (hint)
|
||||
"Return a valid summary type based on the type given in HINT."
|
||||
(let ((choices '(summary takeaway)))
|
||||
(cond ((seq-contains-p choices hint) hint)
|
||||
((seq-contains-p choices kagi-summarizer-default-summary-format)
|
||||
kagi-summarizer-default-summary-format)
|
||||
(t 'summary))))
|
||||
|
||||
(defun kagi-summarize (text-or-url &optional language engine format)
|
||||
"Return the summary of the given TEXT-OR-URL.
|
||||
|
||||
|
@ -567,7 +575,8 @@ of text and `takeaway' returns a bullet list."
|
|||
(kagi--summarizer-determine-language language))
|
||||
(kagi-summarizer-engine
|
||||
(kagi--summarizer-engine engine))
|
||||
(kagi-summarizer-default-summary-format format))
|
||||
(kagi-summarizer-default-summary-format
|
||||
(kagi--summarizer-format format)))
|
||||
(if-let* ((response (if (kagi--url-p text-or-url)
|
||||
(kagi--call-url-summarizer text-or-url)
|
||||
(kagi--call-text-summarizer text-or-url)))
|
||||
|
|
Loading…
Reference in a new issue