From ac9373fd6f0db53c983d87c4790cb627e82759e9 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 25 二月 2025 17:25:39 +0800 Subject: [PATCH] merge --- app/service/dialog.py | 45 +++++++++++++++++++++++++++------------------ 1 files changed, 27 insertions(+), 18 deletions(-) diff --git a/app/service/dialog.py b/app/service/dialog.py index 26d1e19..3b965f2 100644 --- a/app/service/dialog.py +++ b/app/service/dialog.py @@ -24,14 +24,15 @@ else: query = query.filter(DialogModel.status != Dialog_STATSU_DELETE) id_list = [] + # if label: + # id_list = [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id==label).all()] + if user.permission != "admin": + dia_list = [j.id for i in user.groups for j in i.dialogs] + query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list))) + # else: if label: id_list = [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id == label).all()] - if user.permission != "admin": - dia_list = [j.id for i in user.groups for j in i.dialogs if not label or j.id in id_list] - query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list))) - else: - if label: - query = query.filter(or_(DialogModel.id.in_(id_list))) + query = query.filter(DialogModel.id.in_(id_list)) if keyword: query = query.filter(DialogModel.name.like('%{}%'.format(keyword))) @@ -96,10 +97,19 @@ async def create_dialog_service(db, dialog_id, dialog_name, description, icon, dialog_type, mode, user_id): + para = { + "user_input_form": [], + "retriever_resource": { + "enabled": True + }, + "file_upload": { + "enabled": False + } + } try: dialog_model = DialogModel(id=dialog_id, name=dialog_name, description=description, icon=icon, dialog_type=dialog_type, tenant_id=user_id, mode=mode, update_date=datetime.now(), - create_date=datetime.now()) + create_date=datetime.now(), parameters=json.dumps(para)) db.add(dialog_model) db.commit() db.refresh(dialog_model) @@ -120,17 +130,18 @@ chat = ChatBaseApply() token = await get_chat_token(db, dialog_id) if not token: - workflow = await get_app_token(db, workflow_server) - if workflow: + access_token = await get_app_token(db, workflow_server) + # print(workflow) + if access_token: url = settings.dify_base_url + DF_CHAT_API_KEY.format(dialog_id) - param = await chat.chat_get(url, {}, await chat.get_headers(workflow.access_token)) + param = await chat.chat_get(url, {}, await chat.get_headers(access_token)) if param and param.get("data"): token = param.get("data", [{}])[0].get("token") token_id = param.get("data", [{}])[0].get("id") await add_chat_token(db, {"id":token_id, "app_id": dialog_id, "type":"app", "token": token}) # dialog.parameters = json.dumps(param) else: - param = await chat.chat_post(url, {}, await chat.get_headers(workflow.access_token)) + param = await chat.chat_post(url, {}, await chat.get_headers(access_token)) if param: token = param.get("token") token_id = param.get("id") @@ -178,16 +189,14 @@ if user is None: return {"rows": []} query = db.query(DialogModel).filter(DialogModel.status != Dialog_STATSU_DELETE) - id_list = [] + if user.permission != "admin": + dia_list = [j.id for i in user.groups for j in i.dialogs] + query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list))) + if label: id_list = set( [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id.in_(label)).all()]) - if user.permission != "admin": - dia_list = [j.id for i in user.groups for j in i.dialogs if not label or j.id in id_list] - query = query.filter(or_(DialogModel.tenant_id == user_id, DialogModel.id.in_(dia_list))) - else: - if label: - query = query.filter(or_(DialogModel.id.in_(id_list))) + query = query.filter(DialogModel.id.in_(id_list)) if keyword: query = query.filter(DialogModel.name.like('%{}%'.format(keyword))) -- Gitblit v1.8.0