rag/wwwroot/knowledge_bases_list/get_tree_data.dspy

21 lines
946 B
Plaintext

ns = params_kw.copy()
id = ns.get('id')
kb_id = ns.get('kb_id', '')
db = DBPools()
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' AND (description IS NULL OR description='') ORDER BY content",
{"kb_id": kb_id})
result = [{"id": "__root__", "parentid": "", "label": "📁 根目录"}]
for r in recs:
result.append({"id": r.id, "parentid": r.parentid, "label": r.label})
return result
else:
recs = await sor.sqlExe(
"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 []