34 lines
1,019 B
Python
34 lines
1,019 B
Python
"""
|
|
Avocet cloud session — thin wrapper around cf_core.cloud_session.
|
|
|
|
Usage in FastAPI routes:
|
|
|
|
from app.cloud_session import get_session, require_tier, CloudUser
|
|
from fastapi import Depends
|
|
|
|
@router.get("/api/imitate")
|
|
def imitate(session: CloudUser = Depends(get_session)):
|
|
# session.user_id — Directus UUID (cloud) or "local" (self-hosted)
|
|
# session.tier — free | paid | premium | ultra | local
|
|
# session.has_byok — True if user has a configured LLM backend
|
|
...
|
|
|
|
@router.post("/api/custom-models")
|
|
def list_custom_models(session: CloudUser = Depends(require_tier("premium"))):
|
|
...
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
|
|
from circuitforge_core.cloud_session import CloudSessionFactory, CloudUser, detect_byok
|
|
|
|
__all__ = ["CloudUser", "get_session", "require_tier"]
|
|
|
|
_factory = CloudSessionFactory(
|
|
product="avocet",
|
|
byok_detector=detect_byok,
|
|
)
|
|
|
|
get_session = _factory.dependency()
|
|
require_tier = _factory.require_tier
|