model_config.py 1.7 KB

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