main.py 2.03 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
from apps.web.routers import (
    auths,
    users,
    chats,
    documents,
Timothy J. Baek's avatar
Timothy J. Baek committed
9
    models,
Timothy J. Baek's avatar
Timothy J. Baek committed
10
11
    prompts,
    configs,
Timothy J. Baek's avatar
Timothy J. Baek committed
12
    memories,
Timothy J. Baek's avatar
Timothy J. Baek committed
13
14
    utils,
)
Timothy J. Baek's avatar
Timothy J. Baek committed
15
16
17
18
19
20
21
22
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
23
    WEBHOOK_URL,
24
    WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
25
    JWT_EXPIRES_IN,
26
    AppConfig,
Timothy J. Baek's avatar
Timothy J. Baek committed
27
)
28
29
30
31
32

app = FastAPI()

origins = ["*"]

33
app.state.config = AppConfig()
Timothy J. Baek's avatar
Timothy J. Baek committed
34

35
36
37
38
39
40
41
42
app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP
app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN

app.state.config.DEFAULT_MODELS = DEFAULT_MODELS
app.state.config.DEFAULT_PROMPT_SUGGESTIONS = DEFAULT_PROMPT_SUGGESTIONS
app.state.config.DEFAULT_USER_ROLE = DEFAULT_USER_ROLE
app.state.config.USER_PERMISSIONS = USER_PERMISSIONS
app.state.config.WEBHOOK_URL = WEBHOOK_URL
43
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
44

Timothy J. Baek's avatar
Timothy J. Baek committed
45

46
47
48
49
50
51
52
53
54
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

app.include_router(auths.router, prefix="/auths", tags=["auths"])
55
56
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
57

Timothy J. Baek's avatar
Timothy J. Baek committed
58
app.include_router(documents.router, prefix="/documents", tags=["documents"])
Timothy J. Baek's avatar
Timothy J. Baek committed
59
app.include_router(models.router, prefix="/models", tags=["models"])
60
app.include_router(prompts.router, prefix="/prompts", tags=["prompts"])
Timothy J. Baek's avatar
Timothy J. Baek committed
61
62
app.include_router(memories.router, prefix="/memories", tags=["memories"])

Timothy J. Baek's avatar
Timothy J. Baek committed
63
app.include_router(configs.router, prefix="/configs", tags=["configs"])
Timothy J. Baek's avatar
Timothy J. Baek committed
64
app.include_router(utils.router, prefix="/utils", tags=["utils"])
65
66
67
68


@app.get("/")
async def get_status():
Timothy J. Baek's avatar
Timothy J. Baek committed
69
70
71
    return {
        "status": True,
        "auth": WEBUI_AUTH,
72
73
        "default_models": app.state.config.DEFAULT_MODELS,
        "default_prompt_suggestions": app.state.config.DEFAULT_PROMPT_SUGGESTIONS,
Timothy J. Baek's avatar
Timothy J. Baek committed
74
    }