summaryrefslogtreecommitdiffstats
path: root/semanticsearchscratchpad/create-embeddings.js
diff options
context:
space:
mode:
authordan <[email protected]>2023-06-07 17:20:38 -0400
committerdan <[email protected]>2023-06-07 17:20:38 -0400
commitace13cf4aa724c078a6a6f36a6f243cd4821a548 (patch)
tree4e6d9b520f25d4a44102dac49b0ece58f7ae6741 /semanticsearchscratchpad/create-embeddings.js
parent68616f40cc7786ac2d001db4bada203bfe477bc4 (diff)
downloaddump-ace13cf4aa724c078a6a6f36a6f243cd4821a548.tar.gz
dump-ace13cf4aa724c078a6a6f36a6f243cd4821a548.tar.bz2
dump-ace13cf4aa724c078a6a6f36a6f243cd4821a548.zip
proto: semantic search with indexdb caching embeddings
Diffstat (limited to 'semanticsearchscratchpad/create-embeddings.js')
-rw-r--r--semanticsearchscratchpad/create-embeddings.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/semanticsearchscratchpad/create-embeddings.js b/semanticsearchscratchpad/create-embeddings.js
new file mode 100644
index 0000000..bbb3a81
--- /dev/null
+++ b/semanticsearchscratchpad/create-embeddings.js
@@ -0,0 +1,30 @@
+onmessage = msg => {
+ const lines = msg.data;
+
+ const request = indexedDB.open("embeddings");
+
+ request.onupgradeneeded = (event) => {
+ console.log('onupgradeneeded')
+ const db = event.target.result;
+ db.createObjectStore('embeddings', {autoIncrement: true});
+ };
+
+ let embeddings;
+ request.onsuccess = (event) => {
+ const db = event.target.result;
+ embeddings = db.transaction('embeddings', 'readwrite').objectStore('embeddings').getAll();
+ if (!embeddings || !embeddings.length) {
+ createEmbeddings(lines)
+ .then(xsembs => {
+ embeddings = xsembs;
+ const st = db
+ .transaction('embeddings', 'readwrite')
+ .objectStore('embeddings');
+ xsembs.forEach(emb => {
+ console.log(emb);
+ st.add(emb);
+ });
+ });
+ }
+ };
+}