This commit is contained in:
wangmeihua 2025-08-27 13:21:52 +08:00
parent d57a7210ea
commit 75faf7e55e
2 changed files with 35 additions and 12 deletions

View File

@ -28,6 +28,9 @@ data: {
3docs文档
path: /v1/docs
4longmemory存储
"""
async def docs(request, params_kw, *params, **kw):
@ -35,15 +38,20 @@ async def docs(request, params_kw, *params, **kw):
async def get_kdbs(request, params_kw, *params, **kw):
"""返回 kdb 表的全部内容,返回 JSON"""
f = kw.get('get_userorgid')
orgid = await f()
debug(f"orgid: {orgid}{f=}")
debug(f"params_kw: {params_kw}")
db = DBPools()
dbname = kw.get('get_module_dbname')('rag')
sql_opts = """
SELECT id, name, description
FROM kdb
WHERE orgid = ${orgid}$
"""
try:
async with db.sqlorContext(dbname) as sor:
opts_result = await sor.sqlExe(sql_opts, {})
opts_result = await sor.sqlExe(sql_opts, {"orgid": orgid})
if not opts_result:
error("未找到 kdb 表记录")
return json.dumps({"status": "error", "message": "未找到记录"})
@ -52,20 +60,32 @@ async def get_kdbs(request, params_kw, *params, **kw):
error(f"查询 kdb 表失败: {str(e)}, 堆栈: {traceback.format_exc()}")
return json.dumps({"status": "error", "message": str(e)})
except Exception as e:
error(f"列出用户文件失败: {str(e)}, 堆栈: {traceback.format_exc()}")
result.update({
"status": "error",
"files_by_knowledge_base": {},
"message": f"列出用户文件失败: {str(e)}",
"status_code": 400
})
return result
async def fusedsearch(request, params_kw, *params, **kw):
"""融合搜索,调用服务化端点"""
# f = kw.get('get_userorgid')
# orgid = await f()
# debug(f"orgid: {orgid}{f=}")
# f = kw.get('get_user')
# userid = await f()
f = kw.get('get_userorgid')
orgid = await f()
debug(f"orgid: {orgid}{f=}")
f = kw.get('get_user')
userid = await f()
debug(f"params_kw: {params_kw}")
orgid = "04J6VbxLqB_9RPMcgOv_8"
userid = "04J6VbxLqB_9RPMcgOv_8"
# orgid = "04J6VbxLqB_9RPMcgOv_8"
# userid = "04J6VbxLqB_9RPMcgOv_8"
query = params_kw.get('query', '')
fiids = params_kw.get('fiids', [])
limit = int(params_kw.get('limit', 5))
debug(f"fiids: {fiids}")
if isinstance(fiids, str):
fiids = [f.strip() for f in fiids.split(',') if f.strip()]
# 验证 fiids的orgid与orgid = await f()是否一致
if fiids:
db = DBPools()
@ -153,7 +173,7 @@ async def fusedsearch(request, params_kw, *params, **kw):
debug(f"无效三元组: {triplet}")
combined_text = query
if triplet_texts:
combined_text += " [三元组] " + "; ".join(triplet_texts)
combined_text += "".join(triplet_texts)
debug(
f"拼接文本: {combined_text[:200]}... (总长度: {len(combined_text)}, 三元组数量: {len(triplet_texts)})")
timing_stats["triplet_text_combine"] = time.time() - triplet_text_start
@ -175,14 +195,14 @@ async def fusedsearch(request, params_kw, *params, **kw):
debug(f"生成查询向量耗时: {timing_stats['vector_generation']:.3f}")
# 调用搜索端点
limit = 5
sum = limit + 5
search_start = time.time()
result = await api_service.milvus_search_query(
request=request,
query_vector=query_vector,
userid=orgid,
knowledge_base_ids=fiids,
limit=limit,
limit=sum,
offset=0,
upappid=service_params['vdb'],
apiname="mlvus/searchquery",
@ -196,6 +216,8 @@ async def fusedsearch(request, params_kw, *params, **kw):
return {"results": [], "timing": timing_stats}
unique_results = result.get("results", [])
sum = len(unique_results)
debug(f"从向量数据中搜索到{sum}条数据")
use_rerank = True
if use_rerank and unique_results:
rerank_start = time.time()

View File

@ -1,5 +1,6 @@
from appPublic.timeUtils import curDateString, dateAdd
from ahserver.serverenv import get_serverenv
from sqlor.dbpools import DBPools
async def set_program(request, program_type, quota, term=1):
db = DBPools()