model_config.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # -*- coding:utf-8 -*-
  2. from controllers.console import api
  3. from controllers.console.app import _get_app
  4. from controllers.console.setup import setup_required
  5. from controllers.console.wraps import account_initialization_required
  6. from events.app_event import app_model_config_was_updated
  7. from extensions.ext_database import db
  8. from flask import request
  9. from flask_login import current_user
  10. from flask_restful import Resource
  11. from libs.login import login_required
  12. from models.model import AppModelConfig
  13. from services.app_model_config_service import AppModelConfigService
  14. class ModelConfigResource(Resource):
  15. @setup_required
  16. @login_required
  17. @account_initialization_required
  18. def post(self, app_id):
  19. """Modify app model config"""
  20. app_id = str(app_id)
  21. app = _get_app(app_id)
  22. # validate config
  23. model_configuration = AppModelConfigService.validate_configuration(
  24. tenant_id=current_user.current_tenant_id,
  25. account=current_user,
  26. config=request.json,
  27. app_mode=app.mode
  28. )
  29. new_app_model_config = AppModelConfig(
  30. app_id=app.id,
  31. )
  32. new_app_model_config = new_app_model_config.from_model_config_dict(model_configuration)
  33. db.session.add(new_app_model_config)
  34. db.session.flush()
  35. app.app_model_config_id = new_app_model_config.id
  36. db.session.commit()
  37. app_model_config_was_updated.send(
  38. app,
  39. app_model_config=new_app_model_config
  40. )
  41. return {'result': 'success'}
  42. api.add_resource(ModelConfigResource, '/apps/<uuid:app_id>/model-config')