Implement URL summary
This commit is contained in:
parent
1cc035b8b0
commit
1778140aaf
1 changed files with 28 additions and 12 deletions
40
kagi.el
40
kagi.el
|
@ -169,17 +169,14 @@ https://kagi.com/settings?p=api"
|
||||||
(buffer-string)
|
(buffer-string)
|
||||||
(error "Call to FastGPT API returned with status %s" return))))))
|
(error "Call to FastGPT API returned with status %s" return))))))
|
||||||
|
|
||||||
(defun kagi--call-summarizer (text)
|
(defun kagi--call-summarizer (obj)
|
||||||
"Submit the given TEXT to the Summarizer API.
|
"Submit the given TEXT to the Summarizer API.
|
||||||
|
|
||||||
Returns the JSON response as a string. See
|
Returns the JSON response as a string. See
|
||||||
https://help.kagi.com/kagi/api/summarizer.html for the
|
https://help.kagi.com/kagi/api/summarizer.html for the
|
||||||
interpretation."
|
interpretation."
|
||||||
(with-temp-buffer
|
(with-temp-buffer
|
||||||
(insert (json-encode `((text . ,text)
|
(insert (json-encode obj))
|
||||||
(engine . ,kagi-api-summarizer-engine)
|
|
||||||
(summary-type . "summary") ;; TODO parameter
|
|
||||||
(target-language . ,kagi-api-summarize-language))))
|
|
||||||
(let* ((call-process-flags '(nil nil "curl" t t nil))
|
(let* ((call-process-flags '(nil nil "curl" t t nil))
|
||||||
(curl-flags (kagi--curl-flags))
|
(curl-flags (kagi--curl-flags))
|
||||||
(all-flags (append call-process-flags
|
(all-flags (append call-process-flags
|
||||||
|
@ -190,15 +187,27 @@ https://kagi.com/settings?p=api"
|
||||||
(buffer-string)
|
(buffer-string)
|
||||||
(error "Call to Summarizer API returned with status %s" return)))))
|
(error "Call to Summarizer API returned with status %s" return)))))
|
||||||
|
|
||||||
(defun kagi--get-text-summary (text)
|
(defun kagi--call-text-summarizer (text)
|
||||||
(let* ((response (kagi--call-summarizer text))
|
(kagi--call-summarizer `((text . ,text)
|
||||||
|
(engine . ,kagi-api-summarizer-engine)
|
||||||
|
(summary-type . "summary") ;; TODO parameter
|
||||||
|
(target-language . ,kagi-api-summarize-language))))
|
||||||
|
|
||||||
|
(defun kagi--call-url-summarizer (url)
|
||||||
|
(kagi--call-summarizer `((url . ,url)
|
||||||
|
(engine . ,kagi-api-summarizer-engine)
|
||||||
|
(summary-type . "summary") ;; TODO parameter
|
||||||
|
(target-language . ,kagi-api-summarize-language))))
|
||||||
|
|
||||||
|
(defun kagi--get-summary (f)
|
||||||
|
(let* ((response (funcall f))
|
||||||
(parsed-response (json-parse-string response))
|
(parsed-response (json-parse-string response))
|
||||||
(data (gethash "data" parsed-response))
|
(data (gethash "data" parsed-response))
|
||||||
(output (gethash "output" data)))
|
(output (gethash "output" data)))
|
||||||
(kagi--format-output output)))
|
(kagi--format-output output)))
|
||||||
|
|
||||||
(defun kagi--display-text-summary (text buffer-name)
|
(defun kagi--display-summary (f buffer-name)
|
||||||
(let ((summary (kagi--get-text-summary text)))
|
(let ((summary (kagi--get-summary f)))
|
||||||
(with-current-buffer (get-buffer-create buffer-name)
|
(with-current-buffer (get-buffer-create buffer-name)
|
||||||
(insert summary)
|
(insert summary)
|
||||||
(goto-char 0)
|
(goto-char 0)
|
||||||
|
@ -241,14 +250,21 @@ https://kagi.com/settings?p=api"
|
||||||
"Summarize buffer content."
|
"Summarize buffer content."
|
||||||
(interactive "b")
|
(interactive "b")
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(kagi--display-text-summary (buffer-string) (kagi--summary-buffer-name))))
|
(kagi--display-summary
|
||||||
|
(lambda () (kagi--call-text-summarizer (buffer-string)))
|
||||||
|
(kagi--summary-buffer-name))))
|
||||||
|
|
||||||
(defun kagi-summarize-region (begin end)
|
(defun kagi-summarize-region (begin end)
|
||||||
(interactive "r")
|
(interactive "r")
|
||||||
(kagi--display-text-summary (buffer-substring begin end) (kagi--summary-buffer-name)))
|
(kagi--display-summary
|
||||||
|
(lambda () (kagi--call-text-summarizer (buffer-substring begin end)))
|
||||||
|
(kagi--summary-buffer-name)))
|
||||||
|
|
||||||
(defun kagi-summarize-url (url)
|
(defun kagi-summarize-url (url)
|
||||||
(interactive "sURL: "))
|
(interactive "sURL: ")
|
||||||
|
(kagi--display-summary
|
||||||
|
(lambda () (kagi--call-url-summarizer url))
|
||||||
|
"*URL summary*"))
|
||||||
|
|
||||||
(provide 'kagi)
|
(provide 'kagi)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue