mirror of
https://github.com/QuivrHQ/quivr.git
synced 2024-12-14 07:59:00 +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):
75 lines
1.7 KiB
TOML
75 lines
1.7 KiB
TOML
[project]
|
|
name = "quivr-core"
|
|
version = "0.0.16"
|
|
description = "Quivr core RAG package"
|
|
authors = [
|
|
{ name = "Stan Girard", email = "stan@quivr.app" }
|
|
]
|
|
dependencies = [
|
|
"pydantic>=2.8.2",
|
|
"langchain-core>=0.2.38",
|
|
"langchain>=0.2.14,<0.3.0",
|
|
"langgraph>=0.2.14",
|
|
"httpx>=0.27.0",
|
|
"rich>=13.7.1",
|
|
"tiktoken>=0.7.0",
|
|
"aiofiles>=23.1.0",
|
|
"langchain-community>=0.2.12",
|
|
"langchain-anthropic>=0.1.23",
|
|
"types-pyyaml>=6.0.12.20240808",
|
|
"transformers[sentencepiece]>=4.44.2",
|
|
]
|
|
readme = "README.md"
|
|
requires-python = ">= 3.11"
|
|
|
|
[project.optional-dependencies]
|
|
all = [
|
|
"unstructured[epub,docx,odt,doc,pptx,ppt,xlsx,md]>=0.15.5",
|
|
"faiss-cpu>=1.8.0.post1",
|
|
"docx2txt>=0.8",
|
|
"megaparse"
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.rye]
|
|
managed = true
|
|
dev-dependencies = [
|
|
"mypy>=1.11.1",
|
|
"pre-commit>=3.8.0",
|
|
"ipykernel>=6.29.5",
|
|
"ruff>=0.6.1",
|
|
"flake8>=7.1.1",
|
|
"flake8-black>=0.3.6",
|
|
"pytest-asyncio>=0.23.8",
|
|
"pytest>=8.3.2",
|
|
"pytest-xdist>=3.6.1",
|
|
"pytest-benchmark>=4.0.0",
|
|
]
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["quivr_core"]
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "--tb=short -ra -v"
|
|
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",
|
|
]
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "yaml"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.rye.sources]]
|
|
name = "megaparse"
|
|
path = "./MegaParse"
|