Skip to content

Commit 5cef9cb

Browse files
authored
feature: deer-flow支持从datamate获取外部接入模型 (#83)
* feature: deer-flow支持从datamate获取外部接入模型
1 parent 604fd01 commit 5cef9cb

File tree

19 files changed

+177
-383
lines changed

19 files changed

+177
-383
lines changed

.github/workflows/docker-image-backend-python.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ on:
44
push:
55
branches: [ "main" ]
66
paths:
7-
- 'backend/**'
87
- 'scripts/images/datamate-python/**'
98
- '.github/workflows/docker-image-backend-python.yml'
109
pull_request:
1110
branches: [ "main" ]
1211
paths:
13-
- 'backend/**'
1412
- 'scripts/images/datamate-python/**'
1513
- '.github/workflows/docker-image-backend-python.yml'
1614
workflow_dispatch:

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,11 @@ mineru-k8s-uninstall:
174174

175175
.PHONY: datamate-docker-install
176176
datamate-docker-install:
177-
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d
177+
@if docker compose ls --filter name=deer-flow | grep -q deer-flow; then \
178+
cd deployment/docker/datamate && export NGINX_CONF="./backend-with-deer-flow.conf" && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
179+
else \
180+
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
181+
fi
178182

179183
.PHONY: datamate-docker-uninstall
180184
datamate-docker-uninstall:

backend/services/operator-market-service/src/main/java/com/datamate/operator/interfaces/dto/OperatorsListPostRequest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.List;
55

66

7+
import com.datamate.common.interfaces.PagingQuery;
78
import lombok.Getter;
89
import lombok.Setter;
910

@@ -13,12 +14,7 @@
1314

1415
@Getter
1516
@Setter
16-
public class OperatorsListPostRequest {
17-
18-
private Integer page;
19-
20-
private Integer size;
21-
17+
public class OperatorsListPostRequest extends PagingQuery {
2218
private List<String> categories = new ArrayList<>();
2319

2420
private String operatorName;

backend/shared/domain-common/src/main/java/com/datamate/common/setting/application/ModelConfigApplicationService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,10 @@ public ModelConfig createModel(CreateModelRequest modelConfig) {
5858
.baseUrl(modelConfig.getBaseUrl())
5959
.apiKey(modelConfig.getApiKey())
6060
.isEnabled(true)
61+
.isDefault(modelConfig.getIsDefault())
6162
.build();
6263
ModelClient.checkHealth(newConfig);
63-
modelConfigRepository.save(newConfig);
64+
modelConfigRepository.saveAndSetDefault(newConfig);
6465
return newConfig;
6566
}
6667

@@ -74,7 +75,7 @@ public ModelConfig updateModel(String modelId, @Valid CreateModelRequest updateM
7475
modelConfig.setApiKey(updateModelRequest.getApiKey());
7576
modelConfig.setIsEnabled(true);
7677
ModelClient.checkHealth(modelConfig);
77-
modelConfigRepository.updateById(modelConfig);
78+
modelConfigRepository.updateAndSetDefault(modelConfig, updateModelRequest.getIsDefault());
7879
return modelConfig;
7980
}
8081

backend/shared/domain-common/src/main/java/com/datamate/common/setting/domain/entity/ModelConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,9 @@ public class ModelConfig extends BaseEntity<String> {
4242
* 是否启用:1-启用,0-禁用
4343
*/
4444
private Boolean isEnabled;
45+
46+
/**
47+
* 是否默认:1-默认,0-非默认
48+
*/
49+
private Boolean isDefault;
4550
}

backend/shared/domain-common/src/main/java/com/datamate/common/setting/domain/repository/ModelConfigRepository.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.baomidou.mybatisplus.core.metadata.IPage;
44
import com.baomidou.mybatisplus.extension.repository.IRepository;
55
import com.datamate.common.setting.domain.entity.ModelConfig;
6+
import com.datamate.common.setting.domain.entity.ModelType;
67
import com.datamate.common.setting.interfaces.rest.dto.QueryModelRequest;
78

89
/**
@@ -19,4 +20,10 @@ public interface ModelConfigRepository extends IRepository<ModelConfig> {
1920
* @return 模型配置列表
2021
*/
2122
IPage<ModelConfig> page(QueryModelRequest queryModelRequest);
23+
24+
void saveAndSetDefault(ModelConfig modelConfig);
25+
26+
void removeDefault(ModelType type);
27+
28+
void updateAndSetDefault(ModelConfig modelConfig, Boolean isDefault);
2229
}

backend/shared/domain-common/src/main/java/com/datamate/common/setting/infrastructure/persistence/impl/ModelConfigRepositoryImpl.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.datamate.common.setting.infrastructure.persistence.impl;
22

33
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4+
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
45
import com.baomidou.mybatisplus.core.metadata.IPage;
56
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
67
import com.baomidou.mybatisplus.extension.repository.CrudRepository;
78
import com.datamate.common.setting.domain.entity.ModelConfig;
9+
import com.datamate.common.setting.domain.entity.ModelType;
810
import com.datamate.common.setting.domain.repository.ModelConfigRepository;
911
import com.datamate.common.setting.infrastructure.persistence.mapper.ModelConfigMapper;
1012
import com.datamate.common.setting.interfaces.rest.dto.QueryModelRequest;
1113
import lombok.RequiredArgsConstructor;
1214
import org.springframework.stereotype.Repository;
15+
import org.springframework.transaction.annotation.Transactional;
1316
import org.springframework.util.StringUtils;
1417

1518
import java.util.Objects;
@@ -32,6 +35,36 @@ public IPage<ModelConfig> page(QueryModelRequest queryModelRequest) {
3235
return this.page(page, new LambdaQueryWrapper<ModelConfig>()
3336
.eq(StringUtils.hasText(queryModelRequest.getProvider()), ModelConfig::getProvider, queryModelRequest.getProvider())
3437
.eq(Objects.nonNull(queryModelRequest.getType()), ModelConfig::getType, queryModelRequest.getType())
35-
.eq(Objects.nonNull(queryModelRequest.getIsEnabled()), ModelConfig::getIsEnabled, queryModelRequest.getIsEnabled()));
38+
.eq(Objects.nonNull(queryModelRequest.getIsEnabled()), ModelConfig::getIsEnabled, queryModelRequest.getIsEnabled())
39+
.eq(Objects.nonNull(queryModelRequest.getIsDefault()), ModelConfig::getIsDefault, queryModelRequest.getIsDefault()));
40+
}
41+
42+
@Transactional
43+
public void saveAndSetDefault(ModelConfig modelConfig) {
44+
LambdaQueryWrapper<ModelConfig> queryWrapper = new LambdaQueryWrapper<>();
45+
queryWrapper.eq(ModelConfig::getType, modelConfig.getType()).eq(ModelConfig::getIsDefault, true);
46+
if (this.getOne(queryWrapper) == null) {
47+
modelConfig.setIsDefault(true);
48+
} else {
49+
removeDefault(modelConfig.getType());
50+
}
51+
super.save(modelConfig);
52+
}
53+
54+
public void removeDefault(ModelType type) {
55+
LambdaUpdateWrapper<ModelConfig> updateWrapper = new LambdaUpdateWrapper<>();
56+
updateWrapper.set(ModelConfig::getIsDefault, false)
57+
.eq(ModelConfig::getType, type)
58+
.eq(ModelConfig::getIsDefault, true);
59+
this.update(updateWrapper);
60+
}
61+
62+
@Transactional
63+
public void updateAndSetDefault(ModelConfig modelConfig, Boolean isDefault) {
64+
if (!modelConfig.getIsDefault() && isDefault) {
65+
removeDefault(modelConfig.getType());
66+
}
67+
modelConfig.setIsDefault(isDefault);
68+
this.updateById(modelConfig);
3669
}
3770
}

