This commit is contained in:
takatost
2024-03-18 21:42:45 +08:00
parent 1b0acdbe63
commit 587ba27f8c
4 changed files with 78 additions and 116 deletions

View File

@ -9,6 +9,7 @@ from controllers.service_api.wraps import validate_app_token
from extensions.ext_database import db
from models.model import App, AppModelConfig, AppMode
from models.tools import ApiToolProvider
from services.app_service import AppService
class AppParameterApi(Resource):
@ -53,7 +54,7 @@ class AppParameterApi(Resource):
raise AppUnavailableError()
features_dict = workflow.features_dict
user_input_form = workflow.user_input_form
user_input_form = workflow.user_input_form()
else:
app_model_config = app_model.app_model_config
features_dict = app_model_config.to_dict()
@ -89,44 +90,8 @@ class AppMetaApi(Resource):
@validate_app_token
def get(self, app_model: App):
"""Get app meta"""
app_model_config: AppModelConfig = app_model.app_model_config
return AppService().get_app_meta(app_model)
if not app_model_config:
return {
'tool_icons': {}
}
agent_config = app_model_config.agent_mode_dict or {}
meta = {
'tool_icons': {}
}
# get all tools
tools = agent_config.get('tools', [])
url_prefix = (current_app.config.get("CONSOLE_API_URL")
+ "/console/api/workspaces/current/tool-provider/builtin/")
for tool in tools:
keys = list(tool.keys())
if len(keys) >= 4:
# current tool standard
provider_type = tool.get('provider_type')
provider_id = tool.get('provider_id')
tool_name = tool.get('tool_name')
if provider_type == 'builtin':
meta['tool_icons'][tool_name] = url_prefix + provider_id + '/icon'
elif provider_type == 'api':
try:
provider: ApiToolProvider = db.session.query(ApiToolProvider).filter(
ApiToolProvider.id == provider_id
)
meta['tool_icons'][tool_name] = json.loads(provider.icon)
except:
meta['tool_icons'][tool_name] = {
"background": "#252525",
"content": "\ud83d\ude01"
}
return meta
api.add_resource(AppParameterApi, '/parameters')
api.add_resource(AppMetaApi, '/meta')