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()
|
cfg = db.query(LLMConfig).filter(LLMConfig.provider == p).order_by(LLMConfig.is_active.desc()).first()
|
||||||
db.close()
|
db.close()
|
||||||
if cfg:
|
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:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
return {"temperature": 0.20, "max_tokens": 2048}
|
return {"temperature": 0.20, "max_tokens": 2048, "system_prompt": "你是一个专业的内容创作助手。"}
|
||||||
|
|
||||||
def call_llm(
|
def call_llm(
|
||||||
prompt: str,
|
prompt: str,
|
||||||
model: Optional[str] = None,
|
model: Optional[str] = None,
|
||||||
system_prompt: str = "你是一个专业的内容创作助手。",
|
system_prompt: Optional[str] = None,
|
||||||
temperature: Optional[float] = None,
|
temperature: Optional[float] = None,
|
||||||
max_tokens: Optional[int] = None,
|
max_tokens: Optional[int] = None,
|
||||||
top_p: float = 0.70,
|
top_p: float = 0.70,
|
||||||
@@ -100,6 +104,7 @@ def call_llm(
|
|||||||
defaults = _get_db_defaults(provider)
|
defaults = _get_db_defaults(provider)
|
||||||
temperature = temperature if temperature is not None else defaults["temperature"]
|
temperature = temperature if temperature is not None else defaults["temperature"]
|
||||||
max_tokens = max_tokens if max_tokens is not None else defaults["max_tokens"]
|
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)
|
cfg = _get_provider_config(provider)
|
||||||
endpoint = f"{cfg['base_url'].rstrip('/')}/chat/completions"
|
endpoint = f"{cfg['base_url'].rstrip('/')}/chat/completions"
|
||||||
headers = {
|
headers = {
|
||||||
|
|||||||
Reference in New Issue
Block a user