quivr/backend/requirements.lock
Jacopo Chevallard ef90e8e672
feat: introducing configurable retrieval workflows (#3227)
# Description

Major PR which, among other things, introduces the possibility of easily
customizing the retrieval workflows. Workflows are based on LangGraph,
and can be customized using a [yaml configuration
file](core/tests/test_llm_endpoint.py), and adding the implementation of
the nodes logic into
[quivr_rag_langgraph.py](1a0c98437a/backend/core/quivr_core/quivr_rag_langgraph.py)

This is a first, simple implementation that will significantly evolve in
the coming weeks to enable more complex workflows (for instance, with
conditional nodes). We also plan to adopt a similar approach for the
ingestion part, i.e. to enable user to easily customize the ingestion
pipeline.

Closes CORE-195, CORE-203, CORE-204

## Checklist before requesting a review

Please delete options that are not relevant.

- [X] My code follows the style guidelines of this project
- [X] I have performed a self-review of my code
- [X] I have commented hard-to-understand areas
- [X] I have ideally added tests that prove my fix is effective or that
my feature works
- [X] New and existing unit tests pass locally with my changes
- [X] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-09-23 09:11:06 -07:00

1096 lines
24 KiB
Plaintext

# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: ["quivr-core/all"]
# all-features: false
# with-sources: true
# generate-hashes: false
# universal: true
--index-url https://pypi.org/simple/
--extra-index-url https://download.pytorch.org/whl/cpu
-e file:.
-e file:api
# via quivr-worker
-e file:core
# via quivr-api
# via quivr-worker
-e file:core/MegaParse
# via quivr-core
-e file:worker
aiofiles==24.1.0
# via quivr-core
aiohappyeyeballs==2.4.0
# via aiohttp
aiohttp==3.10.5
# via langchain
# via langchain-community
# via litellm
# via llama-index-core
# via llama-index-legacy
# via realtime
aiosignal==1.3.1
# via aiohttp
amqp==5.2.0
# via kombu
annotated-types==0.7.0
# via pydantic
anthropic==0.34.2
# via langchain-anthropic
antlr4-python3-runtime==4.9.3
# via omegaconf
anyio==4.4.0
# via anthropic
# via httpx
# via openai
# via starlette
appnope==0.1.4 ; platform_system == 'Darwin'
# via ipykernel
asttokens==2.4.1
# via stack-data
async-timeout==4.0.3 ; python_full_version < '3.12'
# via asyncpg
asyncpg==0.29.0
# via quivr-api
attrs==24.2.0
# via aiohttp
# via jsonschema
# via referencing
babel==2.16.0
# via mkdocs-material
backoff==2.2.1
# via posthog
# via unstructured
beautifulsoup4==4.12.3
# via llama-index-readers-file
# via markdownify
# via nbconvert
# via unstructured
billiard==4.2.0
# via celery
bleach==6.1.0
# via nbconvert
boto3==1.35.2
# via cohere
botocore==1.35.2
# via boto3
# via s3transfer
cachetools==5.5.0
# via google-auth
celery==5.4.0
# via flower
# via quivr-api
# via quivr-worker
certifi==2022.12.7
# via httpcore
# via httpx
# via requests
# via sentry-sdk
# via unstructured-client
cffi==1.17.0 ; platform_python_implementation != 'PyPy' or implementation_name == 'pypy'
# via cryptography
# via pyzmq
chardet==5.2.0
# via unstructured
charset-normalizer==2.1.1
# via pdfminer-six
# via requests
# via unstructured-client
click==8.1.7
# via celery
# via click-didyoumean
# via click-plugins
# via click-repl
# via litellm
# via mkdocs
# via mkdocstrings
# via nltk
# via uvicorn
click-didyoumean==0.3.1
# via celery
click-plugins==1.1.1
# via celery
click-repl==0.3.0
# via celery
cobble==0.1.4
# via mammoth
cohere==5.8.1
# via langchain-cohere
colorama==0.4.6
# via click
# via colorlog
# via griffe
# via ipython
# via mkdocs
# via mkdocs-material
# via tqdm
coloredlogs==15.0.1
# via onnxruntime
colorlog==6.8.2
# via quivr-api
comm==0.2.2
# via ipykernel
contourpy==1.2.1
# via matplotlib
cryptography==43.0.0
# via msal
# via pdfminer-six
# via pyjwt
cycler==0.12.1
# via matplotlib
dataclasses-json==0.6.7
# via langchain-community
# via llama-index-core
# via llama-index-legacy
# via unstructured
# via unstructured-client
debugpy==1.8.5
# via ipykernel
decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via fpdf2
# via langchain-anthropic
# via nbconvert
deprecated==1.2.14
# via llama-index-core
# via llama-index-legacy
# via pikepdf
deprecation==2.1.0
# via postgrest
dirtyjson==1.0.8
# via llama-index-core
# via llama-index-legacy
distro==1.9.0
# via anthropic
# via openai
docx2txt==0.8
# via quivr-core
dropbox==12.0.2
# via quivr-api
ecdsa==0.19.0
# via python-jose
effdet==0.4.1
# via unstructured
emoji==2.12.1
# via unstructured
et-xmlfile==1.1.0
# via openpyxl
executing==2.1.0
# via stack-data
faiss-cpu==1.8.0.post1
# via quivr-core
fastapi==0.112.1
# via quivr-api
# via sentry-sdk
fastavro==1.9.5
# via cohere
fastjsonschema==2.20.0
# via nbformat
filelock==3.13.1
# via huggingface-hub
# via torch
# via transformers
filetype==1.2.0
# via unstructured
fire==0.6.0
# via pdf2docx
flatbuffers==24.3.25
# via onnxruntime
flower==2.0.1
# via quivr-worker
fonttools==4.53.1
# via fpdf2
# via matplotlib
# via pdf2docx
fpdf2==2.7.9
# via quivr-worker
frozenlist==1.4.1
# via aiohttp
# via aiosignal
fsspec==2024.2.0
# via huggingface-hub
# via llama-index-core
# via llama-index-legacy
# via torch
ghp-import==2.1.0
# via mkdocs
google-api-core==2.19.1
# via google-api-python-client
# via google-cloud-vision
google-api-python-client==2.142.0
# via quivr-api
google-auth==2.34.0
# via google-api-core
# via google-api-python-client
# via google-auth-httplib2
# via google-auth-oauthlib
# via google-cloud-vision
google-auth-httplib2==0.2.0
# via google-api-python-client
# via quivr-api
google-auth-oauthlib==1.2.1
# via quivr-api
google-cloud-vision==3.7.4
# via unstructured
googleapis-common-protos==1.63.2
# via google-api-core
# via grpcio-status
gotrue==2.7.0
# via supabase
greenlet==3.0.3
# via playwright
# via sqlalchemy
griffe==1.2.0
# via mkdocstrings-python
grpcio==1.65.5
# via google-api-core
# via grpcio-status
grpcio-status==1.65.5
# via google-api-core
h11==0.14.0
# via httpcore
# via uvicorn
h2==4.1.0
# via httpx
hpack==4.0.0
# via h2
httpcore==1.0.5
# via httpx
httplib2==0.22.0
# via google-api-python-client
# via google-auth-httplib2
httpx==0.27.0
# via anthropic
# via cohere
# via gotrue
# via langsmith
# via llama-cloud
# via llama-index-core
# via llama-index-legacy
# via notion-client
# via openai
# via postgrest
# via quivr-core
# via storage3
# via supabase
# via supafunc
httpx-sse==0.4.0
# via cohere
huggingface-hub==0.24.6
# via timm
# via tokenizers
# via transformers
# via unstructured-inference
humanfriendly==10.0
# via coloredlogs
humanize==4.10.0
# via flower
hyperframe==6.0.1
# via h2
idna==3.4
# via anyio
# via httpx
# via requests
# via unstructured-client
# via yarl
importlib-metadata==8.4.0
# via litellm
iopath==0.1.10
# via layoutparser
ipykernel==6.29.5
# via mkdocs-jupyter
ipython==8.27.0
# via ipykernel
jedi==0.19.1
# via ipython
jinja2==3.1.3
# via litellm
# via mkdocs
# via mkdocs-material
# via mkdocstrings
# via nbconvert
# via torch
jiter==0.5.0
# via anthropic
# via openai
jmespath==1.0.1
# via boto3
# via botocore
joblib==1.4.2
# via nltk
jsonpatch==1.33
# via langchain-core
jsonpath-python==1.0.6
# via unstructured-client
jsonpointer==3.0.0
# via jsonpatch
jsonschema==4.23.0
# via litellm
# via nbformat
jsonschema-specifications==2023.12.1
# via jsonschema
jupyter-client==8.6.2
# via ipykernel
# via nbclient
jupyter-core==5.7.2
# via ipykernel
# via jupyter-client
# via nbclient
# via nbconvert
# via nbformat
jupyterlab-pygments==0.3.0
# via nbconvert
jupytext==1.16.4
# via mkdocs-jupyter
kiwisolver==1.4.5
# via matplotlib
kombu==5.4.0
# via celery
langchain==0.2.14
# via langchain-community
# via megaparse
# via quivr-api
# via quivr-core
langchain-anthropic==0.1.23
# via quivr-core
# via quivr-monorepo
langchain-cohere==0.2.2
# via quivr-api
langchain-community==0.2.12
# via langchain-experimental
# via megaparse
# via quivr-api
# via quivr-core
langchain-core==0.2.38
# via langchain
# via langchain-anthropic
# via langchain-cohere
# via langchain-community
# via langchain-experimental
# via langchain-openai
# via langchain-text-splitters
# via langgraph
# via langgraph-checkpoint
# via megaparse
# via quivr-core
langchain-experimental==0.0.64
# via langchain-cohere
langchain-openai==0.1.22
# via megaparse
# via quivr-api
langchain-text-splitters==0.2.2
# via langchain
langdetect==1.0.9
# via unstructured
langgraph==0.2.19
# via quivr-core
langgraph-checkpoint==1.0.9
# via langgraph
langsmith==0.1.100
# via langchain
# via langchain-community
# via langchain-core
layoutparser==0.3.4
# via unstructured-inference
litellm==1.43.19
# via quivr-api
llama-cloud==0.0.13
# via llama-index-indices-managed-llama-cloud
llama-index==0.10.67.post1
# via megaparse
llama-index-agent-openai==0.2.9
# via llama-index
# via llama-index-program-openai
llama-index-cli==0.1.13
# via llama-index
llama-index-core==0.10.67
# via llama-index
# via llama-index-agent-openai
# via llama-index-cli
# via llama-index-embeddings-openai
# via llama-index-indices-managed-llama-cloud
# via llama-index-llms-openai
# via llama-index-multi-modal-llms-openai
# via llama-index-program-openai
# via llama-index-question-gen-openai
# via llama-index-readers-file
# via llama-index-readers-llama-parse
# via llama-parse
llama-index-embeddings-openai==0.1.11
# via llama-index
# via llama-index-cli
llama-index-indices-managed-llama-cloud==0.2.7
# via llama-index
llama-index-legacy==0.9.48.post3
# via llama-index
llama-index-llms-openai==0.1.30
# via llama-index
# via llama-index-agent-openai
# via llama-index-cli
# via llama-index-multi-modal-llms-openai
# via llama-index-program-openai
# via llama-index-question-gen-openai
llama-index-multi-modal-llms-openai==0.1.9
# via llama-index
llama-index-program-openai==0.1.7
# via llama-index
# via llama-index-question-gen-openai
llama-index-question-gen-openai==0.1.3
# via llama-index
llama-index-readers-file==0.1.33
# via llama-index
llama-index-readers-llama-parse==0.1.6
# via llama-index
llama-parse==0.4.9
# via llama-index-readers-llama-parse
# via megaparse
# via quivr-api
lxml==5.3.0
# via pikepdf
# via python-docx
# via python-pptx
# via unstructured
mammoth==1.8.0
# via megaparse
markdown==3.7
# via mkdocs
# via mkdocs-autorefs
# via mkdocs-material
# via mkdocstrings
# via pymdown-extensions
# via unstructured
markdown-it-py==3.0.0
# via jupytext
# via mdit-py-plugins
# via rich
markdownify==0.13.1
# via quivr-api
markupsafe==2.1.5
# via jinja2
# via mkdocs
# via mkdocs-autorefs
# via mkdocstrings
# via nbconvert
marshmallow==3.22.0
# via dataclasses-json
# via marshmallow-enum
# via unstructured-client
marshmallow-enum==1.5.1
# via unstructured-client
matplotlib==3.9.2
# via pycocotools
# via unstructured-inference
matplotlib-inline==0.1.7
# via ipykernel
# via ipython
mdit-py-plugins==0.4.1
# via jupytext
mdurl==0.1.2
# via markdown-it-py
mergedeep==1.3.4
# via mkdocs
# via mkdocs-get-deps
mistune==3.0.2
# via nbconvert
mkdocs==1.6.1
# via mkdocs-autorefs
# via mkdocs-include-dir-to-nav
# via mkdocs-jupyter
# via mkdocs-material
# via mkdocs-redirects
# via mkdocstrings
mkdocs-autorefs==1.2.0
# via mkdocstrings
# via mkdocstrings-python
mkdocs-get-deps==0.2.0
# via mkdocs
mkdocs-include-dir-to-nav==1.2.0
mkdocs-jupyter==0.25.0
mkdocs-material==9.5.34
# via mkdocs-jupyter
mkdocs-material-extensions==1.3.1
# via mkdocs-material
mkdocs-redirects==1.2.1
mkdocstrings==0.26.1
# via mkdocstrings-python
mkdocstrings-python==1.11.1
# via mkdocstrings
monotonic==1.6
# via posthog
mpmath==1.3.0
# via sympy
msal==1.30.0
# via quivr-api
multidict==6.0.5
# via aiohttp
# via yarl
mypy-extensions==1.0.0
# via typing-inspect
# via unstructured-client
nbclient==0.10.0
# via nbconvert
nbconvert==7.16.4
# via mkdocs-jupyter
nbformat==5.10.4
# via jupytext
# via nbclient
# via nbconvert
nest-asyncio==1.6.0
# via ipykernel
# via llama-index-core
# via llama-index-legacy
networkx==3.2.1
# via llama-index-core
# via llama-index-legacy
# via torch
# via unstructured
nltk==3.9.1
# via llama-index-core
# via llama-index-legacy
# via unstructured
notion-client==2.2.1
# via quivr-api
numpy==1.26.3
# via contourpy
# via faiss-cpu
# via langchain
# via langchain-community
# via layoutparser
# via llama-index-core
# via llama-index-legacy
# via matplotlib
# via onnx
# via onnxruntime
# via opencv-python
# via opencv-python-headless
# via pandas
# via pdf2docx
# via pgvector
# via pycocotools
# via scipy
# via torchvision
# via transformers
# via unstructured
oauthlib==3.2.2
# via requests-oauthlib
omegaconf==2.3.0
# via effdet
onnx==1.16.2
# via unstructured
# via unstructured-inference
onnxruntime==1.19.0
# via unstructured-inference
openai==1.42.0
# via langchain-openai
# via litellm
# via llama-index-agent-openai
# via llama-index-core
# via llama-index-legacy
# via llama-index-llms-openai
# via quivr-api
# via quivr-worker
opencv-python==4.10.0.84
# via layoutparser
# via unstructured-inference
opencv-python-headless==4.10.0.84
# via pdf2docx
openpyxl==3.1.5
# via unstructured
orjson==3.10.7
# via langsmith
packaging==24.1
# via deprecation
# via faiss-cpu
# via huggingface-hub
# via ipykernel
# via jupytext
# via langchain-core
# via marshmallow
# via matplotlib
# via mkdocs
# via nbconvert
# via onnxruntime
# via pikepdf
# via quivr-monorepo
# via transformers
# via unstructured-client
# via unstructured-pytesseract
paginate==0.5.7
# via mkdocs-material
pandas==2.2.2
# via langchain-cohere
# via layoutparser
# via llama-index-core
# via llama-index-legacy
# via unstructured
pandocfilters==1.5.1
# via nbconvert
parameterized==0.9.0
# via cohere
parso==0.8.4
# via jedi
pathspec==0.12.1
# via mkdocs
pdf2docx==0.5.8
# via megaparse
pdf2image==1.17.0
# via layoutparser
# via unstructured
pdfminer-six==20231228
# via pdfplumber
# via unstructured
pdfplumber==0.11.4
# via layoutparser
# via megaparse
pexpect==4.9.0 ; sys_platform != 'emscripten' and sys_platform != 'win32'
# via ipython
pgvector==0.3.2
# via quivr-api
pikepdf==9.1.1
# via unstructured
pillow==10.2.0
# via fpdf2
# via layoutparser
# via llama-index-core
# via matplotlib
# via pdf2image
# via pdfplumber
# via pikepdf
# via pillow-heif
# via python-pptx
# via torchvision
# via unstructured-pytesseract
pillow-heif==0.18.0
# via unstructured
platformdirs==4.3.2
# via jupyter-core
# via mkdocs-get-deps
# via mkdocstrings
playwright==1.46.0
# via quivr-worker
ply==3.11
# via stone
portalocker==2.10.1
# via iopath
postgrest==0.16.10
# via supabase
posthog==3.5.0
# via quivr-api
prometheus-client==0.20.0
# via flower
prompt-toolkit==3.0.47
# via click-repl
# via ipython
proto-plus==1.24.0
# via google-api-core
# via google-cloud-vision
protobuf==5.27.3
# via google-api-core
# via google-cloud-vision
# via googleapis-common-protos
# via grpcio-status
# via onnx
# via onnxruntime
# via proto-plus
# via transformers
psutil==6.0.0
# via ipykernel
# via unstructured
psycopg2-binary==2.9.9
# via quivr-api
ptyprocess==0.7.0 ; sys_platform != 'emscripten' and sys_platform != 'win32'
# via pexpect
pure-eval==0.2.3
# via stack-data
pyasn1==0.6.0
# via pyasn1-modules
# via python-jose
# via rsa
pyasn1-modules==0.4.0
# via google-auth
pycocotools==2.0.8
# via effdet
pycparser==2.22 ; platform_python_implementation != 'PyPy' or implementation_name == 'pypy'
# via cffi
pycryptodome==3.20.0
# via megaparse
pydantic==2.8.2
# via anthropic
# via cohere
# via fastapi
# via gotrue
# via langchain
# via langchain-core
# via langsmith
# via litellm
# via llama-cloud
# via openai
# via postgrest
# via pydantic-settings
# via quivr-core
# via sqlmodel
pydantic-core==2.20.1
# via cohere
# via pydantic
pydantic-settings==2.4.0
# via quivr-api
pyee==11.1.0
# via playwright
pygments==2.18.0
# via ipython
# via mkdocs-jupyter
# via mkdocs-material
# via nbconvert
# via rich
pyinstrument==4.7.2
# via quivr-api
pyjwt==2.9.0
# via msal
pymdown-extensions==10.9
# via mkdocs-material
# via mkdocstrings
pymupdf==1.24.9
# via pdf2docx
pymupdfb==1.24.9
# via pymupdf
pypandoc==1.13
# via unstructured
pyparsing==3.1.2
# via httplib2
# via matplotlib
# via unstructured-client
pypdf==4.3.1
# via llama-index-readers-file
# via unstructured
pypdfium2==4.30.0
# via pdfplumber
pyreadline3==3.4.1 ; sys_platform == 'win32'
# via humanfriendly
python-dateutil==2.9.0.post0
# via botocore
# via celery
# via ghp-import
# via jupyter-client
# via matplotlib
# via pandas
# via posthog
# via realtime
# via storage3
# via unstructured-client
python-docx==1.1.2
# via megaparse
# via pdf2docx
# via unstructured
python-dotenv==1.0.1
# via litellm
# via megaparse
# via pydantic-settings
# via quivr-api
# via quivr-worker
python-iso639==2024.4.27
# via unstructured
python-jose==3.3.0
# via quivr-api
python-magic==0.4.27
# via unstructured
python-multipart==0.0.9
# via quivr-api
# via unstructured-inference
python-pptx==1.0.2
# via megaparse
# via unstructured
pytz==2024.1
# via flower
# via pandas
pywin32==306 ; (platform_python_implementation != 'PyPy' and sys_platform == 'win32') or platform_system == 'Windows'
# via jupyter-core
# via portalocker
pyyaml==6.0.2
# via huggingface-hub
# via jupytext
# via langchain
# via langchain-community
# via langchain-core
# via layoutparser
# via llama-index-core
# via mkdocs
# via mkdocs-get-deps
# via omegaconf
# via pymdown-extensions
# via pyyaml-env-tag
# via timm
# via transformers
pyyaml-env-tag==0.1
# via mkdocs
pyzmq==26.2.0
# via ipykernel
# via jupyter-client
rapidfuzz==3.9.6
# via unstructured
# via unstructured-inference
realtime==2.0.2
# via supabase
redis==5.0.8
# via celery
# via quivr-api
referencing==0.35.1
# via jsonschema
# via jsonschema-specifications
regex==2024.7.24
# via mkdocs-material
# via nltk
# via tiktoken
# via transformers
requests==2.32.3
# via cohere
# via dropbox
# via google-api-core
# via huggingface-hub
# via langchain
# via langchain-community
# via langsmith
# via litellm
# via llama-index-core
# via llama-index-legacy
# via mkdocs-material
# via msal
# via posthog
# via requests-oauthlib
# via resend
# via tiktoken
# via transformers
# via unstructured
# via unstructured-client
requests-oauthlib==2.0.0
# via google-auth-oauthlib
resend==2.4.0
# via quivr-api
rich==13.7.1
# via quivr-core
rpds-py==0.20.0
# via jsonschema
# via referencing
rsa==4.9
# via google-auth
# via python-jose
s3transfer==0.10.2
# via boto3
safetensors==0.4.4
# via timm
# via transformers
scipy==1.14.1
# via layoutparser
sentencepiece==0.2.0
# via transformers
sentry-sdk==2.13.0
# via quivr-api
six==1.16.0
# via asttokens
# via bleach
# via dropbox
# via ecdsa
# via fire
# via langdetect
# via markdownify
# via posthog
# via python-dateutil
# via stone
# via unstructured-client
sniffio==1.3.1
# via anthropic
# via anyio
# via httpx
# via openai
soupsieve==2.6
# via beautifulsoup4
sqlalchemy==2.0.32
# via langchain
# via langchain-community
# via llama-index-core
# via llama-index-legacy
# via sqlmodel
sqlmodel==0.0.21
# via quivr-api
stack-data==0.6.3
# via ipython
starlette==0.38.2
# via fastapi
stone==3.3.1
# via dropbox
storage3==0.7.7
# via supabase
strenum==0.4.15
# via postgrest
striprtf==0.0.26
# via llama-index-readers-file
supabase==2.7.2
# via quivr-api
supafunc==0.5.1
# via supabase
sympy==1.12
# via onnxruntime
# via torch
tabulate==0.9.0
# via langchain-cohere
# via unstructured
tenacity==8.5.0
# via langchain
# via langchain-community
# via langchain-core
# via llama-index-core
# via llama-index-legacy
termcolor==2.4.0
# via fire
tiktoken==0.7.0
# via langchain-openai
# via litellm
# via llama-index-core
# via llama-index-legacy
# via quivr-api
# via quivr-core
timm==1.0.8
# via effdet
# via unstructured-inference
tinycss2==1.3.0
# via nbconvert
tokenizers==0.19.1
# via anthropic
# via cohere
# via litellm
# via transformers
torch==2.4.0 ; platform_machine != 'x86_64'
# via effdet
# via quivr-worker
# via timm
# via torchvision
# via unstructured-inference
torch==2.4.0+cpu ; platform_machine == 'x86_64'
# via effdet
# via quivr-worker
# via timm
# via torchvision
# via unstructured-inference
torchvision==0.19.0 ; platform_machine != 'x86_64'
# via effdet
# via quivr-worker
# via timm
torchvision==0.19.0+cpu ; platform_machine == 'x86_64'
# via effdet
# via quivr-worker
# via timm
tornado==6.4.1
# via flower
# via ipykernel
# via jupyter-client
tqdm==4.66.5
# via huggingface-hub
# via iopath
# via llama-index-core
# via nltk
# via openai
# via transformers
# via unstructured
traitlets==5.14.3
# via comm
# via ipykernel
# via ipython
# via jupyter-client
# via jupyter-core
# via matplotlib-inline
# via nbclient
# via nbconvert
# via nbformat
transformers==4.44.2
# via quivr-core
# via unstructured-inference
types-pyyaml==6.0.12.20240808
# via quivr-core
types-requests==2.31.0.6
# via cohere
types-urllib3==1.26.25.14
# via types-requests
typing-extensions==4.12.2
# via anthropic
# via cohere
# via emoji
# via fastapi
# via huggingface-hub
# via iopath
# via ipython
# via langchain-core
# via llama-index-core
# via llama-index-legacy
# via openai
# via pydantic
# via pydantic-core
# via pyee
# via python-docx
# via python-pptx
# via realtime
# via resend
# via sqlalchemy
# via storage3
# via torch
# via typing-inspect
# via unstructured
# via unstructured-client
typing-inspect==0.9.0
# via dataclasses-json
# via llama-index-core
# via llama-index-legacy
# via unstructured-client
tzdata==2024.1
# via celery
# via pandas
unidecode==1.3.8
# via quivr-api
unstructured==0.15.7
# via megaparse
# via quivr-core
unstructured-client==0.8.1
# via unstructured
unstructured-inference==0.7.36
# via unstructured
unstructured-pytesseract==0.3.13
# via unstructured
uritemplate==4.1.1
# via google-api-python-client
urllib3==1.26.13
# via botocore
# via requests
# via sentry-sdk
# via unstructured-client
uvicorn==0.30.6
# via quivr-api
uvloop==0.20.0
# via quivr-api
vine==5.1.0
# via amqp
# via celery
# via kombu
watchdog==5.0.2
# via mkdocs
wcwidth==0.2.13
# via prompt-toolkit
webencodings==0.5.1
# via bleach
# via tinycss2
websockets==12.0
# via realtime
wrapt==1.16.0
# via deprecated
# via llama-index-core
# via unstructured
xlrd==2.0.1
# via unstructured
xlsxwriter==3.2.0
# via python-pptx
yarl==1.9.4
# via aiohttp
zipp==3.20.0
# via importlib-metadata