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: