Kevin Hu commited on
Commit
e123321
·
1 Parent(s): 589b0da

refine multi-turn chat in agent (#2560)

Browse files

### What problem does this PR solve?

#2484

### Type of change

- [x] Performance Improvement
- [ ] Other (please describe):

Files changed (2) hide show
  1. api/apps/canvas_app.py +5 -0
  2. api/apps/llm_app.py +1 -1
api/apps/canvas_app.py CHANGED
@@ -18,6 +18,8 @@ from functools import partial
18
  from flask import request, Response
19
  from flask_login import login_required, current_user
20
  from api.db.services.canvas_service import CanvasTemplateService, UserCanvasService
 
 
21
  from api.settings import RetCode
22
  from api.utils import get_uuid
23
  from api.utils.api_utils import get_json_result, server_error_response, validate_request, get_data_error_result
@@ -108,6 +110,9 @@ def run():
108
  canvas = Canvas(cvs.dsl, current_user.id)
109
  if "message" in req:
110
  canvas.messages.append({"role": "user", "content": req["message"], "id": message_id})
 
 
 
111
  canvas.add_user_input(req["message"])
112
  answer = canvas.run(stream=stream)
113
  print(canvas)
 
18
  from flask import request, Response
19
  from flask_login import login_required, current_user
20
  from api.db.services.canvas_service import CanvasTemplateService, UserCanvasService
21
+ from api.db.services.dialog_service import full_question
22
+ from api.db.services.user_service import TenantService
23
  from api.settings import RetCode
24
  from api.utils import get_uuid
25
  from api.utils.api_utils import get_json_result, server_error_response, validate_request, get_data_error_result
 
110
  canvas = Canvas(cvs.dsl, current_user.id)
111
  if "message" in req:
112
  canvas.messages.append({"role": "user", "content": req["message"], "id": message_id})
113
+ if len([m for m in canvas.messages if m["role"] == "user"]) > 1:
114
+ ten = TenantService.get_by_user_id(current_user.id)[0]
115
+ req["message"] = full_question(ten["tenant_id"], ten["llm_id"], canvas.messages)
116
  canvas.add_user_input(req["message"])
117
  answer = canvas.run(stream=stream)
118
  print(canvas)
api/apps/llm_app.py CHANGED
@@ -287,7 +287,7 @@ def delete_llm():
287
  @manager.route('/delete_factory', methods=['POST'])
288
  @login_required
289
  @validate_request("llm_factory")
290
- def delete_llm():
291
  req = request.json
292
  TenantLLMService.filter_delete(
293
  [TenantLLM.tenant_id == current_user.id, TenantLLM.llm_factory == req["llm_factory"]])
 
287
  @manager.route('/delete_factory', methods=['POST'])
288
  @login_required
289
  @validate_request("llm_factory")
290
+ def delete_factory():
291
  req = request.json
292
  TenantLLMService.filter_delete(
293
  [TenantLLM.tenant_id == current_user.id, TenantLLM.llm_factory == req["llm_factory"]])