| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | import osfrom flask_login import current_userfrom flask_restful import Resource, reqparsefrom controllers.console import apifrom controllers.console.app.error import (    CompletionRequestError,    ProviderModelCurrentlyNotSupportError,    ProviderNotInitializeError,    ProviderQuotaExceededError,)from controllers.console.setup import setup_requiredfrom controllers.console.wraps import account_initialization_requiredfrom core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededErrorfrom core.llm_generator.llm_generator import LLMGeneratorfrom core.model_runtime.errors.invoke import InvokeErrorfrom libs.login import login_requiredclass RuleGenerateApi(Resource):    @setup_required    @login_required    @account_initialization_required    def post(self):        parser = reqparse.RequestParser()        parser.add_argument("instruction", type=str, required=True, nullable=False, location="json")        parser.add_argument("model_config", type=dict, required=True, nullable=False, location="json")        parser.add_argument("no_variable", type=bool, required=True, default=False, location="json")        args = parser.parse_args()        account = current_user        PROMPT_GENERATION_MAX_TOKENS = int(os.getenv("PROMPT_GENERATION_MAX_TOKENS", "512"))        try:            rules = LLMGenerator.generate_rule_config(                tenant_id=account.current_tenant_id,                instruction=args["instruction"],                model_config=args["model_config"],                no_variable=args["no_variable"],                rule_config_max_tokens=PROMPT_GENERATION_MAX_TOKENS,            )        except ProviderTokenNotInitError as ex:            raise ProviderNotInitializeError(ex.description)        except QuotaExceededError:            raise ProviderQuotaExceededError()        except ModelCurrentlyNotSupportError:            raise ProviderModelCurrentlyNotSupportError()        except InvokeError as e:            raise CompletionRequestError(e.description)        return rulesapi.add_resource(RuleGenerateApi, "/rule-generate")
 |