Spaces:
Running
on
Zero
Running
on
Zero
import os | |
from django.core.asgi import get_asgi_application | |
from fastapi import FastAPI,Request | |
from fastapi.staticfiles import StaticFiles | |
from fastapi.templating import Jinja2Templates | |
from starlette.middleware.cors import CORSMiddleware | |
import gradio as gr | |
from mysite.gradio.gradio_config import setup_gradio_interfaces | |
from mysite.webhook.webhook import setup_webhook_routes,include_routers | |
from mysite.database.database import setup_database_routes | |
from mysite.config.asgi_config import init_django_app | |
from interpreter import interpreter | |
import mysite.interpreter.interpreter_config # インポートするだけで設定が適用されます | |
# ロガーの設定 | |
import logging | |
logging.basicConfig(level=logging.INFO) | |
logger = logging.getLogger(__name__) | |
file_handler = logging.FileHandler("app.log") | |
file_handler.setLevel(logging.INFO) | |
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") | |
file_handler.setFormatter(formatter) | |
logger.addHandler(file_handler) | |
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") | |
application = get_asgi_application() | |
app = FastAPI() | |
# Djangoアプリケーションの初期化 | |
init_django_app(app, application) | |
# ミドルウェアの設定 | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=["*"], | |
allow_credentials=True, | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
# Gradioインターフェースの設定 | |
gradio_interfaces = setup_gradio_interfaces() | |
# Webhookルートの設定 | |
include_routers(app) | |
setup_webhook_routes(app) | |
# データベースルートの設定 | |
setup_database_routes(app) | |
# Gradioアプリのマウント | |
app.mount("/static", StaticFiles(directory="static", html=True), name="static") | |
app = gr.mount_gradio_app(app, gradio_interfaces, "/") | |
# テンプレートファイルが格納されているディレクトリを指定 | |
templates = Jinja2Templates(directory="static") | |
def get_some_page(request: Request): | |
return templates.TemplateResponse("index.html", {"request": request}) | |