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
This commit is contained in:
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user