rag/wwwroot/api/query/index.dspy
2025-07-16 15:06:59 +08:00

50 lines
1.2 KiB
Plaintext

from query import search_query
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
async def handle(params_kw):
logger.info(f'{params_kw=}')
# 调用 search_query
results = await search_query(
query=params_kw.prompt,
userid=params_kw.userid,
db_type=params_kw.db_type,
limit=params_kw.limit,
offset=params_kw.offset
)
logger.debug(f'{results=}')
# 处理结果
rows = []
for result in results:
row = result['metadata'].copy()
row.update({
'content': result['text'],
'distance': result['distance']
})
rows.append(row)
# 空结果处理
if not rows:
return {
"widgettype": "Message",
"options": {
"archor": "cc",
"timeout": 5,
"auto_open": True,
"auto_dismiss": True,
"auto_destroy": True,
"cwidth": 23,
"cheight": 17,
"title": "Info",
"message": "未找到匹配的文档"
}
}
return {
"total": len(rows),
"rows": rows
}