mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-12 17:39:06 +08:00
add assistant to canvas chat history (#3201)
### What problem does this PR solve? #3185 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
parent
18ae8a4091
commit
339639a9db
@ -13,15 +13,11 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
import importlib
|
|
||||||
import json
|
import json
|
||||||
import traceback
|
import traceback
|
||||||
from abc import ABC
|
from abc import ABC
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
from agent.component import component_class
|
from agent.component import component_class
|
||||||
from agent.component.base import ComponentBase
|
from agent.component.base import ComponentBase
|
||||||
from agent.settings import flow_logger, DEBUG
|
from agent.settings import flow_logger, DEBUG
|
||||||
@ -260,8 +256,10 @@ class Canvas(ABC):
|
|||||||
def get_history(self, window_size):
|
def get_history(self, window_size):
|
||||||
convs = []
|
convs = []
|
||||||
for role, obj in self.history[window_size * -1:]:
|
for role, obj in self.history[window_size * -1:]:
|
||||||
convs.append({"role": role, "content": (obj if role == "user" else
|
if isinstance(obj, list) and obj and all([isinstance(o, dict) for o in obj]):
|
||||||
'\n'.join([str(s) for s in pd.DataFrame(obj)['content']]))})
|
convs.append({"role": role, "content": '\n'.join([str(s.get("content", "")) for s in obj])})
|
||||||
|
else:
|
||||||
|
convs.append({"role": role, "content": str(obj)})
|
||||||
return convs
|
return convs
|
||||||
|
|
||||||
def add_user_input(self, question):
|
def add_user_input(self, question):
|
||||||
|
@ -261,6 +261,7 @@ def completion():
|
|||||||
ensure_ascii=False) + "\n\n"
|
ensure_ascii=False) + "\n\n"
|
||||||
|
|
||||||
canvas.messages.append({"role": "assistant", "content": final_ans["content"], "id": message_id})
|
canvas.messages.append({"role": "assistant", "content": final_ans["content"], "id": message_id})
|
||||||
|
canvas.history.append(("assistant", 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))
|
||||||
|
@ -133,6 +133,7 @@ def run():
|
|||||||
yield "data:" + json.dumps({"retcode": 0, "retmsg": "", "data": ans}, ensure_ascii=False) + "\n\n"
|
yield "data:" + json.dumps({"retcode": 0, "retmsg": "", "data": ans}, ensure_ascii=False) + "\n\n"
|
||||||
|
|
||||||
canvas.messages.append({"role": "assistant", "content": final_ans["content"], "id": message_id})
|
canvas.messages.append({"role": "assistant", "content": final_ans["content"], "id": message_id})
|
||||||
|
canvas.history.append(("assistant", 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))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user