[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/elisa 0e32d7bb5c 63/98: Add async directory parsing
From: |
ELPA Syncer |
Subject: |
[elpa] externals/elisa 0e32d7bb5c 63/98: Add async directory parsing |
Date: |
Wed, 17 Jul 2024 18:58:05 -0400 (EDT) |
branch: externals/elisa
commit 0e32d7bb5c348769d6bc51478183eb21134ffd8e
Author: Sergey Kostyaev <kostyaev.sergey2@wb.ru>
Commit: Sergey Kostyaev <kostyaev.sergey2@wb.ru>
Add async directory parsing
---
elisa.el | 61 +++++++++++++++++++++++++++++++++++--------------------------
1 file changed, 35 insertions(+), 26 deletions(-)
diff --git a/elisa.el b/elisa.el
index d70085a728..d3e00f8a3c 100644
--- a/elisa.el
+++ b/elisa.el
@@ -789,6 +789,14 @@ When FORCE parse even if already parsed."
(elisa-parse-file collection-id file))
files)))
+;;;###autoload
+(defun elisa-async-parse-directory (dir)
+ "Parse DIR as new collection asyncronously."
+ (interactive "DSelect directory: ")
+ (elisa--async-do (lambda ()
+ (elisa-parse-directory
+ (expand-file-name dir)))))
+
(defun elisa-search-duckduckgo (prompt)
"Search duckduckgo for PROMPT and return list of urls."
(let* ((url (format "https://duckduckgo.com/html/?q=%s" (url-hexify-string
prompt)))
@@ -1069,32 +1077,33 @@ WHERE d.rowid in %s;"
(defun elisa--async-do (func &optional on-done)
"Do FUNC asyncronously.
Call ON-DONE callback with result as an argument after FUNC evaluation done."
- (async-start `(lambda ()
- ,(async-inject-variables "elisa-embeddings-provider")
- ,(async-inject-variables "elisa-db-directory")
- ,(async-inject-variables "elisa-find-executable")
- ,(async-inject-variables "elisa-tar-executable")
- ,(async-inject-variables "elisa-prompt-rewriting-enabled")
- ,(async-inject-variables "elisa-rewrite-prompt-template")
- ,(async-inject-variables "elisa-semantic-split-function")
- ,(async-inject-variables "elisa-webpage-extraction-function")
- ,(async-inject-variables "elisa-web-search-function")
- ,(async-inject-variables "elisa-searxng-url")
- ,(async-inject-variables "elisa-web-pages-limit")
- ,(async-inject-variables "elisa-breakpoint-threshold-amount")
- ,(async-inject-variables "elisa-pandoc-executable")
- ,(async-inject-variables "ellama-long-lines-length")
- ,(async-inject-variables "elisa-reranker-enabled")
- ,(async-inject-variables "load-path")
- (require 'elisa)
- (,func))
- (lambda (res)
- (sqlite-close elisa-db)
- (elisa--reopen-db)
- (when on-done
- (funcall on-done res))
- (message "%.25s done."
- func))))
+ (let ((command real-this-command))
+ (async-start `(lambda ()
+ ,(async-inject-variables "elisa-embeddings-provider")
+ ,(async-inject-variables "elisa-db-directory")
+ ,(async-inject-variables "elisa-find-executable")
+ ,(async-inject-variables "elisa-tar-executable")
+ ,(async-inject-variables "elisa-prompt-rewriting-enabled")
+ ,(async-inject-variables "elisa-rewrite-prompt-template")
+ ,(async-inject-variables "elisa-semantic-split-function")
+ ,(async-inject-variables
"elisa-webpage-extraction-function")
+ ,(async-inject-variables "elisa-web-search-function")
+ ,(async-inject-variables "elisa-searxng-url")
+ ,(async-inject-variables "elisa-web-pages-limit")
+ ,(async-inject-variables
"elisa-breakpoint-threshold-amount")
+ ,(async-inject-variables "elisa-pandoc-executable")
+ ,(async-inject-variables "ellama-long-lines-length")
+ ,(async-inject-variables "elisa-reranker-enabled")
+ ,(async-inject-variables "load-path")
+ (require 'elisa)
+ (,func))
+ (lambda (res)
+ (sqlite-close elisa-db)
+ (elisa--reopen-db)
+ (when on-done
+ (funcall on-done res))
+ (message "%.40s done."
+ (or command func))))))
(defun elisa-extact-webpage-chunks (url)
"Extract semantic chunks for webpage fetched from URL."
- [elpa] externals/elisa e877f8f5c7 44/98: First implementation for web search, (continued)
- [elpa] externals/elisa e877f8f5c7 44/98: First implementation for web search, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 5ca66e9f0d 47/98: Fix custom variables, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 273a1d492d 50/98: Add reranker to RAG pipeline, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa ade7ac0af9 52/98: Update info manual parsing, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 8a2c92dc34 54/98: Fix parsing info manuals, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa cecc5cb13f 55/98: Make sync parsing interactive, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 4cad3085fd 57/98: Use more async calls to prevent emacs from blocking, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa ad130b564f 60/98: Add parse file function, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa b419fb2cf2 61/98: Add code for parsing directory as an elisa collection, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa ef06534f46 62/98: Implement incremental parsing, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 0e32d7bb5c 63/98: Add async directory parsing,
ELPA Syncer <=
- [elpa] externals/elisa f744ce305a 67/98: Add reparse current collection command, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 9ad7827337 70/98: Fix semantic split with single chunk, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 439ed1d4f8 76/98: Make executable customization simpler, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa e5691f59c5 80/98: Make syncronous functions non-interactive, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa e92628390b 82/98: Update example configuration, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 39915439a4 84/98: Update installation instructions, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa fbfe3b4ae1 86/98: Merge pull request #12 from s-kostyaev/semantic-split, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 3882b9b322 87/98: Bump version, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 04d580f072 92/98: add vector- and vss-path to injected variables on async, ELPA Syncer, 2024/07/17
- [elpa] externals/elisa 1acc89545d 31/98: Merge pull request #13 from s-kostyaev/fix-builtin-manuals-parsing, ELPA Syncer, 2024/07/17