From 2504d6b9552fd36a518802ea09361b9b8c9f6f97 Mon Sep 17 00:00:00 2001 From: MerCry Date: Fri, 6 Mar 2026 01:14:05 +0800 Subject: [PATCH] feat: add configurable share link base URL for container deployment [AC-IDMP-SHARE] --- ai-service/app/api/openapi/share_page.py | 8 +++++++- ai-service/app/core/config.py | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ai-service/app/api/openapi/share_page.py b/ai-service/app/api/openapi/share_page.py index 61bc71e..71dcffb 100644 --- a/ai-service/app/api/openapi/share_page.py +++ b/ai-service/app/api/openapi/share_page.py @@ -24,6 +24,7 @@ from app.api.mid.dialogue import ( get_trace_logger, respond_dialogue, ) +from app.core.config import get_settings from app.core.database import get_session from app.core.tenant import clear_tenant_context, set_tenant_context from app.models.mid.schemas import DialogueRequest, HistoryMessage @@ -78,7 +79,12 @@ async def create_public_share_token(request: Request, body: CreatePublicShareTok expires_in_minutes=body.expires_in_minutes, ) - base_url = str(request.base_url).rstrip("/") + # Use configured base URL if available, otherwise fallback to request base_url + settings = get_settings() + if settings.share_link_base_url: + base_url = settings.share_link_base_url.rstrip("/") + else: + base_url = str(request.base_url).rstrip("/") share_url = f"{base_url}/openapi/v1/share/chat?token={token}" return CreatePublicShareTokenResponse( share_token=token, diff --git a/ai-service/app/core/config.py b/ai-service/app/core/config.py index 27bcb13..a21421d 100644 --- a/ai-service/app/core/config.py +++ b/ai-service/app/core/config.py @@ -67,6 +67,9 @@ class Settings(BaseSettings): frontend_base_url: str = "http://localhost:3000" + # Share link base URL (for container deployment, use external domain) + share_link_base_url: str = "" + @lru_cache def get_settings() -> Settings: