| | [project] |
| | name = "open-webui" |
| | description = "Open WebUI" |
| | authors = [ |
| | { name = "Timothy Jaeryang Baek", email = "tim@openwebui.com" } |
| | ] |
| | license = { file = "LICENSE" } |
| | dependencies = [ |
| | "fastapi==0.128.5", |
| | "uvicorn[standard]==0.40.0", |
| | "pydantic==2.12.5", |
| | "python-multipart==0.0.22", |
| | "itsdangerous==2.2.0", |
| |
|
| | "python-socketio==5.16.1", |
| | "python-jose==3.5.0", |
| | "cryptography", |
| | "bcrypt==5.0.0", |
| | "argon2-cffi==25.1.0", |
| | "PyJWT[crypto]==2.11.0", |
| | "authlib==1.6.7", |
| |
|
| | "requests==2.32.5", |
| | "aiohttp==3.13.2", |
| | "async-timeout", |
| | "aiocache", |
| | "aiofiles", |
| | "starlette-compress==1.7.0", |
| | "Brotli==1.1.0", |
| | "httpx[socks,http2,zstd,cli,brotli]==0.28.1", |
| | "starsessions[redis]==2.2.1", |
| | "python-mimeparse==2.0.0", |
| |
|
| | "sqlalchemy==2.0.46", |
| | "alembic==1.18.3", |
| | "peewee==3.19.0", |
| | "peewee-migrate==1.14.3", |
| |
|
| | "pycrdt==0.12.46", |
| | "redis", |
| |
|
| | "pytz==2025.2", |
| | "APScheduler==3.11.2", |
| | "RestrictedPython==8.1", |
| |
|
| | "loguru==0.7.3", |
| | "asgiref==3.11.1", |
| |
|
| | "tiktoken", |
| | "mcp==1.26.0", |
| |
|
| | "openai", |
| | "anthropic", |
| | "google-genai==1.62.0", |
| |
|
| | "langchain==1.2.9", |
| | "langchain-community==0.4.1", |
| | "langchain-classic==1.0.1", |
| | "langchain-text-splitters==1.1.0", |
| |
|
| | "fake-useragent==2.2.0", |
| | "chromadb==1.4.1", |
| | "opensearch-py==3.1.0", |
| | "PyMySQL==1.1.2", |
| | "boto3==1.42.44", |
| | |
| | "transformers==5.1.0", |
| | "sentence-transformers==5.2.2", |
| | "accelerate", |
| | "pyarrow==20.0.0", |
| | "einops==0.8.2", |
| |
|
| | "ftfy==6.3.1", |
| | "chardet==5.2.0", |
| | "pypdf==6.7.0", |
| | "fpdf2==2.8.5", |
| | "pymdown-extensions==10.20.1", |
| | "docx2txt==0.9", |
| | "python-pptx==1.0.2", |
| | "unstructured==0.18.31", |
| | "msoffcrypto-tool==6.0.0", |
| | "nltk==3.9.2", |
| | "Markdown==3.10.1", |
| | "pypandoc==1.16.2", |
| | "pandas==3.0.0", |
| | "openpyxl==3.1.5", |
| | "pyxlsb==1.0.10", |
| | "xlrd==2.0.2", |
| | "validators==0.35.0", |
| | "psutil", |
| | "sentencepiece", |
| | "soundfile==0.13.1", |
| | "azure-ai-documentintelligence==1.0.2", |
| |
|
| | "pillow==12.1.0", |
| | "opencv-python-headless==4.13.0.92", |
| | "rapidocr-onnxruntime==1.4.4", |
| | "rank-bm25==0.2.2", |
| |
|
| | "onnxruntime==1.24.1", |
| | "faster-whisper==1.2.1", |
| |
|
| | "black==26.1.0", |
| | "youtube-transcript-api==1.2.4", |
| | "pytube==15.0.0", |
| |
|
| | "pydub", |
| | "ddgs==9.10.0", |
| |
|
| | "google-api-python-client", |
| | "google-auth-httplib2", |
| | "google-auth-oauthlib", |
| |
|
| | "googleapis-common-protos==1.72.0", |
| | "google-cloud-storage==3.9.0", |
| |
|
| | "azure-identity==1.25.1", |
| | "azure-storage-blob==12.28.0", |
| |
|
| | "ldap3==2.9.1", |
| | ] |
| | readme = "README.md" |
| | requires-python = ">= 3.11, < 3.13.0a1" |
| | dynamic = ["version"] |
| | classifiers = [ |
| | "Development Status :: 4 - Beta", |
| | "License :: Other/Proprietary License", |
| | "Programming Language :: Python :: 3", |
| | "Programming Language :: Python :: 3.11", |
| | "Programming Language :: Python :: 3.12", |
| | "Topic :: Communications :: Chat", |
| | "Topic :: Multimedia", |
| | ] |
| |
|
| | [project.optional-dependencies] |
| | postgres = [ |
| | "psycopg2-binary==2.9.11", |
| | "pgvector==0.4.2", |
| | ] |
| |
|
| | all = [ |
| | "pymongo", |
| | "psycopg2-binary==2.9.11", |
| | "pgvector==0.4.2", |
| | "moto[s3]>=5.0.26", |
| | "gcp-storage-emulator>=2024.8.3", |
| | "docker~=7.1.0", |
| | "pytest~=8.3.2", |
| | "pytest-docker~=3.2.5", |
| | "playwright==1.58.0", |
| | "elasticsearch==9.3.0", |
| |
|
| | "qdrant-client==1.16.2", |
| | |
| | "weaviate-client==4.19.2", |
| | "pymilvus==2.6.8", |
| | "pinecone==6.0.2", |
| | "oracledb==3.4.2", |
| | "colbert-ai==0.2.22", |
| |
|
| | "firecrawl-py==4.14.0", |
| | "azure-search-documents==11.6.0", |
| | ] |
| |
|
| | [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] |
| |
|
| | [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" } |
| |
|
| | [tool.codespell] |
| | |
| | skip = '.git*,*.svg,package-lock.json,i18n,*.lock,*.css,*-bundle.js,locales,example-doc.txt,emoji-shortcodes.json' |
| | check-hidden = true |
| | |
| | ignore-words-list = 'ans' |
| |
|
| | [dependency-groups] |
| | dev = [ |
| | "pytest-asyncio>=1.0.0", |
| | ] |
| |
|