| | import argparse |
| | import logging |
| |
|
| | from fastapi import FastAPI |
| |
|
| | from modules import config |
| | from modules.api.Api import APIManager |
| | from modules.api.impl import ( |
| | google_api, |
| | models_api, |
| | openai_api, |
| | ping_api, |
| | refiner_api, |
| | speaker_api, |
| | ssml_api, |
| | style_api, |
| | tts_api, |
| | xtts_v2_api, |
| | ) |
| | from modules.utils import env |
| |
|
| | logger = logging.getLogger(__name__) |
| |
|
| |
|
| | def create_api(app: FastAPI, exclude=[]): |
| | app_mgr = APIManager(app=app, exclude_patterns=exclude) |
| |
|
| | ping_api.setup(app_mgr) |
| | models_api.setup(app_mgr) |
| | style_api.setup(app_mgr) |
| | speaker_api.setup(app_mgr) |
| | tts_api.setup(app_mgr) |
| | ssml_api.setup(app_mgr) |
| | google_api.setup(app_mgr) |
| | openai_api.setup(app_mgr) |
| | refiner_api.setup(app_mgr) |
| | xtts_v2_api.setup(app_mgr) |
| |
|
| | return app_mgr |
| |
|
| |
|
| | def setup_api_args(parser: argparse.ArgumentParser): |
| | parser.add_argument( |
| | "--cors_origin", |
| | type=str, |
| | help="Allowed CORS origins. Use '*' to allow all origins.", |
| | ) |
| | parser.add_argument( |
| | "--no_playground", |
| | action="store_true", |
| | help="Disable the playground entry", |
| | ) |
| | parser.add_argument( |
| | "--no_docs", |
| | action="store_true", |
| | help="Disable the documentation entry", |
| | ) |
| | |
| | parser.add_argument( |
| | "--exclude", |
| | type=str, |
| | help="Exclude the specified API from the server", |
| | ) |
| |
|
| |
|
| | def process_api_args(args: argparse.Namespace, app: FastAPI): |
| | cors_origin = env.get_and_update_env(args, "cors_origin", "*", str) |
| | no_playground = env.get_and_update_env(args, "no_playground", False, bool) |
| | no_docs = env.get_and_update_env(args, "no_docs", False, bool) |
| | exclude = env.get_and_update_env(args, "exclude", "", str) |
| |
|
| | api = create_api(app=app, exclude=exclude.split(",")) |
| | config.api = api |
| |
|
| | if cors_origin: |
| | api.set_cors(allow_origins=[cors_origin]) |
| |
|
| | if not no_playground: |
| | api.setup_playground() |
| |
|
| | if compile: |
| | logger.info("Model compile is enabled") |
| |
|