You've already forked DataMate
feature: deer-flow支持从datamate获取外部接入模型 (#83)
* feature: deer-flow支持从datamate获取外部接入模型
This commit is contained in:
@@ -58,9 +58,10 @@ public class ModelConfigApplicationService {
|
||||
.baseUrl(modelConfig.getBaseUrl())
|
||||
.apiKey(modelConfig.getApiKey())
|
||||
.isEnabled(true)
|
||||
.isDefault(modelConfig.getIsDefault())
|
||||
.build();
|
||||
ModelClient.checkHealth(newConfig);
|
||||
modelConfigRepository.save(newConfig);
|
||||
modelConfigRepository.saveAndSetDefault(newConfig);
|
||||
return newConfig;
|
||||
}
|
||||
|
||||
@@ -74,7 +75,7 @@ public class ModelConfigApplicationService {
|
||||
modelConfig.setApiKey(updateModelRequest.getApiKey());
|
||||
modelConfig.setIsEnabled(true);
|
||||
ModelClient.checkHealth(modelConfig);
|
||||
modelConfigRepository.updateById(modelConfig);
|
||||
modelConfigRepository.updateAndSetDefault(modelConfig, updateModelRequest.getIsDefault());
|
||||
return modelConfig;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,4 +42,9 @@ public class ModelConfig extends BaseEntity<String> {
|
||||
* 是否启用:1-启用,0-禁用
|
||||
*/
|
||||
private Boolean isEnabled;
|
||||
|
||||
/**
|
||||
* 是否默认:1-默认,0-非默认
|
||||
*/
|
||||
private Boolean isDefault;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.datamate.common.setting.domain.repository;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.repository.IRepository;
|
||||
import com.datamate.common.setting.domain.entity.ModelConfig;
|
||||
import com.datamate.common.setting.domain.entity.ModelType;
|
||||
import com.datamate.common.setting.interfaces.rest.dto.QueryModelRequest;
|
||||
|
||||
/**
|
||||
@@ -19,4 +20,10 @@ public interface ModelConfigRepository extends IRepository<ModelConfig> {
|
||||
* @return 模型配置列表
|
||||
*/
|
||||
IPage<ModelConfig> page(QueryModelRequest queryModelRequest);
|
||||
|
||||
void saveAndSetDefault(ModelConfig modelConfig);
|
||||
|
||||
void removeDefault(ModelType type);
|
||||
|
||||
void updateAndSetDefault(ModelConfig modelConfig, Boolean isDefault);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
package com.datamate.common.setting.infrastructure.persistence.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.repository.CrudRepository;
|
||||
import com.datamate.common.setting.domain.entity.ModelConfig;
|
||||
import com.datamate.common.setting.domain.entity.ModelType;
|
||||
import com.datamate.common.setting.domain.repository.ModelConfigRepository;
|
||||
import com.datamate.common.setting.infrastructure.persistence.mapper.ModelConfigMapper;
|
||||
import com.datamate.common.setting.interfaces.rest.dto.QueryModelRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Objects;
|
||||
@@ -32,6 +35,36 @@ public class ModelConfigRepositoryImpl extends CrudRepository<ModelConfigMapper,
|
||||
return this.page(page, new LambdaQueryWrapper<ModelConfig>()
|
||||
.eq(StringUtils.hasText(queryModelRequest.getProvider()), ModelConfig::getProvider, queryModelRequest.getProvider())
|
||||
.eq(Objects.nonNull(queryModelRequest.getType()), ModelConfig::getType, queryModelRequest.getType())
|
||||
.eq(Objects.nonNull(queryModelRequest.getIsEnabled()), ModelConfig::getIsEnabled, queryModelRequest.getIsEnabled()));
|
||||
.eq(Objects.nonNull(queryModelRequest.getIsEnabled()), ModelConfig::getIsEnabled, queryModelRequest.getIsEnabled())
|
||||
.eq(Objects.nonNull(queryModelRequest.getIsDefault()), ModelConfig::getIsDefault, queryModelRequest.getIsDefault()));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void saveAndSetDefault(ModelConfig modelConfig) {
|
||||
LambdaQueryWrapper<ModelConfig> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ModelConfig::getType, modelConfig.getType()).eq(ModelConfig::getIsDefault, true);
|
||||
if (this.getOne(queryWrapper) == null) {
|
||||
modelConfig.setIsDefault(true);
|
||||
} else {
|
||||
removeDefault(modelConfig.getType());
|
||||
}
|
||||
super.save(modelConfig);
|
||||
}
|
||||
|
||||
public void removeDefault(ModelType type) {
|
||||
LambdaUpdateWrapper<ModelConfig> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(ModelConfig::getIsDefault, false)
|
||||
.eq(ModelConfig::getType, type)
|
||||
.eq(ModelConfig::getIsDefault, true);
|
||||
this.update(updateWrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void updateAndSetDefault(ModelConfig modelConfig, Boolean isDefault) {
|
||||
if (!modelConfig.getIsDefault() && isDefault) {
|
||||
removeDefault(modelConfig.getType());
|
||||
}
|
||||
modelConfig.setIsDefault(isDefault);
|
||||
this.updateById(modelConfig);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,4 +43,9 @@ public class CreateModelRequest {
|
||||
* 是否启用:1-启用,0-禁用
|
||||
*/
|
||||
private Boolean isEnabled;
|
||||
|
||||
/**
|
||||
* 是否默认:1-默认,0-非默认
|
||||
*/
|
||||
private Boolean isDefault;
|
||||
}
|
||||
|
||||
@@ -24,4 +24,6 @@ public class QueryModelRequest extends PagingQuery {
|
||||
private ModelType type;
|
||||
|
||||
private Boolean isEnabled;
|
||||
|
||||
private Boolean isDefault;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user