Kevin Hu
		
	commited on
		
		
					Commit 
							
							·
						
						d657ebb
	
1
								Parent(s):
							
							f76d985
								
Fix session API issues. (#3939)
Browse files### What problem does this PR solve?
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
    	
        api/apps/sdk/session.py
    CHANGED
    
    | 
         @@ -374,14 +374,14 @@ def chatbot_completions(dialog_id): 
     | 
|
| 374 | 
         
             
                    req["quote"] = False
         
     | 
| 375 | 
         | 
| 376 | 
         
             
                if req.get("stream", True):
         
     | 
| 377 | 
         
            -
                    resp = Response(iframe_completion( 
     | 
| 378 | 
         
             
                    resp.headers.add_header("Cache-control", "no-cache")
         
     | 
| 379 | 
         
             
                    resp.headers.add_header("Connection", "keep-alive")
         
     | 
| 380 | 
         
             
                    resp.headers.add_header("X-Accel-Buffering", "no")
         
     | 
| 381 | 
         
             
                    resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8")
         
     | 
| 382 | 
         
             
                    return resp
         
     | 
| 383 | 
         | 
| 384 | 
         
            -
                for answer in  
     | 
| 385 | 
         
             
                    return get_result(data=answer)
         
     | 
| 386 | 
         | 
| 387 | 
         | 
| 
         | 
|
| 374 | 
         
             
                    req["quote"] = False
         
     | 
| 375 | 
         | 
| 376 | 
         
             
                if req.get("stream", True):
         
     | 
| 377 | 
         
            +
                    resp = Response(iframe_completion(dialog_id, **req), mimetype="text/event-stream")
         
     | 
| 378 | 
         
             
                    resp.headers.add_header("Cache-control", "no-cache")
         
     | 
| 379 | 
         
             
                    resp.headers.add_header("Connection", "keep-alive")
         
     | 
| 380 | 
         
             
                    resp.headers.add_header("X-Accel-Buffering", "no")
         
     | 
| 381 | 
         
             
                    resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8")
         
     | 
| 382 | 
         
             
                    return resp
         
     | 
| 383 | 
         | 
| 384 | 
         
            +
                for answer in iframe_completion(dialog_id, **req):
         
     | 
| 385 | 
         
             
                    return get_result(data=answer)
         
     | 
| 386 | 
         | 
| 387 | 
         | 
    	
        api/db/services/canvas_service.py
    CHANGED
    
    | 
         @@ -89,6 +89,8 @@ def completion(tenant_id, agent_id, question, session_id=None, stream=True, **kw 
     | 
|
| 89 | 
         
             
                    assert e, "Session not found!"
         
     | 
| 90 | 
         
             
                    canvas = Canvas(json.dumps(conv.dsl), tenant_id)
         
     | 
| 91 | 
         | 
| 
         | 
|
| 
         | 
|
| 92 | 
         
             
                messages = conv.message
         
     | 
| 93 | 
         
             
                question = {
         
     | 
| 94 | 
         
             
                    "role": "user",
         
     | 
| 
         | 
|
| 89 | 
         
             
                    assert e, "Session not found!"
         
     | 
| 90 | 
         
             
                    canvas = Canvas(json.dumps(conv.dsl), tenant_id)
         
     | 
| 91 | 
         | 
| 92 | 
         
            +
                if not conv.message:
         
     | 
| 93 | 
         
            +
                    conv.message = []
         
     | 
| 94 | 
         
             
                messages = conv.message
         
     | 
| 95 | 
         
             
                question = {
         
     | 
| 96 | 
         
             
                    "role": "user",
         
     | 
    	
        api/db/services/conversation_service.py
    CHANGED
    
    | 
         @@ -176,6 +176,8 @@ def iframe_completion(dialog_id, question, session_id=None, stream=True, **kwarg 
     | 
|
| 176 | 
         
             
                    e, conv = API4ConversationService.get_by_id(session_id)
         
     | 
| 177 | 
         
             
                    assert e, "Session not found!"
         
     | 
| 178 | 
         | 
| 
         | 
|
| 
         | 
|
| 179 | 
         
             
                messages = conv.message
         
     | 
| 180 | 
         
             
                question = {
         
     | 
| 181 | 
         
             
                    "role": "user",
         
     | 
| 
         | 
|
| 176 | 
         
             
                    e, conv = API4ConversationService.get_by_id(session_id)
         
     | 
| 177 | 
         
             
                    assert e, "Session not found!"
         
     | 
| 178 | 
         | 
| 179 | 
         
            +
                if not conv.message:
         
     | 
| 180 | 
         
            +
                    conv.message = []
         
     | 
| 181 | 
         
             
                messages = conv.message
         
     | 
| 182 | 
         
             
                question = {
         
     | 
| 183 | 
         
             
                    "role": "user",
         
     |