app.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. """FastAPI application — category tree API on port 8080."""
  2. from __future__ import annotations
  3. from fastapi import FastAPI, Query
  4. from fastapi.middleware.cors import CORSMiddleware
  5. from api.services.category_tree import build_category_tree
  6. from api.services.demand_belong_category import list_demand_belong_categories
  7. from api.services.oss_logs import list_demand_belong_oss_logs
  8. app = FastAPI(title="SupplyAgent API", version="0.1.0")
  9. app.add_middleware(
  10. CORSMiddleware,
  11. allow_origins=[
  12. "http://localhost:5173",
  13. "http://127.0.0.1:5173",
  14. "http://localhost:4173",
  15. "http://127.0.0.1:4173",
  16. ],
  17. allow_credentials=True,
  18. allow_methods=["*"],
  19. allow_headers=["*"],
  20. )
  21. @app.get("/health")
  22. def health() -> dict[str, str]:
  23. return {"status": "ok"}
  24. @app.get("/api/category-tree")
  25. def category_tree(
  26. biz_dt: str | None = Query(
  27. default=None,
  28. description="业务日 YYYYMMDD;省略则取 category_tree_weight 最新一日",
  29. ),
  30. ) -> dict:
  31. """Return nested global_tree_category with per-dim avg score."""
  32. return build_category_tree(biz_dt=biz_dt)
  33. @app.get("/api/demand-belong-category")
  34. def demand_belong_category() -> dict:
  35. """Return all active demand_belong_category rows in one response."""
  36. items = list_demand_belong_categories()
  37. return {"items": items}
  38. @app.get("/api/demand-belong-oss-logs")
  39. def demand_belong_oss_logs() -> dict:
  40. """Return demand_belong_category_agent oss_logs ordered by create_time desc."""
  41. items = list_demand_belong_oss_logs()
  42. return {"items": items}