| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | from flask_login import login_required, current_userfrom flask_restful import Resource, reqparsefrom controllers.console import apifrom controllers.console.app.error import ProviderNotInitializeError, ProviderQuotaExceededError, \    CompletionRequestError, ProviderModelCurrentlyNotSupportErrorfrom controllers.console.setup import setup_requiredfrom controllers.console.wraps import account_initialization_requiredfrom core.generator.llm_generator import LLMGeneratorfrom core.llm.error import ProviderTokenNotInitError, QuotaExceededError, LLMBadRequestError, LLMAPIConnectionError, \    LLMAPIUnavailableError, LLMRateLimitError, LLMAuthorizationError, ModelCurrentlyNotSupportErrorclass IntroductionGenerateApi(Resource):    @setup_required    @login_required    @account_initialization_required    def post(self):        parser = reqparse.RequestParser()        parser.add_argument('prompt_template', type=str, required=True, location='json')        args = parser.parse_args()        account = current_user        try:            answer = LLMGenerator.generate_introduction(                account.current_tenant_id,                args['prompt_template']            )        except ProviderTokenNotInitError:            raise ProviderNotInitializeError()        except QuotaExceededError:            raise ProviderQuotaExceededError()        except ModelCurrentlyNotSupportError:            raise ProviderModelCurrentlyNotSupportError()        except (LLMBadRequestError, LLMAPIConnectionError, LLMAPIUnavailableError,                LLMRateLimitError, LLMAuthorizationError) as e:            raise CompletionRequestError(str(e))        return {'introduction': answer}class RuleGenerateApi(Resource):    @setup_required    @login_required    @account_initialization_required    def post(self):        parser = reqparse.RequestParser()        parser.add_argument('audiences', type=str, required=True, nullable=False, location='json')        parser.add_argument('hoping_to_solve', type=str, required=True, nullable=False, location='json')        args = parser.parse_args()        account = current_user        try:            rules = LLMGenerator.generate_rule_config(                account.current_tenant_id,                args['audiences'],                args['hoping_to_solve']            )        except ProviderTokenNotInitError:            raise ProviderNotInitializeError()        except QuotaExceededError:            raise ProviderQuotaExceededError()        except ModelCurrentlyNotSupportError:            raise ProviderModelCurrentlyNotSupportError()        except (LLMBadRequestError, LLMAPIConnectionError, LLMAPIUnavailableError,                LLMRateLimitError, LLMAuthorizationError) as e:            raise CompletionRequestError(str(e))        return rulesapi.add_resource(IntroductionGenerateApi, '/introduction-generate')api.add_resource(RuleGenerateApi, '/rule-generate')
 |