pyproject.toml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. [project]
  2. name = "open-webui"
  3. description = "Open WebUI"
  4. authors = [
  5. { name = "Timothy Jaeryang Baek", email = "tim@openwebui.com" }
  6. ]
  7. license = { file = "LICENSE" }
  8. dependencies = [
  9. "fastapi==0.111.0",
  10. "uvicorn[standard]==0.30.6",
  11. "pydantic==2.9.2",
  12. "python-multipart==0.0.18",
  13. "Flask==3.1.0",
  14. "Flask-Cors==5.0.0",
  15. "python-socketio==5.11.3",
  16. "python-jose==3.3.0",
  17. "passlib[bcrypt]==1.7.4",
  18. "requests==2.32.3",
  19. "aiohttp==3.11.8",
  20. "async-timeout",
  21. "aiocache",
  22. "aiofiles",
  23. "sqlalchemy==2.0.32",
  24. "alembic==1.14.0",
  25. "peewee==3.17.8",
  26. "peewee-migrate==1.12.2",
  27. "psycopg2-binary==2.9.9",
  28. "pgvector==0.3.5",
  29. "PyMySQL==1.1.1",
  30. "bcrypt==4.2.0",
  31. "pymongo",
  32. "redis",
  33. "boto3==1.35.53",
  34. "argon2-cffi==23.1.0",
  35. "APScheduler==3.10.4",
  36. "openai",
  37. "anthropic",
  38. "google-generativeai==0.7.2",
  39. "tiktoken",
  40. "langchain==0.3.7",
  41. "langchain-community==0.3.7",
  42. "langchain-chroma==0.1.4",
  43. "fake-useragent==1.5.1",
  44. "chromadb==0.5.15",
  45. "pymilvus==2.5.0",
  46. "qdrant-client~=1.12.0",
  47. "opensearch-py==2.7.1",
  48. "sentence-transformers==3.3.1",
  49. "colbert-ai==0.2.21",
  50. "einops==0.8.0",
  51. "ftfy==6.2.3",
  52. "pypdf==4.3.1",
  53. "fpdf2==2.8.2",
  54. "pymdown-extensions==10.11.2",
  55. "docx2txt==0.8",
  56. "python-pptx==1.0.0",
  57. "unstructured==0.15.9",
  58. "nltk==3.9.1",
  59. "Markdown==3.7",
  60. "pypandoc==1.13",
  61. "pandas==2.2.3",
  62. "openpyxl==3.1.5",
  63. "pyxlsb==1.0.10",
  64. "xlrd==2.0.1",
  65. "validators==0.34.0",
  66. "psutil",
  67. "sentencepiece",
  68. "soundfile==0.12.1",
  69. "opencv-python-headless==4.10.0.84",
  70. "rapidocr-onnxruntime==1.3.24",
  71. "rank-bm25==0.2.2",
  72. "faster-whisper==1.0.3",
  73. "PyJWT[crypto]==2.10.1",
  74. "authlib==1.3.2",
  75. "black==24.8.0",
  76. "langfuse==2.44.0",
  77. "youtube-transcript-api==0.6.3",
  78. "pytube==15.0.0",
  79. "extract_msg",
  80. "pydub",
  81. "duckduckgo-search~=6.3.5",
  82. "docker~=7.1.0",
  83. "pytest~=8.3.2",
  84. "pytest-docker~=3.1.1",
  85. "googleapis-common-protos==1.63.2",
  86. "ldap3==2.9.1"
  87. ]
  88. readme = "README.md"
  89. requires-python = ">= 3.11, < 3.13.0a1"
  90. dynamic = ["version"]
  91. classifiers = [
  92. "Development Status :: 4 - Beta",
  93. "License :: OSI Approved :: MIT License",
  94. "Programming Language :: Python :: 3",
  95. "Programming Language :: Python :: 3.11",
  96. "Programming Language :: Python :: 3.12",
  97. "Topic :: Communications :: Chat",
  98. "Topic :: Multimedia",
  99. ]
  100. [project.scripts]
  101. open-webui = "open_webui:app"
  102. [build-system]
  103. requires = ["hatchling"]
  104. build-backend = "hatchling.build"
  105. [tool.rye]
  106. managed = true
  107. dev-dependencies = []
  108. [tool.hatch.metadata]
  109. allow-direct-references = true
  110. [tool.hatch.version]
  111. path = "package.json"
  112. pattern = '"version":\s*"(?P<version>[^"]+)"'
  113. [tool.hatch.build.hooks.custom] # keep this for reading hooks from `hatch_build.py`
  114. [tool.hatch.build.targets.wheel]
  115. sources = ["backend"]
  116. exclude = [
  117. ".dockerignore",
  118. ".gitignore",
  119. ".webui_secret_key",
  120. "dev.sh",
  121. "requirements.txt",
  122. "start.sh",
  123. "start_windows.bat",
  124. "webui.db",
  125. "chroma.sqlite3",
  126. ]
  127. force-include = { "CHANGELOG.md" = "open_webui/CHANGELOG.md", build = "open_webui/frontend" }
  128. [tool.codespell]
  129. # Ref: https://github.com/codespell-project/codespell#using-a-config-file
  130. skip = '.git*,*.svg,package-lock.json,i18n,*.lock,*.css,*-bundle.js,locales,example-doc.txt,emoji-shortcodes.json'
  131. check-hidden = true
  132. # ignore-regex = ''
  133. ignore-words-list = 'ans'