|
|
@@ -1,3 +1,4 @@
|
|
|
+import json
|
|
|
import uuid
|
|
|
|
|
|
from fastapi import Depends, APIRouter, Query, HTTPException
|
|
|
@@ -82,8 +83,8 @@ async def session_log(agent_id: str, conversation_id: str, db: Session = Depends
|
|
|
'reference': reference
|
|
|
})
|
|
|
last_question = None
|
|
|
- reference_index += 1 # 只有在添加了assistant的回答后,索引才增加
|
|
|
- return JSONResponse(status_code=200, content={"code": 200, "log": combined_logs})
|
|
|
+ reference_index += 1
|
|
|
+ return JSONResponse(status_code=200, content={"code": 200, "data": combined_logs})
|
|
|
else:
|
|
|
|
|
|
return JSONResponse(status_code=200, content={"code": 400, "message": "Invalid result structure"})
|
|
|
@@ -94,21 +95,33 @@ async def session_log(agent_id: str, conversation_id: str, db: Session = Depends
|
|
|
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"})
|
|
|
+ combined_logs = []
|
|
|
+ last_question = None
|
|
|
+
|
|
|
+ for session in result:
|
|
|
+ message = session['message']
|
|
|
+
|
|
|
+ # 判断message是字符串还是json 对象,如果是json取其中的question字段,或者report_name字段赋值给message
|
|
|
+ try:
|
|
|
+ message_json = json.loads(message)
|
|
|
+ if 'question' in message_json:
|
|
|
+ message = message_json['question']
|
|
|
+ elif 'query' in message_json:
|
|
|
+ message = message_json['query']
|
|
|
+ elif 'report_name' in message_json:
|
|
|
+ message = message_json['report_name']
|
|
|
+ except json.JSONDecodeError:
|
|
|
+ pass
|
|
|
+
|
|
|
+ if session['role'] == 'question':
|
|
|
+ last_question = message
|
|
|
+ elif session['role'] == 'answer' and last_question:
|
|
|
+ combined_logs.append({
|
|
|
+ 'question': last_question,
|
|
|
+ 'answer': message
|
|
|
+ })
|
|
|
+ last_question = None
|
|
|
+ return JSONResponse(status_code=200, content={"code": 200, "data": combined_logs})
|
|
|
except Exception as e:
|
|
|
raise HTTPException(status_code=500, detail=str(e))
|
|
|
else:
|