mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-15 18:15:53 +08: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