From 20be3e6601a52eedc6c4a7b12daf9e57b0cd8f4b Mon Sep 17 00:00:00 2001 From: lexluo09 <39718951+lexluo09@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:34:45 +0800 Subject: [PATCH] (improvement)(Headless) Initialize meta vectors after initializing the model but before querying. (#964) --- .../listener/FullMetaEmbeddingListener.java | 33 +++++++++++++++++++ ...istener.java => SqlEmbeddingListener.java} | 3 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/FullMetaEmbeddingListener.java rename headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/{EmbeddingInitListener.java => SqlEmbeddingListener.java} (95%) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/FullMetaEmbeddingListener.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/FullMetaEmbeddingListener.java new file mode 100644 index 000000000..36ebe6d78 --- /dev/null +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/FullMetaEmbeddingListener.java @@ -0,0 +1,33 @@ +package com.tencent.supersonic.headless.server.listener; + +import com.tencent.supersonic.headless.core.chat.parser.JavaLLMProxy; +import com.tencent.supersonic.headless.core.utils.ComponentFactory; +import com.tencent.supersonic.headless.server.schedule.EmbeddingTask; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@Order(2) +public class FullMetaEmbeddingListener implements CommandLineRunner { + @Autowired + private EmbeddingTask embeddingTask; + + @Override + public void run(String... args) { + initMetaEmbedding(); + } + + public void initMetaEmbedding() { + try { + if (ComponentFactory.getLLMProxy() instanceof JavaLLMProxy) { + embeddingTask.reloadMetaEmbedding(); + } + } catch (Exception e) { + log.error("initMetaEmbedding error", e); + } + } +} diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/EmbeddingInitListener.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SqlEmbeddingListener.java similarity index 95% rename from headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/EmbeddingInitListener.java rename to headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SqlEmbeddingListener.java index 20e50e7e6..ca9249e42 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/EmbeddingInitListener.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SqlEmbeddingListener.java @@ -10,12 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; + import java.util.List; @Slf4j @Component @Order(0) -public class EmbeddingInitListener implements CommandLineRunner { +public class SqlEmbeddingListener implements CommandLineRunner { @Autowired private SqlExamplarLoader sqlExamplarLoader;