diff --git a/backend/app.py b/backend/app.py index 1a327e5..2eb49a5 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1577,7 +1577,16 @@ async def chat(msg: ChatMsg, u=Depends(current_user)): genai_cfg = None if msg.genai_config_id: with db() as c: - genai_cfg = c.execute("SELECT * FROM genai_configs WHERE id=?", (msg.genai_config_id,)).fetchone() + row = c.execute("SELECT * FROM genai_configs WHERE id=?", (msg.genai_config_id,)).fetchone() + if row: + genai_cfg = dict(row) + # Override params from inline chat settings if provided + if msg.temperature is not None: genai_cfg["temperature"] = msg.temperature + if msg.max_tokens is not None: genai_cfg["max_tokens"] = msg.max_tokens + if msg.top_p is not None: genai_cfg["top_p"] = msg.top_p + if msg.top_k is not None: genai_cfg["top_k"] = msg.top_k + if msg.frequency_penalty is not None: genai_cfg["frequency_penalty"] = msg.frequency_penalty + if msg.presence_penalty is not None: genai_cfg["presence_penalty"] = msg.presence_penalty elif msg.model_id and msg.oci_config_id: # Direct model mode: build synthetic config dict with db() as c: diff --git a/frontend/index.html b/frontend/index.html index 1bf6da3..e135990 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -272,13 +272,14 @@ function rChat(){ const provOrder=['openai','google','meta','cohere','xai']; const catalogOpts=provOrder.filter(p=>provs[p]).map(p=>{const label=p.charAt(0).toUpperCase()+p.slice(1);const opts=provs[p].map(m=>``).join('');return``}).join(''); const isDirect=S.chatModel&&!S.chatModel.startsWith('cfg:'); + const hasModel=!!S.chatModel; // OCI selector for direct mode const ociSel=isDirect?``:''; - const gearBtn=isDirect?`
| Config | Modelo | Região | Temp | Tokens | Ações |
|---|
| Config | Modelo | Região | Ações | ||
|---|---|---|---|---|---|
| ${g.name||'—'}${g.is_default?' ⭐':''} | ${mi.name||(g.model_ocid?'OCID Personalizado':g.model_id)} ${mi.provider||(g.model_ocid?'custom':'?')} |
${g.genai_region} | -${g.temperature} | ${g.max_tokens} |
Nenhum modelo configurado.
GenerativeAiInferenceClient). O endpoint é gerado automaticamente pela região selecionada.'}