diff --git a/.gitignore b/.gitignore index 53ae0ad8..9b34b7af 100644 --- a/.gitignore +++ b/.gitignore @@ -190,3 +190,5 @@ Thumbs.db # Milvus **/volumes/ + +**/rag_storage/ \ No newline at end of file diff --git a/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java b/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java index 722f83a0..f0624fdc 100644 --- a/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java +++ b/backend/api-gateway/src/main/java/com/datamate/gateway/ApiGatewayApplication.java @@ -39,7 +39,11 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { // 数据归集服务路由 .route("data-collection", r -> r.path("/api/data-collection/**") - .uri("http://datamate-backend-python:18000")) + .uri("http://datamate-backend-python:18000")) + + // 知识图谱RAG服务路由 + .route("graph-rag", r -> r.path("/api/rag/**") + .uri("http://datamate-backend-python:18000")) .route("deer-flow-frontend", r -> r.path("/chat/**") .uri("http://deer-flow-frontend:3000")) diff --git a/deployment/docker/datamate/docker-compose.yml b/deployment/docker/datamate/docker-compose.yml index 5cced821..932dcd5a 100644 --- a/deployment/docker/datamate/docker-compose.yml +++ b/deployment/docker/datamate/docker-compose.yml @@ -32,6 +32,7 @@ services: - dataset_volume:/dataset - flow_volume:/flow - log_volume:/var/log/datamate + - graph_data_volume:/data/rag_storage networks: [ datamate ] depends_on: - datamate-database @@ -335,6 +336,8 @@ volumes: name: datamate-operator-packages-volume mineru_log_volume: name: datamate-mineru_log_volume + graph_data_volume: + name: datamate-graph-data-volume # Deer Flow deer-flow-log-volume: diff --git a/runtime/datamate-python/.env.example b/runtime/datamate-python/.env.example index bac51208..07b3221f 100644 --- a/runtime/datamate-python/.env.example +++ b/runtime/datamate-python/.env.example @@ -5,6 +5,7 @@ PORT=18000 DEBUG=true LOG_LEVEL=DEBUG LOG_FILE_DIR=./logs +RAG_STORAGE_DIR=./rag_storage # DataBase MYSQL_HOST=localhost diff --git a/runtime/datamate-python/app/core/config.py b/runtime/datamate-python/app/core/config.py index dd3e3319..0e8a3c1d 100644 --- a/runtime/datamate-python/app/core/config.py +++ b/runtime/datamate-python/app/core/config.py @@ -27,6 +27,7 @@ class Config: log_level: str = "INFO" debug: bool = True log_file_dir: str = "/var/log/datamate/backend-python" + rag_storage_dir: str = "/data/rag_storage" # Database pgsql_host: str = "datamate-database" diff --git a/runtime/datamate-python/app/module/rag/service/graph_rag.py b/runtime/datamate-python/app/module/rag/service/graph_rag.py index 4c366c5e..c118a5d2 100644 --- a/runtime/datamate-python/app/module/rag/service/graph_rag.py +++ b/runtime/datamate-python/app/module/rag/service/graph_rag.py @@ -1,5 +1,7 @@ import os +from pathlib import Path from typing import Awaitable, Callable, Optional +from app.core.config import settings import numpy as np from lightrag import LightRAG @@ -9,7 +11,7 @@ from lightrag.utils import setup_logger, EmbeddingFunc, get_env_value setup_logger("lightrag", level="INFO") -DEFAULT_WORKING_DIR = os.path.join(os.getcwd(), "rag_storage") +DEFAULT_WORKING_DIR = Path(settings.rag_storage_dir) async def build_llm_model_func(model_name: str, base_url: str, api_key: str) -> Callable[..., Awaitable[str]]: