"src/vscode:/vscode.git/clone" did not exist on "f94d77fcda22bb65ba15ee5995d854dc5631c513"
main.py 2.21 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
    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
from config import (
16
    WEBUI_BUILD_HASH,
Timothy J. Baek's avatar
Timothy J. Baek committed
17
18
19
20
21
22
    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,
Timothy J. Baek's avatar
Timothy J. Baek committed
26
    WEBUI_BANNERS,
27
    AppConfig,
28
    ENABLE_COMMUNITY_SHARING,
Timothy J. Baek's avatar
Timothy J. Baek committed
29
)
30
31
32
33
34

app = FastAPI()

origins = ["*"]

35
app.state.config = AppConfig()
Timothy J. Baek's avatar
Timothy J. Baek committed
36

37
38
39
40
41
42
43
44
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
Timothy J. Baek's avatar
Timothy J. Baek committed
45
app.state.config.BANNERS = WEBUI_BANNERS
Timothy J. Baek's avatar
Timothy J. Baek committed
46

47
app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING
Timothy J. Baek's avatar
Timothy J. Baek committed
48
49

app.state.MODELS = {}
50
app.state.AUTH_TRUSTED_EMAIL_HEADER = WEBUI_AUTH_TRUSTED_EMAIL_HEADER
51

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

53
54
55
56
57
58
59
60
61
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

app.include_router(auths.router, prefix="/auths", tags=["auths"])
62
63
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
64

Timothy J. Baek's avatar
Timothy J. Baek committed
65
app.include_router(documents.router, prefix="/documents", tags=["documents"])
Timothy J. Baek's avatar
Timothy J. Baek committed
66
app.include_router(models.router, prefix="/models", tags=["models"])
67
app.include_router(prompts.router, prefix="/prompts", tags=["prompts"])
Timothy J. Baek's avatar
Timothy J. Baek committed
68
69
app.include_router(memories.router, prefix="/memories", tags=["memories"])

Timothy J. Baek's avatar
Timothy J. Baek committed
70
app.include_router(configs.router, prefix="/configs", tags=["configs"])
Timothy J. Baek's avatar
Timothy J. Baek committed
71
app.include_router(utils.router, prefix="/utils", tags=["utils"])
72
73
74
75


@app.get("/")
async def get_status():
Timothy J. Baek's avatar
Timothy J. Baek committed
76
77
78
    return {
        "status": True,
        "auth": WEBUI_AUTH,
79
80
        "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
81
    }