| db.session.refresh(workflow_run) | db.session.refresh(workflow_run) | ||||
| db.session.close() | db.session.close() | ||||
| trace_manager.add_trace_task( | |||||
| TraceTask( | |||||
| TraceTaskName.WORKFLOW_TRACE, | |||||
| workflow_run=workflow_run, | |||||
| conversation_id=conversation_id, | |||||
| if trace_manager: | |||||
| trace_manager.add_trace_task( | |||||
| TraceTask( | |||||
| TraceTaskName.WORKFLOW_TRACE, | |||||
| workflow_run=workflow_run, | |||||
| conversation_id=conversation_id, | |||||
| ) | |||||
| ) | ) | ||||
| ) | |||||
| return workflow_run | return workflow_run | ||||
| }.intersection(model_schema.features or []): | }.intersection(model_schema.features or []): | ||||
| credentials['function_calling_type'] = 'tool_call' | credentials['function_calling_type'] = 'tool_call' | ||||
| def _convert_prompt_message_to_dict(self, message: PromptMessage) -> dict: | |||||
| def _convert_prompt_message_to_dict(self, message: PromptMessage, credentials: Optional[dict] = None) -> dict: | |||||
| """ | """ | ||||
| Convert PromptMessage to dict for OpenAI API format | Convert PromptMessage to dict for OpenAI API format | ||||
| """ | """ |
| endpoint_url = str(URL(endpoint_url) / 'chat' / 'completions') | endpoint_url = str(URL(endpoint_url) / 'chat' / 'completions') | ||||
| elif 'server_url' in credentials: | elif 'server_url' in credentials: | ||||
| endpoint_url = server_url | endpoint_url = server_url | ||||
| data['messages'] = [self._convert_prompt_message_to_dict(m) for m in prompt_messages] | |||||
| data['messages'] = [self._convert_prompt_message_to_dict(m, credentials) for m in prompt_messages] | |||||
| elif completion_type is LLMMode.COMPLETION: | elif completion_type is LLMMode.COMPLETION: | ||||
| data['prompt'] = 'ping' | data['prompt'] = 'ping' | ||||
| if 'endpoint_url' in credentials: | if 'endpoint_url' in credentials: |
| return result | return result | ||||
| def _convert_prompt_message_to_dict(self, message: PromptMessage, credentials: dict = None) -> dict: | |||||
| def _convert_prompt_message_to_dict(self, message: PromptMessage, credentials: Optional[dict] = None) -> dict: | |||||
| """ | """ | ||||
| Convert PromptMessage to dict for OpenAI API format | Convert PromptMessage to dict for OpenAI API format | ||||
| """ | """ |