fix: handle AgentIO JSON body (params.prompt/model_id), auto-detect action
This commit is contained in:
parent
08dc10620f
commit
25af57c9ed
@ -2,6 +2,16 @@
|
|||||||
import aiohttp
|
import aiohttp
|
||||||
|
|
||||||
action = (params_kw or {}).get('action', 'list_messages')
|
action = (params_kw or {}).get('action', 'list_messages')
|
||||||
|
# AgentIO sends JSON body without action field — detect from message_text presence
|
||||||
|
if action != 'send_message':
|
||||||
|
p = params_kw or {}
|
||||||
|
msg = (p.get('message_text') or '').strip()
|
||||||
|
if not msg:
|
||||||
|
inner = p.get('params', {})
|
||||||
|
if isinstance(inner, dict):
|
||||||
|
msg = (inner.get('prompt') or inner.get('message_text') or '').strip()
|
||||||
|
if msg:
|
||||||
|
action = 'send_message'
|
||||||
dbname = get_module_dbname('pipeline-sdlc')
|
dbname = get_module_dbname('pipeline-sdlc')
|
||||||
|
|
||||||
AGENT_PROMPT = """你是开发产线驾驶舱 Agent。需要数据时调工具,最终用 reply 回复。
|
AGENT_PROMPT = """你是开发产线驾驶舱 Agent。需要数据时调工具,最终用 reply 回复。
|
||||||
@ -177,8 +187,17 @@ async def _exec_tool(sor, tool, params, ctx, uid, org_id):
|
|||||||
|
|
||||||
|
|
||||||
if action == 'send_message':
|
if action == 'send_message':
|
||||||
message_text = (params_kw or {}).get('message_text','').strip()
|
# AgentIO sends JSON: {"params":{"prompt":"...","model_id":"..."},...}
|
||||||
user_model_id = (params_kw or {}).get('model_id','')
|
# FormData sends: action=send_message&message_text=...&model_id=...
|
||||||
|
p = params_kw or {}
|
||||||
|
message_text = (p.get('message_text') or '').strip()
|
||||||
|
user_model_id = p.get('model_id', '')
|
||||||
|
# Try JSON body from AgentIO
|
||||||
|
if not message_text:
|
||||||
|
inner = p.get('params', {})
|
||||||
|
if isinstance(inner, dict):
|
||||||
|
message_text = (inner.get('prompt') or inner.get('message_text') or '').strip()
|
||||||
|
user_model_id = inner.get('model_id') or inner.get('llmid') or user_model_id
|
||||||
if not message_text: return json.dumps({"error":"message_text is required"},ensure_ascii=False)
|
if not message_text: return json.dumps({"error":"message_text is required"},ensure_ascii=False)
|
||||||
|
|
||||||
blocked, reason = _security_scan(message_text)
|
blocked, reason = _security_scan(message_text)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user