/ pyproject.toml
pyproject.toml
  1  [project]
  2  name = "restai-core"
  3  version = "6.2.11"
  4  description = "RESTAI, so many 'A's and 'I's, so little time..."
  5  authors = [{ name = "Pedro Dias", email = "petermdias@gmail.com" }]
  6  requires-python = ">=3.11,<3.14"
  7  readme = "README.md"
  8  license = "Apache-2.0"
  9  dependencies = [
 10      "openai>=1.109.0,<3",
 11      "fastapi>=0.136.0,<0.137",
 12      "starlette>=0.46.0,<2",
 13      "langchain>=0.3.28,<2",
 14      "uvicorn>=0.44.0,<0.45",
 15      "python-multipart>=0.0.26,<0.1",
 16      "python-dotenv>=1.2.2,<2",
 17      "pdfminer.six",
 18      "unstructured>=0.21.5,<0.23",
 19      "pydantic>=2.13.1,<3",
 20      "tiktoken>=0.12.0,<0.13",
 21      "python-pptx>=1.0.2,<2",
 22      "bs4>=0.0.2,<0.1",
 23      "selenium>=4.43.0,<5",
 24      "yake>=0.4.8,<0.8",
 25      "bcrypt>=4.2.0,<6",
 26      "SQLAlchemy>=2.0.49,<3",
 27      "jq>=1.11.0,<2",
 28      "redis>=5.3.0,<8",
 29      "openpyxl>=3.1.5,<4",
 30      "google-cloud-aiplatform>=1.148.0,<2",
 31      "pymysql>=1.1.2,<2",
 32      "unidecode>=1.4.0,<2",
 33      "httpx>=0.28.1,<0.29",
 34      "exceptiongroup>=1.3.1,<2",
 35      "wheel>=0.46.3,<0.47",
 36      "pyjwt>=2.12.1,<3",
 37      "pyotp>=2.9.0,<3",
 38      "langchain-community>=0.3.31,<0.5",
 39      "langchain-openai>=0.3.35,<2",
 40      "pypdf>=6.10.2,<7",
 41      "docker>=7.1.0,<8",
 42      "ollama>=0.6.1,<0.7",
 43      "opencv-python-headless>=4.8,<5",
 44      "ip-adapter>=0.1.0,<0.2",
 45      "ilock>=1.0.3,<2",
 46      "docx2txt>=0.9,<0.10",
 47      "llama-index-core>=0.14.20,<0.15",
 48      "llama-index-embeddings-langchain>=0.5.0,<0.6",
 49      "llama-index-vector-stores-chroma>=0.5.5,<0.6",
 50      "llama-index-vector-stores-postgres>=0.6.0,<0.9",
 51      "llama-index-vector-stores-weaviate>=0.6,<2",
 52      "llama-index-vector-stores-pinecone>=0.5,<0.9",
 53      "pgvector>=0.4.2,<0.5",
 54      "pinecone>=7.0.0,<9",
 55      "weaviate-client>=4.15.0,<5",
 56      "chromadb>=1.5.8,<2",
 57      "llama-index-llms-openai>=0.7.5,<0.8",
 58      "einops>=0.8.2,<0.9",
 59      "llama-index-llms-ollama>=0.7.0,<0.8",
 60      "llama-index-postprocessor-colbert-rerank>=0.5.0,<0.6",
 61      "llama-index-embeddings-openai>=0.6.0,<0.7",
 62      "llama-index-readers-file>=0.6.0,<0.7",
 63      "deepeval>=3.9.7,<4",
 64      "llama-index-llms-anthropic>=0.11.2,<0.12",
 65      "llama-index-llms-litellm>=0.7.1,<0.8",
 66      "psycopg2-binary>=2.9.11,<3",
 67      "sentry-sdk[fastapi]>=2.58.0,<3",
 68      "llama-index-llms-gemini>=0.6.2,<0.7",
 69      "google-generativeai>=0.8.6,<0.9",
 70      "llama-index-llms-azure-openai>=0.5.3,<0.6",
 71      "llama-index-llms-bedrock-converse>=0.7.0,<0.15",
 72      "ddgs>=9.14.0,<10",
 73      "wikipedia>=1.4.0,<2",
 74      "llama-index-storage-chat-store-redis>=0.7.0,<0.8",
 75      "pandas>=2.2.3,<4",
 76      "llama-index-llms-vllm>=0.7.0,<0.8",
 77      "llama-index-multi-modal-llms-ollama>=0.6.1,<0.7",
 78      "llama-index-llms-openai-like>=0.7.1,<0.8",
 79      "paramiko>=3.5.1,<5",
 80      "soundfile>=0.13.1,<0.14",
 81      "langchain-huggingface>=0.1.2,<2",
 82      "llama-index-embeddings-ollama>=0.9.0,<0.10",
 83      "llama-index-readers-json>=0.5.0,<0.6",
 84      "ldap3>=2.9.1,<3",
 85      "authlib>=1.6.11,<2",
 86      "itsdangerous>=2.2.0,<3",
 87      "alembic>=1.18.4,<2",
 88      "llama-index-multi-modal-llms-gemini>=0.6.1,<0.7",
 89      "llama-index-tools-mcp>=0.4.8,<0.5",
 90      "fastmcp>=2.14,<4",
 91      "llama-index-node-parser-docling>=0.4.2,<0.5",
 92      "tomli>=2.4.1,<3",
 93      "llama-index-readers-docling>=0.4.2,<0.5",
 94      "markitdown[all]>=0.1.5,<0.2",
 95      "slack-bolt>=1.28.0,<2",
 96      "google-cloud-speech>=2.27.0,<3",
 97      "deepgram-sdk>=3.7.0,<5",
 98      "assemblyai>=0.34.0,<1",
 99  ]
100  
101  [project.scripts]
102  restai = "restai.cli:main"
103  
104  [dependency-groups]
105  gpu = [
106      "transformers>=4.56.0,<4.57",
107      "xformers>=0.0.29.post3,<0.0.30",
108      "optimum>=1.24.0,<2",
109      "accelerate>=1.13.0,<2",
110      "bitsandbytes>=0.45.5,<0.46",
111      "diffusers>=0.33.1,<0.34",
112      "sentencepiece>=0.2.1",
113      "torch>=2.6.0,<3",
114      "kornia>=0.8.2,<0.9",
115      "timm>=1.0.25,<2",
116      "triton>=3.2.0,<4"
117  ]
118  dev = [
119      "pylint>=3.3.0,<4",
120      "debugpy>=1.8.20,<2",
121      "black>=25.12.0,<27",
122  ]
123  
124  [tool.uv]
125  default-groups = [
126      "gpu",
127      "dev",
128  ]
129  no-build-isolation-package = ["xformers"]
130  
131  [build-system]
132  requires = ["hatchling"]
133  build-backend = "hatchling.build"
134  
135  [tool.hatch.build]
136  artifacts = ["frontend/build/**"]
137  exclude = [
138      "wordpress/**",
139      "wordpress",
140  ]
141  
142  [tool.hatch.build.targets.sdist]
143  include = ["restai/", "modules/", "migrations/", "crons/", "frontend/build/", "alembic.ini", "database.py"]
144  
145  [tool.hatch.build.targets.wheel]
146  packages = ["restai", "modules", "migrations"]
147  
148  [tool.hatch.build.targets.wheel.force-include]
149  "frontend/build" = "frontend/build"
150  "alembic.ini" = "alembic.ini"
151  "database.py" = "database.py"
152  "crons" = "crons"