/
pyproject.toml
90 lines (74 loc) · 1.93 KB
/
pyproject.toml
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
[build-system]
requires = ["poetry-core", "setuptools", "wheel"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "r2r"
version = "0.2.00"
description = "SciPhi R2R"
authors = ["Owen Colegrove <owen@sciphi.ai>"]
license = "MIT"
readme = "README.md"
include = ["config.json"]
[tool.poetry.dependencies]
# Python Versions
python = ">=3.9,<3.13"
# Required dependencies
# python
pydantic = "^2.6.3"
python-multipart = "^0.0.9"
# infrastructure
fastapi = "^0.109.2"
fire = "^0.5.0"
gunicorn = "^21.2.0"
requests = "^2.31.0"
types-requests = "^2.31.0"
uvicorn = "^0.27.0.post1"
# TODO - Make some of these optional
# async db providers
aiosqlite = "^0.20.0"
asyncpg = "^0.29.0"
redis = "^5.0.4"
# ingestion
bs4 = "^0.0.2"
openpyxl = "^3.1.2"
markdown = "^3.6"
pypdf = "^4.2.0"
python-pptx = "^0.6.23"
python-docx = "^1.1.0"
nest-asyncio = "^1.6.0"
# embedding providers
tiktoken = {version = "^0.5.2", optional = true}
sentence-transformers = {version = "^2.7.0", optional = true}
# vector db providers
vecs = "^0.4.0"
qdrant_client = {version = "^1.7.0"}
# llm providers
litellm = "^1.35.18"
openai = "^1.11.1"
llama-cpp-python = {version = "^0.2.57", optional = true}
# integrations
ionic-api-sdk = {version = "0.9.3", optional = true}
exa-py = {version = "^1.0.9", optional = true}
[tool.poetry.extras]
all = ["tiktoken", "qdrant_client", "llama-cpp-python", "sentence-transformers"]
exa = ["exa-py"]
ionic = ["ionic-api-sdk"]
local-llm = ["llama-cpp-python", "sentence-transformers"]
sentence-transformers-only = ["sentence-transformers"]
[tool.poetry.group.dev.dependencies]
black = "^24.3.0"
flake8 = "6.1.0"
isort = "5.12.0"
mypy = "^1.5.1"
pytest = "^8.2.0"
pytest-asyncio = "^0.23.6"
pytest-dependency = "^0.6.0"
pytest-mock = "^3.14.0"
[tool.black]
line-length = 79
[tool.mypy]
ignore_missing_imports = true
exclude = 'playground/.*|deprecated/.*|dump/.*|docs/source|vecs/*'
[[tool.mypy.overrides]]
module = "yaml"
ignore_missing_imports = true