mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-04 04:43:09 +00:00 
			
		
		
		
	fix: remove useless code. (#1913)
This commit is contained in:
		
							parent
							
								
									66cdf577f5
								
							
						
					
					
						commit
						665318da3d
					
				@ -1,35 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
    "label": {
 | 
			
		||||
        "en-US": "Weather Search",
 | 
			
		||||
        "zh-Hans": "天气查询"
 | 
			
		||||
    },
 | 
			
		||||
    "form_schema": [
 | 
			
		||||
        {
 | 
			
		||||
            "type": "select",
 | 
			
		||||
            "label": {
 | 
			
		||||
                "en-US": "Temperature Unit",
 | 
			
		||||
                "zh-Hans": "温度单位"
 | 
			
		||||
            },
 | 
			
		||||
            "variable": "temperature_unit",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "options": [
 | 
			
		||||
                {
 | 
			
		||||
                    "label": {
 | 
			
		||||
                        "en-US": "Fahrenheit",
 | 
			
		||||
                        "zh-Hans": "华氏度"
 | 
			
		||||
                    },
 | 
			
		||||
                    "value": "fahrenheit"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "label": {
 | 
			
		||||
                        "en-US": "Centigrade",
 | 
			
		||||
                        "zh-Hans": "摄氏度"
 | 
			
		||||
                    },
 | 
			
		||||
                    "value": "centigrade"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "default": "centigrade",
 | 
			
		||||
            "placeholder": "Please select temperature unit"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@ -1,45 +0,0 @@
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
from core.external_data_tool.base import ExternalDataTool
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class WeatherSearch(ExternalDataTool):
 | 
			
		||||
    """
 | 
			
		||||
    The name of custom type must be unique, keep the same with directory and file name.
 | 
			
		||||
    """
 | 
			
		||||
    name: str = "weather_search"
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def validate_config(cls, tenant_id: str, config: dict) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        schema.json validation. It will be called when user save the config.
 | 
			
		||||
 | 
			
		||||
        Example:
 | 
			
		||||
            .. code-block:: python
 | 
			
		||||
                config = {
 | 
			
		||||
                    "temperature_unit": "centigrade"
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
        :param tenant_id: the id of workspace
 | 
			
		||||
        :param config: the variables of form config
 | 
			
		||||
        :return:
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        if not config.get('temperature_unit'):
 | 
			
		||||
            raise ValueError('temperature unit is required')
 | 
			
		||||
 | 
			
		||||
    def query(self, inputs: dict, query: Optional[str] = None) -> str:
 | 
			
		||||
        """
 | 
			
		||||
        Query the external data tool.
 | 
			
		||||
 | 
			
		||||
        :param inputs: user inputs
 | 
			
		||||
        :param query: the query of chat app
 | 
			
		||||
        :return: the tool query result
 | 
			
		||||
        """
 | 
			
		||||
        city = inputs.get('city')
 | 
			
		||||
        temperature_unit = self.config.get('temperature_unit')
 | 
			
		||||
 | 
			
		||||
        if temperature_unit == 'fahrenheit':
 | 
			
		||||
            return f'Weather in {city} is 32°F'
 | 
			
		||||
        else:
 | 
			
		||||
            return f'Weather in {city} is 0°C'
 | 
			
		||||
@ -1,93 +0,0 @@
 | 
			
		||||
from core.moderation.base import Moderation, ModerationAction, ModerationInputsResult, ModerationOutputsResult
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CloudServiceModeration(Moderation):
 | 
			
		||||
    """
 | 
			
		||||
    The name of custom type must be unique, keep the same with directory and file name.
 | 
			
		||||
    """
 | 
			
		||||
    name: str = "cloud_service"
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def validate_config(cls, tenant_id: str, config: dict) -> None:
 | 
			
		||||
        """
 | 
			
		||||
        schema.json validation. It will be called when user save the config.
 | 
			
		||||
 | 
			
		||||
        Example:
 | 
			
		||||
            .. code-block:: python
 | 
			
		||||
                config = {
 | 
			
		||||
                    "cloud_provider": "GoogleCloud",
 | 
			
		||||
                    "api_endpoint": "https://api.example.com",
 | 
			
		||||
                    "api_keys": "123456",
 | 
			
		||||
                    "inputs_config": {
 | 
			
		||||
                        "enabled": True,
 | 
			
		||||
                        "preset_response": "Your content violates our usage policy. Please revise and try again."
 | 
			
		||||
                    },
 | 
			
		||||
                    "outputs_config": {
 | 
			
		||||
                        "enabled": True,
 | 
			
		||||
                        "preset_response": "Your content violates our usage policy. Please revise and try again."
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
        :param tenant_id: the id of workspace
 | 
			
		||||
        :param config: the variables of form config
 | 
			
		||||
        :return:
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        cls._validate_inputs_and_outputs_config(config, True)
 | 
			
		||||
 | 
			
		||||
        if not config.get("cloud_provider"):
 | 
			
		||||
            raise ValueError("cloud_provider is required")
 | 
			
		||||
 | 
			
		||||
        if not config.get("api_endpoint"):
 | 
			
		||||
            raise ValueError("api_endpoint is required")
 | 
			
		||||
 | 
			
		||||
        if not config.get("api_keys"):
 | 
			
		||||
            raise ValueError("api_keys is required")
 | 
			
		||||
 | 
			
		||||
    def moderation_for_inputs(self, inputs: dict, query: str = "") -> ModerationInputsResult:
 | 
			
		||||
        """
 | 
			
		||||
        Moderation for inputs.
 | 
			
		||||
 | 
			
		||||
        :param inputs: user inputs
 | 
			
		||||
        :param query: the query of chat app, there is empty if is completion app
 | 
			
		||||
        :return: the moderation result
 | 
			
		||||
        """
 | 
			
		||||
        flagged = False
 | 
			
		||||
        preset_response = ""
 | 
			
		||||
 | 
			
		||||
        if self.config['inputs_config']['enabled']:
 | 
			
		||||
            preset_response = self.config['inputs_config']['preset_response']
 | 
			
		||||
 | 
			
		||||
            if query:
 | 
			
		||||
                inputs['query__'] = query
 | 
			
		||||
            flagged = self._is_violated(inputs)
 | 
			
		||||
 | 
			
		||||
        # return ModerationInputsResult(flagged=flagged, action=ModerationAction.OVERRIDED, inputs=inputs, query=query)
 | 
			
		||||
        return ModerationInputsResult(flagged=flagged, action=ModerationAction.DIRECT_OUTPUT, preset_response=preset_response)
 | 
			
		||||
 | 
			
		||||
    def moderation_for_outputs(self, text: str) -> ModerationOutputsResult:
 | 
			
		||||
        """
 | 
			
		||||
        Moderation for outputs.
 | 
			
		||||
 | 
			
		||||
        :param text: the text of LLM response
 | 
			
		||||
        :return: the moderation result
 | 
			
		||||
        """
 | 
			
		||||
        flagged = False
 | 
			
		||||
        preset_response = ""
 | 
			
		||||
 | 
			
		||||
        if self.config['outputs_config']['enabled']:
 | 
			
		||||
            preset_response = self.config['outputs_config']['preset_response']
 | 
			
		||||
 | 
			
		||||
            flagged = self._is_violated({'text': text})
 | 
			
		||||
 | 
			
		||||
        # return ModerationOutputsResult(flagged=flagged, action=ModerationAction.OVERRIDED, text=text)
 | 
			
		||||
        return ModerationOutputsResult(flagged=flagged, action=ModerationAction.DIRECT_OUTPUT, preset_response=preset_response)
 | 
			
		||||
 | 
			
		||||
    def _is_violated(self, inputs: dict):
 | 
			
		||||
        """
 | 
			
		||||
        The main logic of moderation.
 | 
			
		||||
 | 
			
		||||
        :param inputs:
 | 
			
		||||
        :return: the moderation result
 | 
			
		||||
        """
 | 
			
		||||
        return False
 | 
			
		||||
@ -1,65 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
    "label": {
 | 
			
		||||
        "en-US": "Cloud Service",
 | 
			
		||||
        "zh-Hans": "云服务"
 | 
			
		||||
    },
 | 
			
		||||
    "form_schema": [
 | 
			
		||||
        {
 | 
			
		||||
            "type": "select",
 | 
			
		||||
            "label": {
 | 
			
		||||
                "en-US": "Cloud Provider",
 | 
			
		||||
                "zh-Hans": "云厂商"
 | 
			
		||||
            },
 | 
			
		||||
            "variable": "cloud_provider",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "options": [
 | 
			
		||||
                {
 | 
			
		||||
                    "label": {
 | 
			
		||||
                        "en-US": "AWS",
 | 
			
		||||
                        "zh-Hans": "亚马逊"
 | 
			
		||||
                    },
 | 
			
		||||
                    "value": "AWS"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "label": {
 | 
			
		||||
                        "en-US": "Google Cloud",
 | 
			
		||||
                        "zh-Hans": "谷歌云"
 | 
			
		||||
                    },
 | 
			
		||||
                    "value": "GoogleCloud"
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "label": {
 | 
			
		||||
                        "en-US": "Azure Cloud",
 | 
			
		||||
                        "zh-Hans": "微软云"
 | 
			
		||||
                    },
 | 
			
		||||
                    "value": "Azure"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "default": "GoogleCloud",
 | 
			
		||||
            "placeholder": ""
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "type": "text-input",
 | 
			
		||||
            "label": {
 | 
			
		||||
                "en-US": "API Endpoint",
 | 
			
		||||
                "zh-Hans": "API Endpoint"
 | 
			
		||||
            },
 | 
			
		||||
            "variable": "api_endpoint",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "max_length": 100,
 | 
			
		||||
            "default": "",
 | 
			
		||||
            "placeholder": "https://api.example.com"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "type": "paragraph",
 | 
			
		||||
            "label": {
 | 
			
		||||
                "en-US": "API Key",
 | 
			
		||||
                "zh-Hans": "API Key"
 | 
			
		||||
            },
 | 
			
		||||
            "variable": "api_keys",
 | 
			
		||||
            "required": true,
 | 
			
		||||
            "default": "",
 | 
			
		||||
            "placeholder": "Paste your API key here"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user