fix: stop double-encoding keyword - pass raw value as httpcall params (CRUD style); defensive unquote fallback in dspy for legacy cached UI
This commit is contained in:
parent
dfad26d3c7
commit
7993b186da
@ -40,7 +40,7 @@
|
|||||||
"wid": "search_bar",
|
"wid": "search_bar",
|
||||||
"event": "search",
|
"event": "search",
|
||||||
"actiontype": "script",
|
"actiontype": "script",
|
||||||
"script": "var kw=event.params.keyword||'';var kb=bricks.getWidgetById('kb_selector',this);var kb_id=(kb&&kb.resultValue())||'all';var u='/rag/knowledge_bases_list/search_result.dspy?_webbricks_=1&kb_id='+encodeURIComponent(kb_id)+'&keyword='+encodeURIComponent(kw);var target=bricks.getWidgetById('search_results',this);if(target){bricks.buildUrlwidgetHandler(this,target,{},{options:{url:u},mode:'replace'})()}"
|
"script": "var kw=event.params.keyword||'';var kb=bricks.getWidgetById('kb_selector',this);var kb_id=(kb&&kb.resultValue())||'all';var target=bricks.getWidgetById('search_results',this);if(target){bricks.buildUrlwidgetHandler(this,target,{},{options:{url:'/rag/knowledge_bases_list/search_result.dspy',params:{_webbricks_:1,kb_id:kb_id,keyword:kw}},mode:'replace'})()}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"wid": "search_file",
|
"wid": "search_file",
|
||||||
|
|||||||
@ -2,6 +2,17 @@ ns = params_kw.copy()
|
|||||||
kb_id = ns.get('kb_id', '')
|
kb_id = ns.get('kb_id', '')
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
query = ns.get("query") or ns.get("value") or ns.get("keyword") or ns.get("text") or ""
|
query = ns.get("query") or ns.get("value") or ns.get("keyword") or ns.get("text") or ""
|
||||||
|
# Defensive: legacy UI cached in browser double-encodes the keyword (%E5%88%86... arrives as-is).
|
||||||
|
# Normal path: server already decoded once, no '%' present, this is a no-op.
|
||||||
|
if "%" in query:
|
||||||
|
try:
|
||||||
|
from urllib.parse import unquote
|
||||||
|
d = unquote(query)
|
||||||
|
if d != query:
|
||||||
|
info(f'[search_result] unquote fallback: {query!r} -> {d!r}')
|
||||||
|
query = d
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
info(f'[search_result] params_kw={params_kw}')
|
info(f'[search_result] params_kw={params_kw}')
|
||||||
info(f'[search_result] parsed: kb_id={kb_id!r} query={query!r} method={request.method} url={request.url}')
|
info(f'[search_result] parsed: kb_id={kb_id!r} query={query!r} method={request.method} url={request.url}')
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user