diff --git a/src/main/frontend/common/file/util.cljs b/src/main/frontend/common/file/util.cljs index 6b2b300068..ffb6b15739 100644 --- a/src/main/frontend/common/file/util.cljs +++ b/src/main/frontend/common/file/util.cljs @@ -76,13 +76,13 @@ ;; A fast pprint alternative. (defn print-prefix-map* [prefix m print-one writer opts] (pr-sequential-writer - writer - (fn [e w opts] - (print-one (key e) w opts) - (-write w \space) - (print-one (val e) w opts)) - (str prefix "\n{") \newline "}" - opts (seq m))) + writer + (fn [e w opts] + (print-one (key e) w opts) + (-write w \space) + (print-one (val e) w opts)) + (str prefix "\n{") \newline "}" + opts (seq m))) (defn ugly-pr-str "Ugly printing fast, with newlines so that git diffs are smaller" @@ -91,6 +91,6 @@ (pr-str x))) (defn post-message - [type data] - (when (exists? js/self) - (.postMessage js/self (ldb/write-transit-str [type data])))) \ No newline at end of file + [type data & {:keys [port]}] + (when-let [worker (or port js/self)] + (.postMessage worker (ldb/write-transit-str [type data])))) diff --git a/src/main/frontend/inference_worker/inference_worker.cljs b/src/main/frontend/inference_worker/inference_worker.cljs index bf0377db2c..58ad0afd5d 100644 --- a/src/main/frontend/inference_worker/inference_worker.cljs +++ b/src/main/frontend/inference_worker/inference_worker.cljs @@ -67,4 +67,6 @@ (glogi-console/install!) (let [port (first (.-ports e)) ^js obj #_{:clj-kondo/ignore [:unresolved-symbol]} (InferenceWorker.)] + (reset! infer-worker.text-embedding/*port port) + (.start port) (Comlink/expose obj port)))) diff --git a/src/main/frontend/inference_worker/text_embedding.cljs b/src/main/frontend/inference_worker/text_embedding.cljs index 85b1b2c10f..e21f79badf 100644 --- a/src/main/frontend/inference_worker/text_embedding.cljs +++ b/src/main/frontend/inference_worker/text_embedding.cljs @@ -19,6 +19,8 @@ (log/info :delete-hnsw-index repo) (.delete hnsw-index)))))) +(defonce *port (atom nil)) + (def ^:private embedding-opts #js{"pooling" "mean" "normalize" true}) (def ^:private init-max-elems 100) @@ -181,7 +183,7 @@ ;; :hnsw-config {:dims 1024}} }) -(def ^:private *load-model-progress (atom nil)) +(defonce ^:private *load-model-progress (atom nil)) (defn