diff --git a/api/apps/sdk/session.py b/api/apps/sdk/session.py index 42b08d509..db00d95b9 100644 --- a/api/apps/sdk/session.py +++ b/api/apps/sdk/session.py @@ -71,7 +71,7 @@ def create_agent_session(tenant_id, agent_id): if not e: return get_error_data_result("Agent not found.") - if not UserCanvasService.query(user_id=tenant_id,id=agent_id): + if not UserCanvasService.query(user_id=tenant_id, id=agent_id): return get_error_data_result("You cannot access the agent.") if not isinstance(cvs.dsl, str): @@ -96,7 +96,7 @@ def create_agent_session(tenant_id, agent_id): conv = { "id": get_uuid(), "dialog_id": cvs.id, - "user_id": req.get("usr_id","") if isinstance(req, dict) else "", + "user_id": req.get("user_id", "") if isinstance(req, dict) else "", "message": [{"role": "assistant", "content": canvas.get_prologue()}], "source": "agent", "dsl": cvs.dsl @@ -133,11 +133,11 @@ def update(tenant_id, chat_id, session_id): def chat_completion(tenant_id, chat_id): req = request.json if not req or not req.get("session_id"): - req = {"question":""} - if not DialogService.query(tenant_id=tenant_id,id=chat_id,status=StatusEnum.VALID.value): + req = {"question": ""} + if not DialogService.query(tenant_id=tenant_id, id=chat_id, status=StatusEnum.VALID.value): return get_error_data_result(f"You don't own the chat {chat_id}") if req.get("session_id"): - if not ConversationService.query(id=req["session_id"],dialog_id=chat_id): + if not ConversationService.query(id=req["session_id"], dialog_id=chat_id): return get_error_data_result(f"You don't own the session {req['session_id']}") if req.get("stream", True): resp = Response(rag_completion(tenant_id, chat_id, **req), mimetype="text/event-stream") @@ -158,34 +158,34 @@ def chat_completion(tenant_id, chat_id): @manager.route('/agents//completions', methods=['POST']) # noqa: F821 @token_required def agent_completions(tenant_id, agent_id): - req = request.json - cvs = UserCanvasService.query(user_id=tenant_id, id=agent_id) - if not cvs: - return get_error_data_result(f"You don't own the agent {agent_id}") - if req.get("session_id"): - dsl = cvs[0].dsl - if not isinstance(dsl,str): - dsl = json.dumps(dsl) - canvas=Canvas(dsl,tenant_id) - if canvas.get_preset_param(): - req["question"]="" - conv = API4ConversationService.query(id=req["session_id"], dialog_id=agent_id) - if not conv: - return get_error_data_result(f"You don't own the session {req['session_id']}") - else: - req["question"]="" - if req.get("stream", True): - resp = Response(agent_completion(tenant_id, agent_id, **req), mimetype="text/event-stream") - resp.headers.add_header("Cache-control", "no-cache") - resp.headers.add_header("Connection", "keep-alive") - resp.headers.add_header("X-Accel-Buffering", "no") - resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8") - return resp - try: - for answer in agent_completion(tenant_id, agent_id, **req): - return get_result(data=answer) - except Exception as e: - return get_error_data_result(str(e)) + req = request.json + cvs = UserCanvasService.query(user_id=tenant_id, id=agent_id) + if not cvs: + return get_error_data_result(f"You don't own the agent {agent_id}") + if req.get("session_id"): + dsl = cvs[0].dsl + if not isinstance(dsl, str): + dsl = json.dumps(dsl) + canvas = Canvas(dsl, tenant_id) + if canvas.get_preset_param(): + req["question"] = "" + conv = API4ConversationService.query(id=req["session_id"], dialog_id=agent_id) + if not conv: + return get_error_data_result(f"You don't own the session {req['session_id']}") + else: + req["question"] = "" + if req.get("stream", True): + resp = Response(agent_completion(tenant_id, agent_id, **req), mimetype="text/event-stream") + resp.headers.add_header("Cache-control", "no-cache") + resp.headers.add_header("Connection", "keep-alive") + resp.headers.add_header("X-Accel-Buffering", "no") + resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8") + return resp + try: + for answer in agent_completion(tenant_id, agent_id, **req): + return get_result(data=answer) + except Exception as e: + return get_error_data_result(str(e)) @manager.route('/chats//sessions', methods=['GET']) # noqa: F821 @@ -447,5 +447,3 @@ def agent_bot_completions(agent_id): for answer in agent_completion(objs[0].tenant_id, agent_id, **req): return get_result(data=answer) - -