diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-06-23 18:37:46 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-06-23 18:37:46 +0900 |
| commit | 21b59cc1d0928dc04dcf5eac24470aaa05013b2d (patch) | |
| tree | 9888aa23aafea3907ce96eb958a06d4369dad86e /src/ollama_web/app.py | |
| parent | de0513e7cb0593b1aa141e367ff4da7156d6110f (diff) | |
基本機能実装
Diffstat (limited to 'src/ollama_web/app.py')
| -rw-r--r-- | src/ollama_web/app.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/ollama_web/app.py b/src/ollama_web/app.py new file mode 100644 index 0000000..d37557d --- /dev/null +++ b/src/ollama_web/app.py @@ -0,0 +1,46 @@ +"""Starlette application factory for ollama-web.""" + +from __future__ import annotations + +from pathlib import Path + +from starlette.applications import Starlette +from starlette.middleware import Middleware +from starlette.middleware.cors import CORSMiddleware +from starlette.routing import Mount, Route +from starlette.staticfiles import StaticFiles + +from .config import settings +from .routes import chat as chat_route +from .routes import models as models_route +from .routes import pages as pages_route + +_STATIC_DIR = Path(__file__).resolve().parent / "static" + + +def create_app() -> Starlette: + """Build and return the configured Starlette application.""" + routes = [ + Route("/", pages_route.index, name="index"), + Route("/api/chat", chat_route.chat, methods=["POST"], name="chat"), + Route("/api/models", models_route.get_models, methods=["GET"], name="models"), + Route("/api/health", models_route.health, methods=["GET"], name="health"), + Mount("/static", app=StaticFiles(directory=str(_STATIC_DIR)), name="static"), + ] + + middleware = [ + Middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], + ) + ] + + app = Starlette(routes=routes, middleware=middleware) + app.state.settings = settings + app.state.tool_names = ["web_search", "scrape_url"] + return app + + +app = create_app()
\ No newline at end of file |
