| # NOVA = research pipeline (agent) + single-PDF Q&A (chatbot) + Gradio UI. |
| # One environment runs all three. Versions below match what both sub-projects |
| # were already pinned to, so nothing gets upgraded out from under them. |
|
|
| # --- ZeroGPU --- |
| # `spaces` provides the @spaces.GPU decorator. ZeroGPU refuses to start a Space |
| # that has none ("No @spaces.GPU function detected during startup"), and it only |
| # attaches a GPU for the duration of such a call. See ui/gpu.py for the one |
| # function that uses it. Off ZeroGPU the decorator is a transparent no-op, so |
| # this package is harmless locally and on CPU hardware. |
| spaces |
|
|
| # --- torch --- |
| # 2.11.0 exactly: ZeroGPU accepts only 2.11.0 / 2.10.0 / 2.9.1 / 2.8.0 and fails |
| # the build at config-check otherwise. 2.11.0 is the newest it allows. |
| # |
| # Plain (CUDA) build on purpose — ZeroGPU rejects the `+cpu` local version, since |
| # it needs a CUDA-capable torch to hand the GPU over. That means ~2.5 GB of |
| # nvidia-* wheels; unavoidable on this hardware. |
| # |
| # For CPU-only hardware (Spaces "CPU basic", or a local box), these lines are |
| # smaller and faster and still work — NOVA falls back to CPU automatically: |
| # --extra-index-url https://download.pytorch.org/whl/cpu |
| # torch==2.11.0+cpu ; sys_platform == "linux" |
| # torch ; sys_platform != "linux" |
| torch==2.11.0 |
|
|
| # --- UI --- |
| # 6.0 is a hard floor, not caution: launch() takes theme/css/js (Blocks did in 5), |
| # and Chatbot speaks {"role","content"} natively (5 needed type="messages"). |
| gradio>=6.0 |
|
|
| # --- research agent (intent + search/cluster graphs) --- |
| langgraph |
| langchain-core |
| langchain-groq |
| langchain-tavily |
| sentence-transformers # SPECTER reranker in the search graph |
| python-dotenv |
| pydantic |
| requests |
| numpy |
|
|
| # --- chatbot (single-PDF Q&A) --- |
| langchain |
| langchain-community # HuggingFaceCrossEncoder, HuggingFaceBgeEmbeddings |
| langchain-classic # CrossEncoderReranker + ContextualCompressionRetriever |
| langchain-text-splitters |
| langchain-chroma |
| chromadb |
| pymupdf # `import fitz` |
|
|