backend/shared/domain-common/src/main/java/com/datamate/common/setting/interfaces/rest/dto/CreateModelRequest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,9 @@ public class CreateModelRequest {
4343
* 是否启用:1-启用,0-禁用
4444
*/
4545
private Boolean isEnabled;
46+
47+
/**
48+
* 是否默认:1-默认,0-非默认
49+
*/
50+
private Boolean isDefault;
4651
}

backend/shared/domain-common/src/main/java/com/datamate/common/setting/interfaces/rest/dto/QueryModelRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,6 @@ public class QueryModelRequest extends PagingQuery {
2424
private ModelType type;
2525

2626
private Boolean isEnabled;
27+
28+
private Boolean isDefault;
2729
}

frontend/src/pages/SettingsPage/ModelAccess.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
Table,
99
Tooltip,
1010
Popconfirm,
11-
message,
11+
message, Switch,
1212
} from "antd";
1313
import {
1414
EditOutlined,
@@ -374,6 +374,14 @@ export default function EnvironmentAccess() {
374374
>
375375
<Select options={typeOptions} placeholder="选择模型类型"></Select>
376376
</Form.Item>
377+
<Form.Item
378+
name="isDefault"
379+
label="设为默认"
380+
required
381+
tooltip="当模型类型下仅有一个模型服务时,自动将其设为默认值。"
382+
>
383+
<Switch />
384+
</Form.Item>
377385
</Form>
378386
</Modal>
379387
</>

0 commit comments

Comments
 (0)