From f935553f5572af9ecf29fbf9c78e8577c4d9fee9 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 23 Jul 2026 11:05:04 +0800 Subject: [PATCH] fix: Tree dspy return Message widget format, use description as parentid --- wwwroot/knowledge_bases_list/delete_tree_item.dspy | 4 ++-- wwwroot/knowledge_bases_list/get_tree_data.dspy | 4 ++-- wwwroot/knowledge_bases_list/new_tree_item.dspy | 9 ++++++--- wwwroot/knowledge_bases_list/update_tree_item.dspy | 9 ++++++--- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/wwwroot/knowledge_bases_list/delete_tree_item.dspy b/wwwroot/knowledge_bases_list/delete_tree_item.dspy index 141f0bd..7fd731c 100644 --- a/wwwroot/knowledge_bases_list/delete_tree_item.dspy +++ b/wwwroot/knowledge_bases_list/delete_tree_item.dspy @@ -3,5 +3,5 @@ db = DBPools() dbname = get_module_dbname('rag') async with db.sqlorContext(dbname) as sor: await sor.sqlExe("DELETE FROM document_chunks WHERE id=${id}$", {"id": ns.get("id","")}) - return {"status": "SUCCEEDED"} -return {"error": "failed"} + result = {"widgettype": "Message", "options": {"user_data": {"id": ns.get("id","")}}} + result diff --git a/wwwroot/knowledge_bases_list/get_tree_data.dspy b/wwwroot/knowledge_bases_list/get_tree_data.dspy index a686236..f3804ec 100644 --- a/wwwroot/knowledge_bases_list/get_tree_data.dspy +++ b/wwwroot/knowledge_bases_list/get_tree_data.dspy @@ -6,12 +6,12 @@ dbname = get_module_dbname('rag') async with db.sqlorContext(dbname) as sor: if not id: recs = await sor.sqlExe( - "SELECT id, '' as parentid, content as label FROM document_chunks WHERE kb_id=${kb_id}$ AND chunk_type='directory' ORDER BY content", + "SELECT id, '' as parentid, content as label FROM document_chunks WHERE kb_id=${kb_id}$ AND chunk_type='directory' AND (description IS NULL OR description='') ORDER BY content", {"kb_id": kb_id}) return [dict(r) for r in recs] else: recs = await sor.sqlExe( - "SELECT id, '' as parentid, content as label FROM document_chunks WHERE kb_id=${kb_id}$ AND chunk_type='directory' AND parent_id=${id}$ ORDER BY content", + "SELECT id, description as parentid, content as label FROM document_chunks WHERE kb_id=${kb_id}$ AND chunk_type='directory' AND description=${id}$ ORDER BY content", {"kb_id": kb_id, "id": id}) return [dict(r) for r in recs] return [] diff --git a/wwwroot/knowledge_bases_list/new_tree_item.dspy b/wwwroot/knowledge_bases_list/new_tree_item.dspy index 957a836..cb92b23 100644 --- a/wwwroot/knowledge_bases_list/new_tree_item.dspy +++ b/wwwroot/knowledge_bases_list/new_tree_item.dspy @@ -4,9 +4,12 @@ dbname = get_module_dbname('rag') async with db.sqlorContext(dbname) as sor: import uuid dir_id = uuid.uuid4().hex[:16] + name = ns.get("name", "") + parent_id = ns.get("parentid", "") + kb_id = ns.get("kb_id", "") await sor.sqlExe( "INSERT INTO document_chunks (id, doc_id, kb_id, chunk_index, chunk_type, content, description, created_at) " "VALUES (${id}$, '', ${kb_id}$, 0, 'directory', ${name}$, ${parentid}$, NOW())", - {"id": dir_id, "kb_id": ns.get("kb_id",""), "name": ns.get("name",""), "parentid": ns.get("parentid","")}) - return {"status": "SUCCEEDED", "id": dir_id} -return {"error": "failed"} + {"id": dir_id, "kb_id": kb_id, "name": name, "parentid": parent_id}) + result = {"widgettype": "Message", "options": {"user_data": {"id": dir_id, "label": name, "parentid": parent_id}}} + result diff --git a/wwwroot/knowledge_bases_list/update_tree_item.dspy b/wwwroot/knowledge_bases_list/update_tree_item.dspy index 1f9b7b6..2a33712 100644 --- a/wwwroot/knowledge_bases_list/update_tree_item.dspy +++ b/wwwroot/knowledge_bases_list/update_tree_item.dspy @@ -2,7 +2,10 @@ ns = params_kw.copy() db = DBPools() dbname = get_module_dbname('rag') async with db.sqlorContext(dbname) as sor: + id = ns.get("id", "") + kb_id = ns.get("kb_id", "") + name = ns.get("name", "") await sor.sqlExe("UPDATE document_chunks SET content=${name}$ WHERE id=${id}$", - {"name": ns.get("name",""), "id": ns.get("id","")}) - return {"status": "SUCCEEDED"} -return {"error": "failed"} + {"name": name, "id": id}) + result = {"widgettype": "Message", "options": {"user_data": {"id": id, "label": name}}} + result