mirror of
https://github.com/ccmjga/zhilu-admin
synced 2026-04-08 14:37:38 +00:00
fix flyway depends bean
This commit is contained in:
@@ -1,23 +1,27 @@
|
|||||||
package com.zl.mjga.config.ai;
|
package com.zl.mjga.config.ai;
|
||||||
|
|
||||||
|
import com.zl.mjga.service.LlmService;
|
||||||
import dev.langchain4j.community.model.zhipu.ZhipuAiStreamingChatModel;
|
import dev.langchain4j.community.model.zhipu.ZhipuAiStreamingChatModel;
|
||||||
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
|
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
|
||||||
import dev.langchain4j.model.openai.OpenAiStreamingChatModel;
|
import dev.langchain4j.model.openai.OpenAiStreamingChatModel;
|
||||||
import dev.langchain4j.service.AiServices;
|
import dev.langchain4j.service.AiServices;
|
||||||
import lombok.RequiredArgsConstructor;
|
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.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.DependsOn;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class ChatModelConfig {
|
public class ChatModelConfig {
|
||||||
|
|
||||||
private final DeepSeekConfiguration deepSeekConfiguration;
|
private final LlmService llmService;
|
||||||
private final ZhiPuConfiguration zhiPuConfiguration;
|
|
||||||
private final PromptConfiguration promptConfiguration;
|
private final PromptConfiguration promptConfiguration;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ZhipuAiStreamingChatModel zhipuChatModel() {
|
@DependsOn("flywayInitializer")
|
||||||
|
public ZhipuAiStreamingChatModel zhipuChatModel(ZhiPuConfiguration zhiPuConfiguration) {
|
||||||
return ZhipuAiStreamingChatModel.builder()
|
return ZhipuAiStreamingChatModel.builder()
|
||||||
.model(zhiPuConfiguration.getModelName())
|
.model(zhiPuConfiguration.getModelName())
|
||||||
.apiKey(zhiPuConfiguration.getApiKey())
|
.apiKey(zhiPuConfiguration.getApiKey())
|
||||||
@@ -27,7 +31,8 @@ public class ChatModelConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public OpenAiStreamingChatModel deepSeekChatModel() {
|
@DependsOn("flywayInitializer")
|
||||||
|
public OpenAiStreamingChatModel deepSeekChatModel(DeepSeekConfiguration deepSeekConfiguration) {
|
||||||
return OpenAiStreamingChatModel.builder()
|
return OpenAiStreamingChatModel.builder()
|
||||||
.baseUrl(deepSeekConfiguration.getBaseUrl())
|
.baseUrl(deepSeekConfiguration.getBaseUrl())
|
||||||
.apiKey(deepSeekConfiguration.getApiKey())
|
.apiKey(deepSeekConfiguration.getApiKey())
|
||||||
@@ -36,6 +41,7 @@ public class ChatModelConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@DependsOn("flywayInitializer")
|
||||||
public AiChatAssistant deepSeekChatAssistant(OpenAiStreamingChatModel deepSeekChatModel) {
|
public AiChatAssistant deepSeekChatAssistant(OpenAiStreamingChatModel deepSeekChatModel) {
|
||||||
return AiServices.builder(AiChatAssistant.class)
|
return AiServices.builder(AiChatAssistant.class)
|
||||||
.streamingChatModel(deepSeekChatModel)
|
.streamingChatModel(deepSeekChatModel)
|
||||||
@@ -45,6 +51,7 @@ public class ChatModelConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@DependsOn("flywayInitializer")
|
||||||
public AiChatAssistant zhiPuChatAssistant(ZhipuAiStreamingChatModel zhipuChatModel) {
|
public AiChatAssistant zhiPuChatAssistant(ZhipuAiStreamingChatModel zhipuChatModel) {
|
||||||
return AiServices.builder(AiChatAssistant.class)
|
return AiServices.builder(AiChatAssistant.class)
|
||||||
.streamingChatModel(zhipuChatModel)
|
.streamingChatModel(zhipuChatModel)
|
||||||
@@ -52,4 +59,22 @@ public class ChatModelConfig {
|
|||||||
.chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10))
|
.chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10))
|
||||||
.build();
|
.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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,18 @@
|
|||||||
package com.zl.mjga.config.ai;
|
package com.zl.mjga.config.ai;
|
||||||
|
|
||||||
import com.zl.mjga.service.LlmService;
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.jooq.generated.default_schema.enums.LlmCodeEnum;
|
|
||||||
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
|
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Component
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
public class DeepSeekConfiguration {
|
public class DeepSeekConfiguration {
|
||||||
|
|
||||||
private String baseUrl;
|
private String baseUrl;
|
||||||
private String apiKey;
|
private String apiKey;
|
||||||
private String modelName;
|
private String modelName;
|
||||||
|
|
||||||
private final LlmService llmService;
|
public void init(AiLlmConfig config) {
|
||||||
|
this.baseUrl = config.getUrl();
|
||||||
@PostConstruct
|
this.apiKey = config.getApiKey();
|
||||||
public void init() {
|
this.modelName = config.getModelName();
|
||||||
AiLlmConfig aiLlmConfig = llmService.loadConfig(LlmCodeEnum.DEEP_SEEK);
|
|
||||||
baseUrl = aiLlmConfig.getUrl();
|
|
||||||
apiKey = aiLlmConfig.getApiKey();
|
|
||||||
modelName = aiLlmConfig.getModelName();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.zl.mjga.config.ai;
|
package com.zl.mjga.config.ai;
|
||||||
|
|
||||||
import com.zl.mjga.service.LlmService;
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.jooq.generated.default_schema.enums.LlmCodeEnum;
|
|
||||||
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
|
import org.jooq.generated.mjga.tables.pojos.AiLlmConfig;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -15,13 +12,9 @@ public class ZhiPuConfiguration {
|
|||||||
private String apiKey;
|
private String apiKey;
|
||||||
private String modelName;
|
private String modelName;
|
||||||
|
|
||||||
private final LlmService llmService;
|
public void init(AiLlmConfig config) {
|
||||||
|
this.baseUrl = config.getUrl();
|
||||||
@PostConstruct
|
this.apiKey = config.getApiKey();
|
||||||
public void init() {
|
this.modelName = config.getModelName();
|
||||||
AiLlmConfig aiLlmConfig = llmService.loadConfig(LlmCodeEnum.ZHI_PU);
|
|
||||||
baseUrl = aiLlmConfig.getUrl();
|
|
||||||
apiKey = aiLlmConfig.getApiKey();
|
|
||||||
modelName = aiLlmConfig.getModelName();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.zl.mjga.config.ai.AiChatAssistant;
|
|||||||
import dev.langchain4j.service.TokenStream;
|
import dev.langchain4j.service.TokenStream;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.jooq.generated.mjga.tables.pojos.AiLlmConfig;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.jooq.Record;
|
import org.jooq.Record;
|
||||||
import org.jooq.Result;
|
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.jooq.generated.mjga.tables.pojos.AiLlmConfig;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -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
|
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',
|
'DEEP_SEEK',
|
||||||
'ZHI_PU'
|
'ZHI_PU'
|
||||||
);
|
);
|
||||||
@@ -75,7 +75,7 @@ CREATE TYPE "llm_code_enum" AS ENUM (
|
|||||||
CREATE TABLE mjga.ai_llm_config (
|
CREATE TABLE mjga.ai_llm_config (
|
||||||
id BIGSERIAL NOT NULL UNIQUE,
|
id BIGSERIAL NOT NULL UNIQUE,
|
||||||
name VARCHAR(255) 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,
|
model_name VARCHAR(255) NOT NULL,
|
||||||
api_key VARCHAR(255) NOT NULL,
|
api_key VARCHAR(255) NOT NULL,
|
||||||
url VARCHAR(255) NOT NULL,
|
url VARCHAR(255) NOT NULL,
|
||||||
|
|||||||
@@ -30,5 +30,5 @@ VALUES (1, 1),
|
|||||||
|
|
||||||
INSERT INTO mjga.ai_llm_config (name,code,model_name, api_key, url, enable, priority)
|
INSERT INTO mjga.ai_llm_config (name,code,model_name, api_key, url, enable, priority)
|
||||||
VALUES
|
VALUES
|
||||||
('DeepSeek','DEEP_SEEK','deepseek-chat','', 'https://api.deepseek.com', false, 0),
|
('DeepSeek','DEEP_SEEK','deepseek-chat','your_api_key', 'https://api.deepseek.com', false, 0),
|
||||||
('智谱清言','ZHI_PU','glm-4-flash', '', 'https://open.bigmodel.cn/', false, 1);
|
('智谱清言','ZHI_PU','glm-4-flash', 'your_api_key', 'https://open.bigmodel.cn/', false, 1);
|
||||||
Reference in New Issue
Block a user