feat/enhance the multi-modal support (#8818)

This commit is contained in:
-LAN-
2024-10-21 10:43:49 +08:00
committed by GitHub
parent 7a1d6fe509
commit e61752bd3a
267 changed files with 6263 additions and 3523 deletions

View File

@@ -1,6 +1,7 @@
import json
from collections.abc import Mapping
from datetime import datetime
from typing import Optional
from typing import Any, Optional
from sqlalchemy import or_
@@ -21,9 +22,9 @@ class WorkflowToolManageService:
Service class for managing workflow tools.
"""
@classmethod
@staticmethod
def create_workflow_tool(
cls,
*,
user_id: str,
tenant_id: str,
workflow_app_id: str,
@@ -31,22 +32,10 @@ class WorkflowToolManageService:
label: str,
icon: dict,
description: str,
parameters: list[dict],
parameters: Mapping[str, Any],
privacy_policy: str = "",
labels: Optional[list[str]] = None,
) -> dict:
"""
Create a workflow tool.
:param user_id: the user id
:param tenant_id: the tenant id
:param name: the name
:param icon: the icon
:param description: the description
:param parameters: the parameters
:param privacy_policy: the privacy policy
:param labels: labels
:return: the created tool
"""
WorkflowToolConfigurationUtils.check_parameter_configurations(parameters)
# check if the name is unique
@@ -63,12 +52,11 @@ class WorkflowToolManageService:
if existing_workflow_tool_provider is not None:
raise ValueError(f"Tool with name {name} or app_id {workflow_app_id} already exists")
app: App = db.session.query(App).filter(App.id == workflow_app_id, App.tenant_id == tenant_id).first()
app = db.session.query(App).filter(App.id == workflow_app_id, App.tenant_id == tenant_id).first()
if app is None:
raise ValueError(f"App {workflow_app_id} not found")
workflow: Workflow = app.workflow
workflow = app.workflow
if workflow is None:
raise ValueError(f"Workflow not found for app {workflow_app_id}")