fix flyway depends bean

This commit is contained in:
Chuck1sn
2025-05-23 11:58:29 +08:00
parent 0e84f4be11
commit 43728ee733
7 changed files with 43 additions and 36 deletions

View File

@@ -1,23 +1,27 @@
package com.zl.mjga.config.ai;
import com.zl.mjga.service.LlmService;
import dev.langchain4j.community.model.zhipu.ZhipuAiStreamingChatModel;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.openai.OpenAiStreamingChatModel;
import dev.langchain4j.service.AiServices;
import lombok.RequiredArgsConstructor;
import org.jooq.generated.mjga.enums.LlmCodeEnum;
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
@Configuration
@RequiredArgsConstructor
public class ChatModelConfig {
private final DeepSeekConfiguration deepSeekConfiguration;
private final ZhiPuConfiguration zhiPuConfiguration;
private final LlmService llmService;
private final PromptConfiguration promptConfiguration;
@Bean
public ZhipuAiStreamingChatModel zhipuChatModel() {
@DependsOn("flywayInitializer")
public ZhipuAiStreamingChatModel zhipuChatModel(ZhiPuConfiguration zhiPuConfiguration) {
return ZhipuAiStreamingChatModel.builder()
.model(zhiPuConfiguration.getModelName())
.apiKey(zhiPuConfiguration.getApiKey())
@@ -27,7 +31,8 @@ public class ChatModelConfig {
}
@Bean
public OpenAiStreamingChatModel deepSeekChatModel() {
@DependsOn("flywayInitializer")
public OpenAiStreamingChatModel deepSeekChatModel(DeepSeekConfiguration deepSeekConfiguration) {
return OpenAiStreamingChatModel.builder()
.baseUrl(deepSeekConfiguration.getBaseUrl())
.apiKey(deepSeekConfiguration.getApiKey())
@@ -36,6 +41,7 @@ public class ChatModelConfig {
}
@Bean
@DependsOn("flywayInitializer")
public AiChatAssistant deepSeekChatAssistant(OpenAiStreamingChatModel deepSeekChatModel) {
return AiServices.builder(AiChatAssistant.class)
.streamingChatModel(deepSeekChatModel)
@@ -45,6 +51,7 @@ public class ChatModelConfig {
}
@Bean
@DependsOn("flywayInitializer")
public AiChatAssistant zhiPuChatAssistant(ZhipuAiStreamingChatModel zhipuChatModel) {
return AiServices.builder(AiChatAssistant.class)
.streamingChatModel(zhipuChatModel)
@@ -52,4 +59,22 @@ public class ChatModelConfig {
.chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10))
.build();
}
@Bean
@DependsOn("flywayInitializer")
public DeepSeekConfiguration deepSeekConfiguration() {
DeepSeekConfiguration deepSeekConfiguration = new DeepSeekConfiguration();
AiLlmConfig deepSeek = llmService.loadConfig(LlmCodeEnum.DEEP_SEEK);
deepSeekConfiguration.init(deepSeek);
return deepSeekConfiguration;
}
@Bean
@DependsOn("flywayInitializer")
public ZhiPuConfiguration zhiPuConfiguration() {
ZhiPuConfiguration zhiPuConfiguration = new ZhiPuConfiguration();
AiLlmConfig aiLlmConfig = llmService.loadConfig(LlmCodeEnum.ZHI_PU);
zhiPuConfiguration.init(aiLlmConfig);
return zhiPuConfiguration;
}
}

View File

@@ -1,29 +1,18 @@
package com.zl.mjga.config.ai;
import com.zl.mjga.service.LlmService;
import jakarta.annotation.PostConstruct;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.jooq.generated.default_schema.enums.LlmCodeEnum;
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
import org.springframework.stereotype.Component;
@Data
@Component
@RequiredArgsConstructor
public class DeepSeekConfiguration {
private String baseUrl;
private String apiKey;
private String modelName;
private final LlmService llmService;
@PostConstruct
public void init() {
AiLlmConfig aiLlmConfig = llmService.loadConfig(LlmCodeEnum.DEEP_SEEK);
baseUrl = aiLlmConfig.getUrl();
apiKey = aiLlmConfig.getApiKey();
modelName = aiLlmConfig.getModelName();
public void init(AiLlmConfig config) {
this.baseUrl = config.getUrl();
this.apiKey = config.getApiKey();
this.modelName = config.getModelName();
}
}

View File

@@ -1,9 +1,6 @@
package com.zl.mjga.config.ai;
import com.zl.mjga.service.LlmService;
import jakarta.annotation.PostConstruct;
import lombok.Data;
import org.jooq.generated.default_schema.enums.LlmCodeEnum;
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
import org.springframework.stereotype.Component;
@@ -15,13 +12,9 @@ public class ZhiPuConfiguration {
private String apiKey;
private String modelName;
private final LlmService llmService;
@PostConstruct
public void init() {
AiLlmConfig aiLlmConfig = llmService.loadConfig(LlmCodeEnum.ZHI_PU);
baseUrl = aiLlmConfig.getUrl();
apiKey = aiLlmConfig.getApiKey();
modelName = aiLlmConfig.getModelName();
public void init(AiLlmConfig config) {
this.baseUrl = config.getUrl();
this.apiKey = config.getApiKey();
this.modelName = config.getModelName();
}
}

View File

@@ -4,7 +4,7 @@ import com.zl.mjga.config.ai.AiChatAssistant;
import dev.langchain4j.service.TokenStream;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jooq.generated.default_schema.enums.LlmCodeEnum;
import org.jooq.generated.mjga.enums.LlmCodeEnum;
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
import org.springframework.stereotype.Service;

View File

@@ -10,7 +10,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.generated.default_schema.enums.LlmCodeEnum;
import org.jooq.generated.mjga.enums.LlmCodeEnum;
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

View File

@@ -66,7 +66,7 @@ CREATE TABLE mjga.user_position_map (
FOREIGN KEY (position_id) REFERENCES mjga.position(id) ON UPDATE NO ACTION ON DELETE RESTRICT
);
CREATE TYPE "llm_code_enum" AS ENUM (
CREATE TYPE mjga.llm_code_enum AS ENUM (
'DEEP_SEEK',
'ZHI_PU'
);
@@ -75,7 +75,7 @@ CREATE TYPE "llm_code_enum" AS ENUM (
CREATE TABLE mjga.ai_llm_config (
id BIGSERIAL NOT NULL UNIQUE,
name VARCHAR(255) NOT NULL UNIQUE,
code LLM_CODE_ENUM NOT NULL UNIQUE,
code mjga.llm_code_enum NOT NULL UNIQUE,
model_name VARCHAR(255) NOT NULL,
api_key VARCHAR(255) NOT NULL,
url VARCHAR(255) NOT NULL,

View File

@@ -30,5 +30,5 @@ VALUES (1, 1),
INSERT INTO mjga.ai_llm_config (name,code,model_name, api_key, url, enable, priority)
VALUES
('DeepSeek','DEEP_SEEK','deepseek-chat','', 'https://api.deepseek.com', false, 0),
('智谱清言','ZHI_PU','glm-4-flash', '', 'https://open.bigmodel.cn/', false, 1);
('DeepSeek','DEEP_SEEK','deepseek-chat','your_api_key', 'https://api.deepseek.com', false, 0),
('智谱清言','ZHI_PU','glm-4-flash', 'your_api_key', 'https://open.bigmodel.cn/', false, 1);