From 2c6adf1f4304df931ac5801fc17597c7c59b7acb Mon Sep 17 00:00:00 2001 From: Yuzhiran Dev Date: Wed, 27 May 2026 10:47:02 +0800 Subject: [PATCH] fix: system_prompt now read from DB LLMConfig - _get_db_defaults returns system_prompt from DB - call_llm(system_prompt=None) falls back to DB value - DB already has system_prompt set for both providers --- platform/backend/app/core/nvidia_client.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/platform/backend/app/core/nvidia_client.py b/platform/backend/app/core/nvidia_client.py index 5fdf561..aa50666 100644 --- a/platform/backend/app/core/nvidia_client.py +++ b/platform/backend/app/core/nvidia_client.py @@ -79,15 +79,19 @@ def _get_db_defaults(provider: Optional[str] = None) -> dict: cfg = db.query(LLMConfig).filter(LLMConfig.provider == p).order_by(LLMConfig.is_active.desc()).first() db.close() if cfg: - return {"temperature": cfg.temperature, "max_tokens": cfg.max_tokens} + return { + "temperature": cfg.temperature, + "max_tokens": cfg.max_tokens, + "system_prompt": cfg.system_prompt or "你是一个专业的内容创作助手。", + } except Exception: pass - return {"temperature": 0.20, "max_tokens": 2048} + return {"temperature": 0.20, "max_tokens": 2048, "system_prompt": "你是一个专业的内容创作助手。"} def call_llm( prompt: str, model: Optional[str] = None, - system_prompt: str = "你是一个专业的内容创作助手。", + system_prompt: Optional[str] = None, temperature: Optional[float] = None, max_tokens: Optional[int] = None, top_p: float = 0.70, @@ -100,6 +104,7 @@ def call_llm( defaults = _get_db_defaults(provider) temperature = temperature if temperature is not None else defaults["temperature"] max_tokens = max_tokens if max_tokens is not None else defaults["max_tokens"] + system_prompt = system_prompt if system_prompt is not None else defaults["system_prompt"] cfg = _get_provider_config(provider) endpoint = f"{cfg['base_url'].rstrip('/')}/chat/completions" headers = {