File size: 2,047 Bytes
20b15f3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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`