50 lines
1.2 KiB
Plaintext
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
|
|
} |