main.py 2.62 KB
Newer Older
1
2
from fastapi import FastAPI, Depends
from fastapi.routing import APIRoute
3
from fastapi.middleware.cors import CORSMiddleware
4
from apps.webui.routers import (
Timothy J. Baek's avatar
Timothy J. Baek committed
5
6
7
8
    auths,
    users,
    chats,
    documents,
Timothy J. Baek's avatar
Timothy J. Baek committed
9
    tools,
Timothy J. Baek's avatar
Timothy J. Baek committed
10
    models,
Timothy J. Baek's avatar
Timothy J. Baek committed
11
12
    prompts,
    configs,
Timothy J. Baek's avatar
Timothy J. Baek committed
13
    memories,
Timothy J. Baek's avatar
Timothy J. Baek committed
14
    utils,
Timothy J. Baek's avatar
Timothy J. Baek committed
15
    files,
Timothy J. Baek's avatar
Timothy J. Baek committed
16
)
Timothy J. Baek's avatar
Timothy J. Baek committed
17
from config import (
18
    WEBUI_BUILD_HASH,
19
20
    SHOW_ADMIN_DETAILS,
    ADMIN_EMAIL,
Timothy J. Baek's avatar
Timothy J. Baek committed
21
22
23
24
25
26
    WEBUI_AUTH,
    DEFAULT_MODELS,
    DEFAULT_PROMPT_SUGGESTIONS,
    DEFAULT_USER_ROLE,
    ENABLE_SIGNUP,
    USER_PERMISSIONS,
Timothy J. Baek's avatar
Timothy J. Baek committed
27
    WEBHOOK_URL,
28
    WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
29
    WEBUI_AUTH_TRUSTED_NAME_HEADER,
30
    JWT_EXPIRES_IN,
Timothy J. Baek's avatar
Timothy J. Baek committed
31
    WEBUI_BANNERS,
32
    ENABLE_COMMUNITY_SHARING,
Timothy J. Baek's avatar
Timothy J. Baek committed
33
    AppConfig,
Timothy J. Baek's avatar
Timothy J. Baek committed
34
)
35
36
37
38
39

app = FastAPI()

origins = ["*"]

40
app.state.config = AppConfig()
Timothy J. Baek's avatar
Timothy J. Baek committed
41

42
43
app.state.config.ENABLE_SIGNUP = ENABLE_SIGNUP
app.state.config.JWT_EXPIRES_IN = JWT_EXPIRES_IN
Timothy J. Baek's avatar
refac  
Timothy J. Baek committed
44
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
45
app.state.AUTH_TRUSTED_NAME_HEADER = WEBUI_AUTH_TRUSTED_NAME_HEADER
46

47
48
49
50
51

app.state.config.SHOW_ADMIN_DETAILS = SHOW_ADMIN_DETAILS
app.state.config.ADMIN_EMAIL = ADMIN_EMAIL


52
53
54
55
56
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
Timothy J. Baek's avatar
Timothy J. Baek committed
57
app.state.config.BANNERS = WEBUI_BANNERS
Timothy J. Baek's avatar
Timothy J. Baek committed
58

59
app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING
Timothy J. Baek's avatar
Timothy J. Baek committed
60
61

app.state.MODELS = {}
Timothy J. Baek's avatar
refac  
Timothy J. Baek committed
62
app.state.TOOLS = {}
63

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

65
66
67
68
69
70
71
72
73
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

app.include_router(auths.router, prefix="/auths", tags=["auths"])
74
75
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
76

Timothy J. Baek's avatar
Timothy J. Baek committed
77
app.include_router(documents.router, prefix="/documents", tags=["documents"])
Timothy J. Baek's avatar
Timothy J. Baek committed
78
app.include_router(tools.router, prefix="/tools", tags=["tools"])
Timothy J. Baek's avatar
Timothy J. Baek committed
79
app.include_router(models.router, prefix="/models", tags=["models"])
80
app.include_router(prompts.router, prefix="/prompts", tags=["prompts"])
Timothy J. Baek's avatar
Timothy J. Baek committed
81
82
app.include_router(memories.router, prefix="/memories", tags=["memories"])

Timothy J. Baek's avatar
Timothy J. Baek committed
83
app.include_router(configs.router, prefix="/configs", tags=["configs"])
Timothy J. Baek's avatar
Timothy J. Baek committed
84
app.include_router(utils.router, prefix="/utils", tags=["utils"])
Timothy J. Baek's avatar
Timothy J. Baek committed
85
app.include_router(files.router, prefix="/files", tags=["files"])
86
87
88
89


@app.get("/")
async def get_status():
Timothy J. Baek's avatar
Timothy J. Baek committed
90
91
92
    return {
        "status": True,
        "auth": WEBUI_AUTH,
93
94
        "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
95
    }