mirror of
https://github.com/langgenius/dify.git
synced 2026-01-14 06:07:33 +08:00
27 lines
833 B
Python
27 lines
833 B
Python
from collections.abc import Mapping
|
|
from dataclasses import dataclass
|
|
from enum import StrEnum
|
|
from typing import Any
|
|
|
|
|
|
class WorkflowFeatures(StrEnum):
|
|
SANDBOX = "sandbox"
|
|
SPEECH_TO_TEXT = "speech_to_text"
|
|
TEXT_TO_SPEECH = "text_to_speech"
|
|
RETRIEVER_RESOURCE = "retriever_resource"
|
|
SENSITIVE_WORD_AVOIDANCE = "sensitive_word_avoidance"
|
|
FILE_UPLOAD = "file_upload"
|
|
SUGGESTED_QUESTIONS_AFTER_ANSWER = "suggested_questions_after_answer"
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class WorkflowFeature:
|
|
enabled: bool
|
|
config: Mapping[str, Any]
|
|
|
|
@classmethod
|
|
def from_dict(cls, data: Mapping[str, Any] | None) -> "WorkflowFeature":
|
|
if data is None or not isinstance(data, dict):
|
|
return cls(enabled=False, config={})
|
|
return cls(enabled=bool(data.get("enabled", False)), config=data)
|