|
|
|
|
|
|
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
return server_error_response(e) |
|
|
return server_error_response(e) |
|
|
|
|
|
|
|
|
assert answer, "Nothing. Is it over?" |
|
|
|
|
|
|
|
|
assert answer is not None, "Nothing. Is it over?" |
|
|
|
|
|
|
|
|
if stream: |
|
|
if stream: |
|
|
assert isinstance(answer, partial) |
|
|
|
|
|
|
|
|
assert isinstance(answer, partial), "Nothing. Is it over?" |
|
|
|
|
|
|
|
|
def sse(): |
|
|
def sse(): |
|
|
nonlocal answer, cvs |
|
|
nonlocal answer, cvs |
|
|
|
|
|
|
|
|
resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8") |
|
|
resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8") |
|
|
return resp |
|
|
return resp |
|
|
|
|
|
|
|
|
|
|
|
final_ans["content"] = "\n".join(answer["content"]) if "content" in answer else "" |
|
|
canvas.messages.append({"role": "assistant", "content": final_ans["content"]}) |
|
|
canvas.messages.append({"role": "assistant", "content": final_ans["content"]}) |
|
|
if final_ans.get("reference"): |
|
|
if final_ans.get("reference"): |
|
|
canvas.reference.append(final_ans["reference"]) |
|
|
canvas.reference.append(final_ans["reference"]) |
|
|
cvs.dsl = json.loads(str(canvas)) |
|
|
cvs.dsl = json.loads(str(canvas)) |
|
|
UserCanvasService.update_by_id(req["id"], cvs.to_dict()) |
|
|
UserCanvasService.update_by_id(req["id"], cvs.to_dict()) |
|
|
return get_json_result(data=req["dsl"]) |
|
|
|
|
|
|
|
|
return get_json_result(data={"answer": final_ans["content"], "reference": final_ans.get("reference", [])}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@manager.route('/reset', methods=['POST']) |
|
|
@manager.route('/reset', methods=['POST']) |