diff --git a/api/core/app/apps/agent_chat/app_runner.py b/api/core/app/apps/agent_chat/app_runner.py index 3a9262f54e..d4b327922e 100644 --- a/api/core/app/apps/agent_chat/app_runner.py +++ b/api/core/app/apps/agent_chat/app_runner.py @@ -62,8 +62,8 @@ class AgentChatAppRunner(AppRunner): app_record=app_record, model_config=application_generate_entity.model_conf, prompt_template_entity=app_config.prompt_template, - inputs=inputs, - files=files, + inputs=dict(inputs), + files=list(files), query=query, ) @@ -84,8 +84,8 @@ class AgentChatAppRunner(AppRunner): app_record=app_record, model_config=application_generate_entity.model_conf, prompt_template_entity=app_config.prompt_template, - inputs=inputs, - files=files, + inputs=dict(inputs), + files=list(files), query=query, memory=memory, ) @@ -97,8 +97,8 @@ class AgentChatAppRunner(AppRunner): app_id=app_record.id, tenant_id=app_config.tenant_id, app_generate_entity=application_generate_entity, - inputs=inputs, - query=query, + inputs=dict(inputs), + query=query or "", message_id=message.id, ) except ModerationError as e: @@ -154,9 +154,9 @@ class AgentChatAppRunner(AppRunner): app_record=app_record, model_config=application_generate_entity.model_conf, prompt_template_entity=app_config.prompt_template, - inputs=inputs, - files=files, - query=query, + inputs=dict(inputs), + files=list(files), + query=query or "", memory=memory, ) @@ -171,6 +171,7 @@ class AgentChatAppRunner(AppRunner): return agent_entity = app_config.agent + assert agent_entity is not None # init model instance model_instance = ModelInstance( @@ -181,15 +182,16 @@ class AgentChatAppRunner(AppRunner): app_record=app_record, model_config=application_generate_entity.model_conf, prompt_template_entity=app_config.prompt_template, - inputs=inputs, - files=files, - query=query, + inputs=dict(inputs), + files=list(files), + query=query or "", memory=memory, ) # change function call strategy based on LLM model llm_model = cast(LargeLanguageModel, model_instance.model_type_instance) model_schema = llm_model.get_model_schema(model_instance.model, model_instance.credentials) + assert model_schema is not None if {ModelFeature.MULTI_TOOL_CALL, ModelFeature.TOOL_CALL}.intersection(model_schema.features or []): agent_entity.strategy = AgentEntity.Strategy.FUNCTION_CALLING diff --git a/api/core/app/task_pipeline/workflow_cycle_manage.py b/api/core/app/task_pipeline/workflow_cycle_manage.py index 022a47ba89..8d9e463ae4 100644 --- a/api/core/app/task_pipeline/workflow_cycle_manage.py +++ b/api/core/app/task_pipeline/workflow_cycle_manage.py @@ -385,7 +385,7 @@ class WorkflowCycleManage: id=workflow_run.id, workflow_id=workflow_run.workflow_id, sequence_number=workflow_run.sequence_number, - inputs=workflow_run.inputs_dict, + inputs=dict(workflow_run.inputs_dict), created_at=int(workflow_run.created_at.timestamp()), ), ) @@ -424,7 +424,7 @@ class WorkflowCycleManage: workflow_id=workflow_run.workflow_id, sequence_number=workflow_run.sequence_number, status=workflow_run.status, - outputs=workflow_run.outputs_dict, + outputs=dict(workflow_run.outputs_dict), error=workflow_run.error, elapsed_time=workflow_run.elapsed_time, total_tokens=workflow_run.total_tokens, @@ -432,7 +432,7 @@ class WorkflowCycleManage: created_by=created_by, created_at=int(workflow_run.created_at.timestamp()), finished_at=int(workflow_run.finished_at.timestamp()), - files=self._fetch_files_from_node_outputs(workflow_run.outputs_dict), + files=self._fetch_files_from_node_outputs(dict(workflow_run.outputs_dict)), ), )