|
17 | 17 | from langchain.schema import HumanMessage, SystemMessage |
18 | 18 | from langchain_core.messages import BaseMessage, AIMessage |
19 | 19 |
|
20 | | - |
21 | 20 | from application.flow.i_step_node import NodeResult, INode |
22 | 21 | from application.flow.step_node.ai_chat_step_node.i_chat_node import IChatNode |
23 | 22 | from application.flow.tools import Reasoning, mcp_response_generator |
@@ -91,7 +90,6 @@ def write_context_stream(node_variable: Dict, workflow_variable: Dict, node: INo |
91 | 90 | _write_context(node_variable, workflow_variable, node, workflow, answer, reasoning_content) |
92 | 91 |
|
93 | 92 |
|
94 | | - |
95 | 93 | def write_context(node_variable: Dict, workflow_variable: Dict, node: INode, workflow): |
96 | 94 | """ |
97 | 95 | 写入上下文数据 |
@@ -194,12 +192,16 @@ def execute(self, model_id, system, prompt, dialogue_number, history_chat_record |
194 | 192 | if stream: |
195 | 193 | r = chat_model.stream(message_list) |
196 | 194 | return NodeResult({'result': r, 'chat_model': chat_model, 'message_list': message_list, |
197 | | - 'history_message': history_message, 'question': question.content}, {}, |
| 195 | + 'history_message': [{'content': message.content, 'role': message.type} for message in |
| 196 | + (history_message if history_message is not None else [])], |
| 197 | + 'question': question.content}, {}, |
198 | 198 | _write_context=write_context_stream) |
199 | 199 | else: |
200 | 200 | r = chat_model.invoke(message_list) |
201 | 201 | return NodeResult({'result': r, 'chat_model': chat_model, 'message_list': message_list, |
202 | | - 'history_message': history_message, 'question': question.content}, {}, |
| 202 | + 'history_message': [{'content': message.content, 'role': message.type} for message in |
| 203 | + (history_message if history_message is not None else [])], |
| 204 | + 'question': question.content}, {}, |
203 | 205 | _write_context=write_context) |
204 | 206 |
|
205 | 207 | def _handle_mcp_request(self, mcp_enable, tool_enable, mcp_source, mcp_servers, mcp_tool_id, mcp_tool_ids, tool_ids, |
@@ -250,7 +252,9 @@ def _handle_mcp_request(self, mcp_enable, tool_enable, mcp_source, mcp_servers, |
250 | 252 | r = mcp_response_generator(chat_model, message_list, json.dumps(mcp_servers_config), mcp_output_enable) |
251 | 253 | return NodeResult( |
252 | 254 | {'result': r, 'chat_model': chat_model, 'message_list': message_list, |
253 | | - 'history_message': history_message, 'question': question.content}, {}, |
| 255 | + 'history_message': [{'content': message.content, 'role': message.type} for message in |
| 256 | + (history_message if history_message is not None else [])], |
| 257 | + 'question': question.content}, {}, |
254 | 258 | _write_context=write_context_stream) |
255 | 259 |
|
256 | 260 | return None |
@@ -316,9 +320,7 @@ def get_details(self, index: int, **kwargs): |
316 | 320 | "index": index, |
317 | 321 | 'run_time': self.context.get('run_time'), |
318 | 322 | 'system': self.context.get('system'), |
319 | | - 'history_message': [{'content': message.content, 'role': message.type} for message in |
320 | | - (self.context.get('history_message') if self.context.get( |
321 | | - 'history_message') is not None else [])], |
| 323 | + 'history_message': self.context.get('history_message'), |
322 | 324 | 'question': self.context.get('question'), |
323 | 325 | 'answer': self.context.get('answer'), |
324 | 326 | 'reasoning_content': self.context.get('reasoning_content'), |
|
0 commit comments