File size: 3,206 Bytes
1417d53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
[project]
name = "open-webui"
description = "Open WebUI"
authors = [
    { name = "Timothy Jaeryang Baek", email = "tim@openwebui.com" }
]
license = { file = "LICENSE" }
dependencies = [
    "fastapi==0.111.0",
    "uvicorn[standard]==0.30.6",
    "pydantic==2.9.2",
    "python-multipart==0.0.18",

    "Flask==3.0.3",
    "Flask-Cors==5.0.0",

    "python-socketio==5.11.3",
    "python-jose==3.3.0",
    "passlib[bcrypt]==1.7.4",

    "requests==2.32.3",
    "aiohttp==3.11.8",
    "async-timeout",
    "aiocache",
    "aiofiles",

    "sqlalchemy==2.0.32",
    "alembic==1.14.0",
    "peewee==3.17.6",
    "peewee-migrate==1.12.2",
    "psycopg2-binary==2.9.9",
    "pgvector==0.3.5",
    "PyMySQL==1.1.1",
    "bcrypt==4.2.0",

    "pymongo",
    "redis",
    "boto3==1.35.53",

    "argon2-cffi==23.1.0",
    "APScheduler==3.10.4",

    "openai",
    "anthropic",
    "google-generativeai==0.7.2",
    "tiktoken",

    "langchain==0.3.7",
    "langchain-community==0.3.7",
    "langchain-chroma==0.1.4",

    "fake-useragent==1.5.1",
    "chromadb==0.5.15",
    "pymilvus==2.5.0",
    "qdrant-client~=1.12.0",
    "opensearch-py==2.7.1",

    "sentence-transformers==3.3.1",
    "colbert-ai==0.2.21",
    "einops==0.8.0",

    "ftfy==6.2.3",
    "pypdf==4.3.1",
    "fpdf2==2.7.9",
    "pymdown-extensions==10.11.2",
    "docx2txt==0.8",
    "python-pptx==1.0.0",
    "unstructured==0.15.9",
    "nltk==3.9.1",
    "Markdown==3.7",
    "pypandoc==1.13",
    "pandas==2.2.3",
    "openpyxl==3.1.5",
    "pyxlsb==1.0.10",
    "xlrd==2.0.1",
    "validators==0.33.0",
    "psutil",
    "sentencepiece",
    "soundfile==0.12.1",

    "opencv-python-headless==4.10.0.84",
    "rapidocr-onnxruntime==1.3.24",
    "rank-bm25==0.2.2",

    "faster-whisper==1.0.3",

    "PyJWT[crypto]==2.9.0",
    "authlib==1.3.2",

    "black==24.8.0",
    "langfuse==2.44.0",
    "youtube-transcript-api==0.6.3",
    "pytube==15.0.0",

    "extract_msg",
    "pydub",
    "duckduckgo-search~=6.3.5",

    "docker~=7.1.0",
    "pytest~=8.3.2",
    "pytest-docker~=3.1.1",

    "googleapis-common-protos==1.63.2",

    "ldap3==2.9.1"
]
readme = "README.md"
requires-python = ">= 3.11, < 3.12.0a1"
dynamic = ["version"]
classifiers = [
    "Development Status :: 4 - Beta",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.11",
    "Topic :: Communications :: Chat",
    "Topic :: Multimedia",
]

[project.scripts]
open-webui = "open_webui:app"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.rye]
managed = true
dev-dependencies = []

[tool.hatch.metadata]
allow-direct-references = true

[tool.hatch.version]
path = "package.json"
pattern = '"version":\s*"(?P<version>[^"]+)"'

[tool.hatch.build.hooks.custom]  # keep this for reading hooks from `hatch_build.py`

[tool.hatch.build.targets.wheel]
sources = ["backend"]
exclude = [
    ".dockerignore",
    ".gitignore",
    ".webui_secret_key",
    "dev.sh",
    "requirements.txt",
    "start.sh",
    "start_windows.bat",
    "webui.db",
    "chroma.sqlite3",
]
force-include = { "CHANGELOG.md" = "open_webui/CHANGELOG.md", build = "open_webui/frontend" }