mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-12-15 01:21:48 +03:00
ef90e8e672
# 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):
107 lines
2.6 KiB
TOML
107 lines
2.6 KiB
TOML
[project]
|
|
name = "quivr-monorepo"
|
|
version = "0.0.1"
|
|
description = "Quivr Monorepo"
|
|
authors = [
|
|
{ name = "Stan Girard", email = "stan@quivr.app" },
|
|
{ name = "Amine Diro", email = "amine@quivr.app" },
|
|
{ name = "Chloé Daems", email = "chloe@quivr.app" },
|
|
{ name = "Jacopo Chevallard", email = "jacopo@quivr.app" },
|
|
]
|
|
dependencies = [
|
|
"packaging>=22.0",
|
|
"langchain-anthropic>=0.1.23",
|
|
]
|
|
readme = "README.md"
|
|
requires-python = ">= 3.11"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.rye]
|
|
managed = true
|
|
virtual = false
|
|
universal = true
|
|
dev-dependencies = [
|
|
"mypy>=1.11.1",
|
|
"pre-commit>=3.8.0",
|
|
"ipykernel>=6.29.5",
|
|
"ruff>=0.6.0",
|
|
"flake8>=7.1.1",
|
|
"flake8-black>=0.3.6",
|
|
"pytest-dotenv>=0.5.2",
|
|
"pytest-mock>=3.14.0",
|
|
"pytest-asyncio>=0.24.0",
|
|
"pytest>=8.3.2",
|
|
"pytest-xdist>=3.6.1",
|
|
"pytest-cov>=5.0.0",
|
|
"tox>=4.0.0",
|
|
"chainlit>=1.1.306",
|
|
]
|
|
|
|
[tool.rye.workspace]
|
|
members = [".", "core", "worker", "api", "docs", "core/examples/chatbot", "core/MegaParse"]
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/backend"]
|
|
|
|
[[tool.rye.sources]]
|
|
name = "pytorch"
|
|
url = "https://download.pytorch.org/whl/cpu"
|
|
|
|
[tool.mypy]
|
|
disallow_untyped_defs = true
|
|
# Remove venv skip when integrated with pre-commit
|
|
exclude = ["_static", "build", "examples", "notebooks", "venv", ".venv"]
|
|
ignore_missing_imports = true
|
|
python_version = "3.11"
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
exclude = [".git", "__pycache__", ".mypy_cache", ".pytest_cache"]
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", # pycodestyle errors
|
|
"W", # pycodestyle warnings
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
"C", # flake8-comprehensions
|
|
"B", # flake8-bugbear
|
|
]
|
|
ignore = [
|
|
"B904",
|
|
"B006",
|
|
"E501", # line too long, handled by black
|
|
"B008", # do not perform function calls in argument defaults
|
|
"C901", # too complex
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
order-by-type = true
|
|
relative-imports-order = "closest-to-furthest"
|
|
extra-standard-library = ["typing"]
|
|
section-order = [
|
|
"future",
|
|
"standard-library",
|
|
"third-party",
|
|
"first-party",
|
|
"local-folder",
|
|
]
|
|
known-first-party = []
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--tb=short -ra -v"
|
|
asyncio_default_fixture_loop_scope = "session"
|
|
filterwarnings = ["ignore::DeprecationWarning"]
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"base: these tests require quivr-core with extra `base` to be installed",
|
|
"tika: these tests require a tika server to be running",
|
|
"unstructured: these tests require `unstructured` dependency",
|
|
]
|