main.py 1.82 KB
Newer Older
1
2
from fastapi import FastAPI, Depends
from fastapi.routing import APIRoute
3
from fastapi.middleware.cors import CORSMiddleware
Timothy J. Baek's avatar
Timothy J. Baek committed
4
5
6
7
8
9
10
11
12
13
from apps.web.routers import (
    auths,
    users,
    chats,
    documents,
    modelfiles,
    prompts,
    configs,
    utils,
)
Timothy J. Baek's avatar
Timothy J. Baek committed
14
15
16
17
18
19
20
21
from config import (
    WEBUI_VERSION,
    WEBUI_AUTH,
    DEFAULT_MODELS,
    DEFAULT_PROMPT_SUGGESTIONS,
    DEFAULT_USER_ROLE,
    ENABLE_SIGNUP,
    USER_PERMISSIONS,
Timothy J. Baek's avatar
Timothy J. Baek committed
22
    WEBHOOK_URL,
23
    WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
Timothy J. Baek's avatar
Timothy J. Baek committed
24
)
25
26
27
28
29

app = FastAPI()

origins = ["*"]

Kyle McLaren's avatar
Kyle McLaren committed
30
app.state.ENABLE_SIGNUP = ENABLE_SIGNUP
Timothy J. Baek's avatar
Timothy J. Baek committed
31
32
app.state.JWT_EXPIRES_IN = "-1"

33
34
app.state.DEFAULT_MODELS = DEFAULT_MODELS
app.state.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS
Timothy J. Baek's avatar
Timothy J. Baek committed
35
36
app.state.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE
app.state.USER_PERMISSIONS = USER_PERMISSIONS
Timothy J. Baek's avatar
Timothy J. Baek committed
37
app.state.WEBHOOK_URL = WEBHOOK_URL
38
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
39

40
41
42
43
44
45
46
47
48
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

app.include_router(auths.router, prefix="/auths", tags=["auths"])
49
50
app.include_router(users.router, prefix="/users", tags=["users"])
app.include_router(chats.router, prefix="/chats", tags=["chats"])
Timothy J. Baek's avatar
Timothy J. Baek committed
51
52
app.include_router(documents.router, prefix="/documents", tags=["documents"])
app.include_router(modelfiles.router, prefix="/modelfiles", tags=["modelfiles"])
53
54
app.include_router(prompts.router, prefix="/prompts", tags=["prompts"])

Timothy J. Baek's avatar
Timothy J. Baek committed
55
app.include_router(configs.router, prefix="/configs", tags=["configs"])
Timothy J. Baek's avatar
Timothy J. Baek committed
56
app.include_router(utils.router, prefix="/utils", tags=["utils"])
57
58
59
60


@app.get("/")
async def get_status():
Timothy J. Baek's avatar
Timothy J. Baek committed
61
62
63
64
    return {
        "status": True,
        "auth": WEBUI_AUTH,
        "default_models": app.state.DEFAULT_MODELS,
65
        "default_prompt_suggestions": app.state.DEFAULT_PROMPT_SUGGESTIONS,
Timothy J. Baek's avatar
Timothy J. Baek committed
66
    }