|
|
@@ -63,18 +63,54 @@ async def session_log(agent_id: str, conversation_id: str, db: Session = Depends
|
|
|
try:
|
|
|
token = get_ragflow_token(db, current_user.id)
|
|
|
result = await ragflow_service.get_session_log(token, conversation_id)
|
|
|
+ if 'session_log' in result and 'reference' in result:
|
|
|
+ combined_logs = []
|
|
|
+ last_question = None
|
|
|
+ references = result['reference']
|
|
|
+ reference_index = 0
|
|
|
+ for session in result['session_log']:
|
|
|
+ if session['role'] == 'user':
|
|
|
+ last_question = session['message']
|
|
|
+ elif session['role'] == 'assistant' and last_question:
|
|
|
+ if reference_index < len(references):
|
|
|
+ reference = references[reference_index]
|
|
|
+ else:
|
|
|
+ reference = None
|
|
|
+ combined_logs.append({
|
|
|
+ 'question': last_question,
|
|
|
+ 'answer': session['message'],
|
|
|
+ 'reference': reference
|
|
|
+ })
|
|
|
+ last_question = None
|
|
|
+ reference_index += 1 # 只有在添加了assistant的回答后,索引才增加
|
|
|
+ return JSONResponse(status_code=200, content={"code": 200, "log": combined_logs})
|
|
|
+ else:
|
|
|
+
|
|
|
+ return JSONResponse(status_code=200, content={"code": 400, "message": "Invalid result structure"})
|
|
|
except Exception as e:
|
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
- return JSONResponse(status_code=200, content={"code": 200, "log": result})
|
|
|
if agent.agent_type == AgentType.BISHENG:
|
|
|
bisheng_service = BishengService(base_url=settings.sgb_base_url)
|
|
|
try:
|
|
|
token = get_bisheng_token(db, current_user.id)
|
|
|
result = await bisheng_service.get_session_log(token, agent_id, conversation_id)
|
|
|
+ if 'session_log' in result:
|
|
|
+ combined_logs = []
|
|
|
+ last_question = None
|
|
|
+ for session in result['session_log']:
|
|
|
+ if session['role'] == 'question':
|
|
|
+ last_question = session['message']
|
|
|
+ elif session['role'] == 'answer' and last_question:
|
|
|
+ combined_logs.append({
|
|
|
+ 'question': last_question,
|
|
|
+ 'answer': session['message']
|
|
|
+ })
|
|
|
+ last_question = None
|
|
|
+ return JSONResponse(status_code=200, content={"code": 200, "log": combined_logs})
|
|
|
+ else:
|
|
|
+ return JSONResponse(status_code=200, content={"code": 400, "message": "Invalid result structure"})
|
|
|
except Exception as e:
|
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
- return JSONResponse(status_code=200, content={"code": 200, "log": result})
|
|
|
-
|
|
|
else:
|
|
|
return JSONResponse(status_code=200, content={"code": 200, "log": "Unsupported agent type"})
|
|
|
|