Browse Source

fix: contains hashcoding for replys listener keys

Junyi Du 2 years ago
parent
commit
b8583e1bc7

+ 2 - 1
libs/src/modules/LSPlugin.TextEncoder.ts

@@ -50,8 +50,9 @@ export class LSPluginTextEncoderService {
               ret = e
             } finally {
               if (v.reply) {
+                const payloadHash = payload['hash']
                 ctx.caller.call(
-                  `${hookEvent}:reply`, ret
+                  `${hookEvent}:reply:${payloadHash}`, ret
                 )
               }
             }

+ 7 - 3
src/main/frontend/ai/text_encoder.cljs

@@ -14,13 +14,17 @@
   ([service event payload reply?]
    (when-let [^js pl (plugin-handler/get-plugin-inst (:pid service))]
      (let [{:keys [name]} service
+           payload-hash (hash (:text payload))
+           payload (assoc payload :hash payload-hash)
            hookEvent (str "service:" event ":" name)]
        (.call (.-caller pl) hookEvent (bean/->js (merge {:graph (state/get-current-repo)} payload)))
        (when reply?
          (-> (p/create (fn [resolve _rej]
-                     (.once (.-caller pl) (str hookEvent ":reply")
-                            (fn [^js e]
-                              (resolve (bean/->clj e))))))
+                         ;; Following the same pattern as logseq libs
+                         ;; https://github.com/logseq/logseq/blob/bf2f5a147065ac4fd3e4d34f802a27b8ddb7e5eb/libs/src/modules/LSPlugin.TextEncoder.ts#L55
+                         (.once (.-caller pl) (str hookEvent ":reply:" payload-hash)
+                                (fn [^js e]
+                                  (resolve (bean/->clj e))))))
              (p/timeout 20000)
              (p/catch #(log/error :ai-text-encoder/encode-text-timeout {:message "Timeout waiting reply from text encoder service" 
                                                                         :hookEvent hookEvent 

+ 0 - 3
src/main/frontend/search/semantic.cljs

@@ -81,9 +81,6 @@
                                                                :id      (:id block)
                                                                :uuid    (:uuid block)}
                                                     embeds    (text-encoder/text-encode (:content block) encoder-name)
-                                                    _ (prn "debug block embeds -> vs")
-                                                    _ (prn (:content block))
-                                                    _ (prn embeds) ;; TODO Junyi
                                                     _         (vector-store/rm store-conn (str (:id block)))
                                                     emb-add->vs   (fn [embed]
                                                                     (vector-store/add store-conn embed (str (:id block)) (bean/->js metadata)))]