Skip to content

Commit 6d61348

Browse files
authored
feat: deer-flow通过gateway转发 (#193)
1 parent d82bff4 commit 6d61348

File tree

8 files changed

+53
-103
lines changed

8 files changed

+53
-103
lines changed

Makefile

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -257,16 +257,11 @@ VALID_SERVICE_TARGETS := datamate backend frontend runtime mineru "deer-flow" mi
257257
elif [ "$*" = "mineru" ]; then \
258258
REGISTRY=$(REGISTRY) && docker compose -f deployment/docker/datamate/docker-compose.yml up -d datamate-mineru; \
259259
elif [ "$*" = "datamate" ]; then \
260-
if docker compose ls --filter name=deer-flow | grep -q deer-flow; then \
261-
(NGINX_CONF="./backend-with-deer-flow.conf" REGISTRY=$(REGISTRY) docker compose -f deployment/docker/datamate/docker-compose.yml up -d); \
262-
else \
263-
(REGISTRY=$(REGISTRY) docker compose -f deployment/docker/datamate/docker-compose.yml up -d); \
264-
fi; \
260+
REGISTRY=$(REGISTRY) docker compose -f deployment/docker/datamate/docker-compose.yml up -d; \
265261
elif [ "$*" = "deer-flow" ]; then \
266262
cp runtime/deer-flow/.env deployment/docker/deer-flow/.env; \
267263
cp runtime/deer-flow/conf.yaml deployment/docker/deer-flow/conf.yaml; \
268264
REGISTRY=$(REGISTRY) docker compose -f deployment/docker/deer-flow/docker-compose.yml up -d; \
269-
NGINX_CONF="./backend-with-deer-flow.conf" REGISTRY=$(REGISTRY) docker compose -f deployment/docker/datamate/docker-compose.yml up -d; \
270265
elif [ "$*" = "milvus" ]; then \
271266
docker compose -f deployment/docker/milvus/docker-compose.yml up -d; \
272267
else \
@@ -300,9 +295,6 @@ VALID_SERVICE_TARGETS := datamate backend frontend runtime mineru "deer-flow" mi
300295
fi; \
301296
elif [ "$*" = "deer-flow" ]; then \
302297
docker compose -f deployment/docker/deer-flow/docker-compose.yml down; \
303-
if docker compose ls --filter name=datamate | grep -q datamate; then \
304-
REGISTRY=$(REGISTRY) docker compose -f deployment/docker/datamate/docker-compose.yml up -d; \
305-
fi; \
306298
elif [ "$*" = "milvus" ]; then \
307299
if [ "$(DELETE_VOLUMES_CHOICE)" = "1" ]; then \
308300
docker compose -f deployment/docker/milvus/docker-compose.yml down -v; \
@@ -337,7 +329,6 @@ VALID_K8S_TARGETS := mineru datamate deer-flow milvus label-studio
337329
cp runtime/deer-flow/.env deployment/helm/deer-flow/charts/public/.env; \
338330
cp runtime/deer-flow/conf.yaml deployment/helm/deer-flow/charts/public/conf.yaml; \
339331
helm upgrade deer-flow deployment/helm/deer-flow -n $(NAMESPACE) --install --set global.image.repository=$(REGISTRY); \
340-
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --install --set global.deerFlow.enable=true --set global.image.repository=$(REGISTRY); \
341332
elif [ "$*" = "milvus" ]; then \
342333
helm upgrade milvus deployment/helm/milvus -n $(NAMESPACE) --install; \
343334
fi
@@ -359,9 +350,6 @@ VALID_K8S_TARGETS := mineru datamate deer-flow milvus label-studio
359350
helm uninstall datamate -n $(NAMESPACE) --ignore-not-found; \
360351
elif [ "$*" = "deer-flow" ]; then \
361352
helm uninstall deer-flow -n $(NAMESPACE) --ignore-not-found; \
362-
if helm ls -n $(NAMESPACE) --filter datamate | grep -q datamate; then \
363-
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --set global.deerFlow.enable=false; \
364-
fi; \
365353
elif [ "$*" = "milvus" ]; then \
366354
helm uninstall milvus -n $(NAMESPACE) --ignore-not-found; \
367355
fi

backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
3333
.route("data-evaluation", r -> r.path("/api/evaluation/**")
3434
.uri("http://datamate-backend-python:18000"))
3535

36+
.route("deer-flow-frontend", r -> r.path("/chat/**")
37+
.uri("http://deer-flow-frontend:3000"))
38+
39+
.route("deer-flow-static", r -> r.path("/_next/**")
40+
.uri("http://deer-flow-frontend:3000"))
41+
42+
.route("deer-flow-backend", r -> r.path("/deer-flow-backend/**")
43+
.filters(f -> f.stripPrefix(1).prefixPath("/api"))
44+
.uri("http://deer-flow-backend:8000"))
45+
3646
// 其他后端服务
3747
.route("default", r -> r.path("/api/**")
3848
.uri("http://datamate-backend:8080"))

deployment/docker/datamate/backend-with-deer-flow.conf

Lines changed: 0 additions & 49 deletions
This file was deleted.

deployment/docker/datamate/backend.conf

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,44 @@ server {
77

88
client_max_body_size 1024M;
99

10+
add_header Set-Cookie "NEXT_LOCALE=zh";
11+
1012
location /api/ {
1113
proxy_pass http://datamate-gateway:8080/api/;
1214
proxy_set_header Host $host;
1315
proxy_set_header X-Real-IP $remote_addr;
1416
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
1517
}
1618

19+
location /chat {
20+
proxy_pass http://datamate-gateway:8080/chat;
21+
proxy_set_header Host $host;
22+
proxy_set_header X-Real-IP $remote_addr;
23+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
24+
25+
proxy_intercept_errors on;
26+
error_page 500 501 502 503 504 =200 @static_fallback;
27+
}
28+
29+
location /_next {
30+
proxy_pass http://datamate-gateway:8080/_next;
31+
proxy_set_header Host $host;
32+
proxy_set_header X-Real-IP $remote_addr;
33+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
34+
}
35+
36+
location /deer-flow-backend {
37+
proxy_pass http://datamate-gateway:8080/deer-flow-backend;
38+
proxy_set_header Host $host;
39+
proxy_set_header X-Real-IP $remote_addr;
40+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
41+
}
42+
43+
location @static_fallback {
44+
root /opt/frontend;
45+
try_files $uri $uri/ /index.html;
46+
}
47+
1748
location / {
1849
root /opt/frontend;
1950
try_files $uri $uri/ /index.html;

deployment/docker/datamate/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ services:
4747
- "30000:80" # nodePort → hostPort
4848
volumes:
4949
- frontend_log_volume:/var/log/datamate/frontend
50-
- ${NGINX_CONF:-./backend.conf}:/etc/nginx/conf.d/backend.conf
50+
- ./backend.conf:/etc/nginx/conf.d/backend.conf
5151
networks: [ datamate ]
5252
depends_on:
5353
- datamate-backend
Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{{- if .Values.global.deerFlow.enable }}
21
apiVersion: v1
32
kind: ConfigMap
43
metadata:
@@ -24,62 +23,36 @@ data:
2423
}
2524
2625
location /chat {
27-
proxy_pass http://deer-flow-frontend:3000/chat;
26+
proxy_pass http://datamate-gateway:8080/chat;
2827
proxy_set_header Host $host;
2928
proxy_set_header X-Real-IP $remote_addr;
3029
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
30+
31+
proxy_intercept_errors on;
32+
error_page 500 501 502 503 504 =200 @static_fallback;
3133
}
3234
3335
location /_next {
34-
proxy_pass http://deer-flow-frontend:3000/_next;
36+
proxy_pass http://datamate-gateway:8080/_next;
3537
proxy_set_header Host $host;
3638
proxy_set_header X-Real-IP $remote_addr;
3739
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
3840
}
3941
40-
location /deer-flow-backend/ {
41-
proxy_pass http://deer-flow-backend:8000/api/;
42+
location /deer-flow-backend {
43+
proxy_pass http://datamate-gateway:8080/deer-flow-backend;
4244
proxy_set_header Host $host;
4345
proxy_set_header X-Real-IP $remote_addr;
4446
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
4547
}
4648
47-
location / {
48-
if ($query_string ~* "_rsc=pmmii") {
49-
proxy_pass http://deer-flow-frontend:3000;
50-
break;
51-
}
52-
49+
location @static_fallback {
5350
root /opt/frontend;
5451
try_files $uri $uri/ /index.html;
5552
}
56-
}
57-
{{- else }}
58-
apiVersion: v1
59-
kind: ConfigMap
60-
metadata:
61-
name: datamate-nginx-conf
62-
data:
63-
backend.conf: |
64-
server {
65-
listen 80;
66-
server_name 0.0.0.0;
67-
68-
access_log /var/log/datamate/frontend/access.log main;
69-
error_log /var/log/datamate/frontend/error.log notice;
70-
71-
client_max_body_size 1024M;
72-
73-
location /api/ {
74-
proxy_pass http://datamate-gateway:8080/api/;
75-
proxy_set_header Host $host;
76-
proxy_set_header X-Real-IP $remote_addr;
77-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
78-
}
7953
8054
location / {
8155
root /opt/frontend;
8256
try_files $uri $uri/ /index.html;
8357
}
84-
}
85-
{{- end }}
58+
}

deployment/helm/datamate/values.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
global:
66
namespace: datamate
7-
deerFlow:
8-
enable: false
97
image:
108
repository: "ghcr.io/modelengine-group/"
119
pullPolicy: "IfNotPresent"

frontend/src/pages/Home/Home.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ export default function WelcomePage() {
3131
});
3232

3333
// 检查 HTTP 状态码在 200-299 范围内
34-
const contentType = response.headers.get("content-type");
35-
if (contentType && contentType.includes('application/json')) {
34+
if (response.ok) {
3635
return true;
3736
}
3837
} catch (error) {

0 commit comments

Comments
 (0)