chore: Add initial documentation files and configuration (#3126)

# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

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

## Screenshots (if appropriate):
This commit is contained in:
Stan Girard 2024-09-09 11:06:16 +02:00 committed by GitHub
parent b70ae63215
commit c9ddbbdcd3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 1058 additions and 27 deletions

View File

@ -43,23 +43,13 @@ jobs:
working-directory: backend/core
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v3
- name: Install Rye
uses: eifinger/setup-rye@v2
with:
python-version: '3.11'
- name: Check working directory
run: pwd
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
- name: Install project dependencies
run: poetry install
- name: Build package
run: poetry build
- name: Publish package
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages_dir: backend/core/dist
enable-cache: true
- name: Rye Sync
run: UV_INDEX_STRATEGY=unsafe-first-match rye sync --no-lock
- name: Rye Build
run: rye build
- name: Rye Publish
run: rye publish --token ${{ secrets.PYPI_API_TOKEN }} --yes

View File

@ -7,6 +7,11 @@ from quivr_core.models import ChatMessage
class ChatHistory:
"""
Chat history is a list of ChatMessage.
It is used to store the chat history of a chat.
"""
def __init__(self, chat_id: UUID, brain_id: UUID | None) -> None:
self.id = chat_id
self.brain_id = brain_id
@ -30,6 +35,9 @@ class ChatHistory:
def append(
self, langchain_msg: AIMessage | HumanMessage, metadata: dict[str, Any] = {}
):
"""
Append a message to the chat history.
"""
chat_msg = ChatMessage(
chat_id=self.id,
message_id=uuid4(),
@ -41,6 +49,9 @@ class ChatHistory:
self._msgs.append(chat_msg)
def iter_pairs(self) -> Generator[Tuple[HumanMessage, AIMessage], None, None]:
"""
Iterate over the chat history as pairs of HumanMessage and AIMessage.
"""
# Reverse the chat_history, newest first
it = iter(self.get_chat_history(newest_first=True))
for ai_message, human_message in zip(it, it):

View File

@ -14,6 +14,19 @@ logger = logging.getLogger("quivr_core")
class MegaparseProcessor(ProcessorBase):
'''
Megaparse processor for PDF files.
It can be used to parse PDF files and split them into chunks.
It comes from the megaparse library.
## Installation
```bash
pip install megaparse
```
'''
supported_extensions = [FileExtension.pdf]
def __init__(

View File

@ -27,6 +27,11 @@ def recursive_character_splitter(
class SimpleTxtProcessor(ProcessorBase):
"""
SimpleTxtProcessor is a class that implements the ProcessorBase interface.
It is used to process the files with the Simple Txt parser.
"""
supported_extensions = [FileExtension.txt]
def __init__(

View File

@ -14,6 +14,16 @@ logger = logging.getLogger("quivr_core")
class TikaProcessor(ProcessorBase):
"""
TikaProcessor is a class that implements the ProcessorBase interface.
It is used to process the files with the Tika server.
To run it with docker you can do:
```bash
docker run -d -p 9998:9998 apache/tika
```
"""
supported_extensions = [FileExtension.pdf]
def __init__(

View File

@ -2,5 +2,12 @@ from pydantic import BaseModel
class SplitterConfig(BaseModel):
"""
This class is used to configure the chunking of the documents.
Chunk size is the number of characters in the chunk.
Chunk overlap is the number of characters that the chunk will overlap with the previous chunk.
"""
chunk_size: int = 400
chunk_overlap: int = 100

View File

@ -45,6 +45,10 @@ class IdempotentCompressor(BaseDocumentCompressor):
class QuivrQARAG:
"""
QuivrQA RAG is a class that provides a RAG interface to the QuivrQA system.
"""
def __init__(
self,
*,
@ -60,6 +64,9 @@ class QuivrQARAG:
@property
def retriever(self):
"""
Retriever is a function that retrieves the documents from the vector store.
"""
return self.vector_store.as_retriever()
def filter_history(
@ -92,6 +99,9 @@ class QuivrQARAG:
return filtered_chat_history[::-1]
def build_chain(self, files: str):
"""
Builds the chain for the QuivrQA RAG.
"""
compression_retriever = ContextualCompressionRetriever(
base_compressor=self.reranker, base_retriever=self.retriever
)
@ -149,6 +159,9 @@ class QuivrQARAG:
list_files: list[QuivrKnowledge],
metadata: dict[str, str] = {},
) -> ParsedRAGResponse:
"""
Answers a question using the QuivrQA RAG synchronously.
"""
concat_list_files = format_file_list(list_files, self.rag_config.max_files)
conversational_qa_chain = self.build_chain(concat_list_files)
raw_llm_response = conversational_qa_chain.invoke(
@ -169,6 +182,9 @@ class QuivrQARAG:
list_files: list[QuivrKnowledge],
metadata: dict[str, str] = {},
) -> AsyncGenerator[ParsedRAGChunkResponse, ParsedRAGChunkResponse]:
"""
Answers a question using the QuivrQA RAG asynchronously.
"""
concat_list_files = format_file_list(list_files, self.rag_config.max_files)
conversational_qa_chain = self.build_chain(concat_list_files)

10
backend/docs/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
# python generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info
# venv
.venv

View File

@ -0,0 +1 @@
3.11.9

3
backend/docs/README.md Normal file
View File

@ -0,0 +1,3 @@
# docs
Describe your project here.

View File

@ -0,0 +1,50 @@
.md-container .jp-Cell-outputWrapper .jp-OutputPrompt.jp-OutputArea-prompt,
.md-container .jp-Cell-inputWrapper .jp-InputPrompt.jp-InputArea-prompt {
display: none !important;
}
/* CSS styles for side-by-side layout */
.container {
display: flex-col;
justify-content: space-between;
margin-bottom: 20px;
/* Adjust spacing between sections */
position: sticky;
top: 2.4rem;
z-index: 1000;
/* Ensure it's above other content */
background-color: white;
/* Match your page background */
padding: 0.2rem;
}
.example-heading {
margin: 0.2rem !important;
}
.usage-examples {
width: 100%;
/* Adjust the width as needed */
border: 1px solid var(--md-default-fg-color--light);
border-radius: 2px;
padding: 0.2rem;
}
/* Additional styling for the toggle */
.toggle-example {
cursor: pointer;
color: white;
text-decoration: underline;
background-color: var(--md-primary-fg-color);
padding: 0.2rem;
border-radius: 2px;
}
.hidden {
display: none;
}
/* mendable search styling */
#my-component-root>div {
bottom: 100px;
}

View File

@ -0,0 +1,41 @@
# Welcome to Quivr Documentation
Welcome to the documentation of Quivr! This is the place where you'll find help, guidance and support for collaborative software development. Whether you're involved in an open-source community or a large software team, these resources should get you up and running quickly!
[Quivr](https://quivr.app) is your **Second Brain** that can act as your **personal assistant**. Quivr is a platform that enables the creation of AI assistants, referred to as "Brain". These assistants are designed with specialized capabilities. Some can connect to specific data sources, allowing users to interact directly with the data. Others serve as specialized tools for particular use cases, powered by Rag technology. These tools process specific inputs to generate practical outputs, such as summaries, translations, and more.
## Quick Links
- [Video Installation](https://dub.sh/quivr-demo)
!!! note
**Our goal** is to make Quivr the **best personal assistant** that is powered by your knowledge and your applications 🔥
## What does it do?
<div style="text-align: center;">
<video width="640" height="480" controls>
<source src="https://quivr-cms.s3.eu-west-3.amazonaws.com/singlestore_demo_quivr_232893659c.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
## How to get started? 👀
!!! tip
It takes less than **5 seconds** to get started with Quivr. You can even use your Google account to sign up.
1. **Create an account**: Go to [Quivr](https://quivr.app) and create an account.
2. **Create a Brain**: Let us guide you to create your first brain!
3. **Feed this Brain**: Add documentation and/or URLs to feed your brain.
4. **Ask Questions to your Brain**: Ask your Brain questions about the knowledge that you provide.
## Empowering Innovation with Foundation Models & Generative AI
As a Leader in AI, Quivr leverages Foundation Models and Generative AI to empower businesses to achieve gains through Innovation.
- 50k+ users
- 6k+ companies
- 35k+ github stars
- Top 100 open-source

View File

@ -0,0 +1,5 @@
## Installation
```bash
pip install quivr-core
```

View File

@ -0,0 +1,3 @@
Quivr provides a suite of parsers to extract structured data from various sources.

View File

@ -0,0 +1,5 @@
## Megaparse
::: quivr_core.processor.implementations.megaparse_processor
options:
heading_level: 2

View File

@ -0,0 +1,5 @@
## Simple Txt
::: quivr_core.processor.implementations.simple_txt_processor
options:
heading_level: 2

62
backend/docs/mkdocs.yml Normal file
View File

@ -0,0 +1,62 @@
site_name: Quivr
extra_css:
- css/style.css
markdown_extensions:
- attr_list
- admonition
- pymdownx.details
- pymdownx.superfences
- md_in_html
- toc:
permalink: "#"
theme:
custom_dir: overrides
features:
- navigation.instant
- navigation.tabs
- navigation.indexes
- navigation.top
- navigation.footer
- toc.follow
- content.code.copy
- search.suggest
- search.highlight
name: material
palette:
- media: (prefers-color-scheme)
toggle:
icon: material/brightness-auto
name: Switch to light mode
- accent: purple
media: "(prefers-color-scheme: light)"
primary: white
scheme: default
toggle:
icon: material/brightness-7
name: Switch to dark mode
- accent: purple
media: "(prefers-color-scheme: dark)"
primary: black
scheme: slate
toggle:
icon: material/brightness-4
name: Switch to system preference
plugins:
- mkdocstrings:
default_handler: python
nav:
- Home:
- index.md
- installation.md
- Features:
- Parsers:
- parsers/index.md
- parsers/megaparse.md
- parsers/simple.md
- Enterprise: https://docs.quivr.app/

View File

@ -0,0 +1,35 @@
[project]
name = "docs"
version = "0.1.0"
description = "Add your description here"
authors = [
{ name = "Stan Girard", email = "stan@quivr.app" }
]
dependencies = [
"mkdocs>=1.6.1",
"mkdocstrings[python]>=0.26.0",
"mkdocs-jupyter>=0.24.8",
"mkdocs-include-dir-to-nav>=1.2.0",
"mkdocs-material>=9.5.34",
"mkdocs-redirects>=1.2.1",
]
readme = "README.md"
requires-python = ">= 3.8"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.rye]
managed = true
dev-dependencies = []
virtual = true
[tool.rye.scripts]
docs = "mkdocs serve"
[tool.hatch.metadata]
allow-direct-references = true

View File

@ -0,0 +1,231 @@
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
# universal: false
asttokens==2.4.1
# via stack-data
attrs==24.2.0
# via jsonschema
# via referencing
babel==2.16.0
# via mkdocs-material
beautifulsoup4==4.12.3
# via nbconvert
bleach==6.1.0
# via nbconvert
certifi==2024.8.30
# via requests
charset-normalizer==3.3.2
# via requests
click==8.1.7
# via mkdocs
# via mkdocstrings
colorama==0.4.6
# via griffe
# via mkdocs-material
comm==0.2.2
# via ipykernel
debugpy==1.8.5
# via ipykernel
decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via nbconvert
executing==2.1.0
# via stack-data
fastjsonschema==2.20.0
# via nbformat
ghp-import==2.1.0
# via mkdocs
griffe==1.2.0
# via mkdocstrings-python
idna==3.8
# via requests
ipykernel==6.29.5
# via mkdocs-jupyter
ipython==8.27.0
# via ipykernel
jedi==0.19.1
# via ipython
jinja2==3.1.4
# via mkdocs
# via mkdocs-material
# via mkdocstrings
# via nbconvert
jsonschema==4.23.0
# 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
markdown==3.7
# via mkdocs
# via mkdocs-autorefs
# via mkdocs-material
# via mkdocstrings
# via pymdown-extensions
markdown-it-py==3.0.0
# via jupytext
# via mdit-py-plugins
markupsafe==2.1.5
# via jinja2
# via mkdocs
# via mkdocs-autorefs
# via mkdocstrings
# via nbconvert
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.24.8
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.0
# via mkdocstrings-python
mkdocstrings-python==1.10.9
# via mkdocstrings
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
packaging==24.1
# via ipykernel
# via jupytext
# via mkdocs
# via nbconvert
paginate==0.5.7
# via mkdocs-material
pandocfilters==1.5.1
# via nbconvert
parso==0.8.4
# via jedi
pathspec==0.12.1
# via mkdocs
pexpect==4.9.0
# via ipython
platformdirs==4.2.2
# via jupyter-core
# via mkdocs-get-deps
# via mkdocstrings
prompt-toolkit==3.0.47
# via ipython
psutil==6.0.0
# via ipykernel
ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.3
# via stack-data
pygments==2.18.0
# via ipython
# via mkdocs-jupyter
# via mkdocs-material
# via nbconvert
pymdown-extensions==10.9
# via mkdocs-material
# via mkdocstrings
python-dateutil==2.9.0.post0
# via ghp-import
# via jupyter-client
pyyaml==6.0.2
# via jupytext
# via mkdocs
# via mkdocs-get-deps
# via pymdown-extensions
# via pyyaml-env-tag
pyyaml-env-tag==0.1
# via mkdocs
pyzmq==26.2.0
# via ipykernel
# via jupyter-client
referencing==0.35.1
# via jsonschema
# via jsonschema-specifications
regex==2024.7.24
# via mkdocs-material
requests==2.32.3
# via mkdocs-material
rpds-py==0.20.0
# via jsonschema
# via referencing
six==1.16.0
# via asttokens
# via bleach
# via python-dateutil
soupsieve==2.6
# via beautifulsoup4
stack-data==0.6.3
# via ipython
tinycss2==1.3.0
# via nbconvert
tornado==6.4.1
# via ipykernel
# via jupyter-client
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
typing-extensions==4.12.2
# via ipython
urllib3==2.2.2
# via requests
watchdog==5.0.0
# via mkdocs
wcwidth==0.2.13
# via prompt-toolkit
webencodings==0.5.1
# via bleach
# via tinycss2

View File

@ -0,0 +1,231 @@
# generated by rye
# use `rye lock` or `rye sync` to update this lockfile
#
# last locked with the following flags:
# pre: false
# features: []
# all-features: false
# with-sources: false
# generate-hashes: false
# universal: false
asttokens==2.4.1
# via stack-data
attrs==24.2.0
# via jsonschema
# via referencing
babel==2.16.0
# via mkdocs-material
beautifulsoup4==4.12.3
# via nbconvert
bleach==6.1.0
# via nbconvert
certifi==2024.8.30
# via requests
charset-normalizer==3.3.2
# via requests
click==8.1.7
# via mkdocs
# via mkdocstrings
colorama==0.4.6
# via griffe
# via mkdocs-material
comm==0.2.2
# via ipykernel
debugpy==1.8.5
# via ipykernel
decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via nbconvert
executing==2.1.0
# via stack-data
fastjsonschema==2.20.0
# via nbformat
ghp-import==2.1.0
# via mkdocs
griffe==1.2.0
# via mkdocstrings-python
idna==3.8
# via requests
ipykernel==6.29.5
# via mkdocs-jupyter
ipython==8.27.0
# via ipykernel
jedi==0.19.1
# via ipython
jinja2==3.1.4
# via mkdocs
# via mkdocs-material
# via mkdocstrings
# via nbconvert
jsonschema==4.23.0
# 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
markdown==3.7
# via mkdocs
# via mkdocs-autorefs
# via mkdocs-material
# via mkdocstrings
# via pymdown-extensions
markdown-it-py==3.0.0
# via jupytext
# via mdit-py-plugins
markupsafe==2.1.5
# via jinja2
# via mkdocs
# via mkdocs-autorefs
# via mkdocstrings
# via nbconvert
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.24.8
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.0
# via mkdocstrings-python
mkdocstrings-python==1.10.9
# via mkdocstrings
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
packaging==24.1
# via ipykernel
# via jupytext
# via mkdocs
# via nbconvert
paginate==0.5.7
# via mkdocs-material
pandocfilters==1.5.1
# via nbconvert
parso==0.8.4
# via jedi
pathspec==0.12.1
# via mkdocs
pexpect==4.9.0
# via ipython
platformdirs==4.2.2
# via jupyter-core
# via mkdocs-get-deps
# via mkdocstrings
prompt-toolkit==3.0.47
# via ipython
psutil==6.0.0
# via ipykernel
ptyprocess==0.7.0
# via pexpect
pure-eval==0.2.3
# via stack-data
pygments==2.18.0
# via ipython
# via mkdocs-jupyter
# via mkdocs-material
# via nbconvert
pymdown-extensions==10.9
# via mkdocs-material
# via mkdocstrings
python-dateutil==2.9.0.post0
# via ghp-import
# via jupyter-client
pyyaml==6.0.2
# via jupytext
# via mkdocs
# via mkdocs-get-deps
# via pymdown-extensions
# via pyyaml-env-tag
pyyaml-env-tag==0.1
# via mkdocs
pyzmq==26.2.0
# via ipykernel
# via jupyter-client
referencing==0.35.1
# via jsonschema
# via jsonschema-specifications
regex==2024.7.24
# via mkdocs-material
requests==2.32.3
# via mkdocs-material
rpds-py==0.20.0
# via jsonschema
# via referencing
six==1.16.0
# via asttokens
# via bleach
# via python-dateutil
soupsieve==2.6
# via beautifulsoup4
stack-data==0.6.3
# via ipython
tinycss2==1.3.0
# via nbconvert
tornado==6.4.1
# via ipykernel
# via jupyter-client
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
typing-extensions==4.12.2
# via ipython
urllib3==2.2.2
# via requests
watchdog==5.0.0
# via mkdocs
wcwidth==0.2.13
# via prompt-toolkit
webencodings==0.5.1
# via bleach
# via tinycss2

View File

@ -0,0 +1,2 @@
def hello() -> str:
return "Hello from docs!"

View File

@ -40,7 +40,7 @@ dev-dependencies = [
]
[tool.rye.workspace]
members = [".", "core", "worker", "api", "core/examples/chatbot"]
members = [".", "core", "worker", "api", "docs", "core/examples/chatbot"]
[tool.hatch.metadata]
allow-direct-references = true

View File

@ -62,12 +62,15 @@ 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
bidict==0.23.1
# via python-socketio
@ -75,6 +78,8 @@ billiard==4.2.0
# via celery
black==24.8.0
# via flake8-black
bleach==6.1.0
# via nbconvert
boto3==1.35.2
# via cohere
botocore==1.35.2
@ -116,6 +121,8 @@ click==8.1.7
# via click-plugins
# via click-repl
# via litellm
# via mkdocs
# via mkdocstrings
# via nltk
# via uvicorn
click-didyoumean==0.3.1
@ -131,7 +138,10 @@ cohere==5.8.1
colorama==0.4.6
# via click
# via colorlog
# via griffe
# via ipython
# via mkdocs
# via mkdocs-material
# via pytest
# via tox
# via tqdm
@ -164,6 +174,7 @@ decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via langchain-anthropic
# via nbconvert
deprecated==1.2.14
# via llama-index-core
# via llama-index-legacy
@ -206,6 +217,8 @@ fastapi==0.110.3
# via sentry-sdk
fastavro==1.9.5
# via cohere
fastjsonschema==2.20.0
# via nbformat
filelock==3.15.4
# via huggingface-hub
# via torch
@ -237,6 +250,8 @@ fsspec==2024.2.0
# 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
@ -265,6 +280,8 @@ gotrue==2.7.0
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
@ -330,12 +347,17 @@ iniconfig==2.0.0
iopath==0.1.10
# via layoutparser
ipykernel==6.29.5
# via mkdocs-jupyter
ipython==8.26.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
@ -353,13 +375,22 @@ 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
@ -474,13 +505,24 @@ lxml==5.3.0
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
@ -495,10 +537,40 @@ matplotlib-inline==0.1.7
# via ipython
mccabe==0.7.0
# via flake8
mdit-py-plugins==0.4.1
# via jupytext
mdurl==0.1.2
# via markdown-it-py
megaparse==0.0.31
# via quivr-core
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
@ -514,6 +586,14 @@ mypy-extensions==1.0.0
# via mypy
# 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 chainlit
# via ipykernel
@ -616,10 +696,13 @@ packaging==23.2
# via faiss-cpu
# via huggingface-hub
# via ipykernel
# via jupytext
# via langchain-core
# via literalai
# via marshmallow
# via matplotlib
# via mkdocs
# via nbconvert
# via onnxruntime
# via pikepdf
# via pyproject-api
@ -629,18 +712,23 @@ packaging==23.2
# 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 black
# via mkdocs
pdf2docx==0.5.8
# via megaparse
pdf2image==1.17.0
@ -674,6 +762,8 @@ pillow-heif==0.18.0
platformdirs==4.2.2
# via black
# via jupyter-core
# via mkdocs-get-deps
# via mkdocstrings
# via tox
# via virtualenv
playwright==1.46.0
@ -760,12 +850,18 @@ pyflakes==3.2.0
# via flake8
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 chainlit
# via msal
pymdown-extensions==10.9
# via mkdocs-material
# via mkdocstrings
pymupdf==1.24.9
# via pdf2docx
pymupdfb==1.24.9
@ -801,6 +897,7 @@ pytest-xdist==3.6.1
python-dateutil==2.9.0.post0
# via botocore
# via celery
# via ghp-import
# via jupyter-client
# via matplotlib
# via pandas
@ -845,15 +942,22 @@ pywin32==306 ; (platform_python_implementation != 'PyPy' and sys_platform == 'wi
# 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 pre-commit
# via pymdown-extensions
# via pyyaml-env-tag
# via timm
# via transformers
pyyaml-env-tag==0.1
# via mkdocs
pyzmq==26.1.1
# via ipykernel
# via jupyter-client
@ -869,6 +973,7 @@ referencing==0.35.1
# via jsonschema
# via jsonschema-specifications
regex==2024.7.24
# via mkdocs-material
# via nltk
# via tiktoken
# via transformers
@ -883,6 +988,7 @@ requests==2.32.3
# via litellm
# via llama-index-core
# via llama-index-legacy
# via mkdocs-material
# via msal
# via opentelemetry-exporter-otlp-proto-http
# via posthog
@ -920,6 +1026,7 @@ simple-websocket==1.0.0
# via python-engineio
six==1.16.0
# via asttokens
# via bleach
# via dropbox
# via ecdsa
# via fire
@ -987,6 +1094,8 @@ tiktoken==0.7.0
timm==1.0.8
# via effdet
# via unstructured-inference
tinycss2==1.3.0
# via nbconvert
tokenizers==0.19.1
# via anthropic
# via cohere
@ -1034,6 +1143,9 @@ traitlets==5.14.3
# via jupyter-client
# via jupyter-core
# via matplotlib-inline
# via nbclient
# via nbconvert
# via nbformat
transformers==4.44.1
# via unstructured-inference
types-requests==2.31.0.6
@ -1107,10 +1219,15 @@ vine==5.1.0
virtualenv==20.26.3
# via pre-commit
# via tox
watchdog==5.0.2
# via mkdocs
watchfiles==0.20.0
# via chainlit
wcwidth==0.2.13
# via prompt-toolkit
webencodings==0.5.1
# via bleach
# via tinycss2
websockets==12.0
# via realtime
wrapt==1.16.0

View File

@ -36,7 +36,7 @@ amqp==5.2.0
# via kombu
annotated-types==0.7.0
# via pydantic
anthropic==0.34.1
anthropic==0.34.2
# via langchain-anthropic
antlr4-python3-runtime==4.9.3
# via omegaconf
@ -45,6 +45,10 @@ anyio==4.4.0
# 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
@ -53,15 +57,20 @@ 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
@ -79,8 +88,9 @@ certifi==2022.12.7
# via requests
# via sentry-sdk
# via unstructured-client
cffi==1.17.0 ; platform_python_implementation != 'PyPy'
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
@ -93,6 +103,8 @@ click==8.1.7
# via click-plugins
# via click-repl
# via litellm
# via mkdocs
# via mkdocstrings
# via nltk
# via uvicorn
click-didyoumean==0.3.1
@ -105,14 +117,20 @@ cobble==0.1.4
# via mammoth
cohere==5.8.1
# via langchain-cohere
colorama==0.4.6 ; sys_platform == 'win32' or platform_system == 'Windows'
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
@ -127,8 +145,13 @@ dataclasses-json==0.6.7
# 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 langchain-anthropic
# via nbconvert
deprecated==1.2.14
# via llama-index-core
# via llama-index-legacy
@ -153,6 +176,8 @@ 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
@ -160,6 +185,8 @@ fastapi==0.112.1
# via sentry-sdk
fastavro==1.9.5
# via cohere
fastjsonschema==2.20.0
# via nbformat
filelock==3.13.1
# via huggingface-hub
# via torch
@ -185,6 +212,8 @@ fsspec==2024.2.0
# 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
@ -211,6 +240,8 @@ gotrue==2.7.0
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
@ -266,8 +297,18 @@ 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
@ -285,8 +326,22 @@ 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
@ -326,9 +381,9 @@ langchain-text-splitters==0.2.2
# via langchain
langdetect==1.0.9
# via unstructured
langgraph==0.2.14
langgraph==0.2.19
# via quivr-core
langgraph-checkpoint==1.0.6
langgraph-checkpoint==1.0.9
# via langgraph
langsmith==0.1.100
# via langchain
@ -397,13 +452,24 @@ lxml==5.3.0
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
@ -413,10 +479,43 @@ marshmallow-enum==1.5.1
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
megaparse==0.0.31
# via quivr-core
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
@ -429,7 +528,16 @@ multidict==6.0.5
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
@ -495,23 +603,35 @@ 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
@ -523,6 +643,8 @@ pdfminer-six==20231228
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
@ -540,6 +662,10 @@ pillow==10.2.0
# 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
@ -554,6 +680,7 @@ 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
@ -566,9 +693,14 @@ protobuf==5.27.3
# via onnxruntime
# via proto-plus
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
@ -577,7 +709,7 @@ pyasn1-modules==0.4.0
# via google-auth
pycocotools==2.0.8
# via effdet
pycparser==2.22 ; platform_python_implementation != 'PyPy'
pycparser==2.22 ; platform_python_implementation != 'PyPy' or implementation_name == 'pypy'
# via cffi
pycryptodome==3.20.0
# via megaparse
@ -604,11 +736,18 @@ pydantic-settings==2.4.0
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
@ -629,6 +768,8 @@ pyreadline3==3.4.1 ; sys_platform == 'win32'
python-dateutil==2.9.0.post0
# via botocore
# via celery
# via ghp-import
# via jupyter-client
# via matplotlib
# via pandas
# via posthog
@ -660,18 +801,29 @@ python-pptx==1.0.2
pytz==2024.1
# via flower
# via pandas
pywin32==306 ; platform_system == 'Windows'
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
@ -684,6 +836,7 @@ referencing==0.35.1
# via jsonschema
# via jsonschema-specifications
regex==2024.7.24
# via mkdocs-material
# via nltk
# via tiktoken
# via transformers
@ -698,6 +851,7 @@ requests==2.32.3
# via litellm
# via llama-index-core
# via llama-index-legacy
# via mkdocs-material
# via msal
# via posthog
# via requests-oauthlib
@ -728,6 +882,8 @@ scipy==1.14.1
sentry-sdk==2.13.0
# via quivr-api
six==1.16.0
# via asttokens
# via bleach
# via dropbox
# via ecdsa
# via fire
@ -752,6 +908,8 @@ sqlalchemy==2.0.32
# 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
@ -790,6 +948,8 @@ tiktoken==0.7.0
timm==1.0.8
# via effdet
# via unstructured-inference
tinycss2==1.3.0
# via nbconvert
tokenizers==0.19.1
# via anthropic
# via cohere
@ -817,6 +977,8 @@ torchvision==0.19.0+cpu ; platform_machine == 'x86_64'
# via timm
tornado==6.4.1
# via flower
# via ipykernel
# via jupyter-client
tqdm==4.66.5
# via huggingface-hub
# via iopath
@ -825,6 +987,16 @@ tqdm==4.66.5
# 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.1
# via unstructured-inference
types-requests==2.31.0.6
@ -838,6 +1010,7 @@ typing-extensions==4.12.2
# via fastapi
# via huggingface-hub
# via iopath
# via ipython
# via langchain-core
# via llama-index-core
# via llama-index-legacy
@ -889,8 +1062,13 @@ 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