-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path.env.example
More file actions
104 lines (88 loc) · 4.17 KB
/
Copy path.env.example
File metadata and controls
104 lines (88 loc) · 4.17 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Copy to backend/.env and fill in. Restart backend or rely on --reload.
# 1. Provider credentials
#
# PaperHub goes through LiteLLM, so any provider it supports works — set the
# env var the provider expects and prefix the model name with the provider
# slug. See https://docs.litellm.ai/docs/providers for the full list of
# provider env-var names and their model-name prefixes.
#
# Examples:
# gemini/gemini-3.1-flash-lite → GEMINI_API_KEY=
# openai/gpt-4o-mini → OPENAI_API_KEY=
# anthropic/claude-opus-4-7 → ANTHROPIC_API_KEY=
# azure/<deployment> → AZURE_API_KEY= + AZURE_API_BASE=
# vertex_ai/gemini-2.5-pro → GOOGLE_APPLICATION_CREDENTIALS=…
# ollama/<local-model> → (no key; OLLAMA_API_BASE if non-default)
GEMINI_API_KEY=
# OPENAI_API_KEY=
# ANTHROPIC_API_KEY=
# Add whatever other provider keys your per-slot model strings need.
# 2. Workspace + storage
# Workspace root (SQLite, papers cache).
# PAPERHUB_WORKSPACE=./workspace
# Max PDF upload size (MiB).
# PAPERHUB_MAX_UPLOAD_MB=30
# 3. LLM model selection
#
# Two tier defaults — every per-slot model below defaults to one of these.
# Set just these two to swap providers across the whole stack; set a per-slot
# var to pin one slot independently (per-slot still wins).
#
# Small tier — classifiers / fast tool calls (router, chitchat, paper_qa
# subagent, sql planner, report resolver, memory conflict).
# PAPERHUB_MODEL_SMALL=gemini/gemini-3.1-flash-lite
# Flagship tier — user-facing prose (paper_qa synthesis, sql answer, slide
# plan/section/notes).
# PAPERHUB_MODEL_FLAGSHIP=gemini/gemini-2.5-pro
#
# Per-slot overrides. Each line shows ``[tier] purpose``; uncomment + set
# only when you need that one slot to differ from its tier default.
#
# [small] Router intent classifier — picks {chitchat, paper_search,
# paper_qa, library_stats, slides, …} for each user turn.
# PAPERHUB_ROUTER_MODEL=
# [small] Chitchat agent — small-talk replies when the router picks chitchat.
# PAPERHUB_CHITCHAT_MODEL=
# [flagship] paper_qa finalizer — cross-paper synthesis, streamed to the user.
# PAPERHUB_PAPER_QA_MODEL=
# [small] paper_qa per-paper subagent — section navigation + chunk picking.
# PAPERHUB_PAPER_QA_SUBAGENT_MODEL=
# [small] SQL Agent NL2SQL planner + self-repair loop on library_stats.
# PAPERHUB_SQL_AGENT_MODEL=
# [flagship] SQL Agent natural-language answer phrasing for library_stats.
# PAPERHUB_SQL_ANSWER_MODEL=
# [small] Memory.add conflict detector — checks if a new memory contradicts
# an existing same-scope active row before supersede.
# PAPERHUB_MEMORY_CONFLICT_MODEL=
#
# Slide pipeline (Report Agent — F4.5 monolithic slide agent):
# [small] Resolve enabled papers + deck-command classifier.
# PAPERHUB_REPORT_RESOLVE_MODEL=
# [flagship] Speaker-notes author (deck-wide; sees every frame + paper context).
# PAPERHUB_REPORT_NOTES_MODEL=
# [flagship] gather_context per-paper subagent + the monolithic slide_agent.
# PAPERHUB_REPORT_PLAN_MODEL=
# [flagship] Single-frame edits (edit_frame / edit_title_block / edit_preamble).
# PAPERHUB_REPORT_SECTION_MODEL=
# 4. Agent tunables
# Max read_section() calls per per-paper subagent turn.
# PAPERHUB_PAPER_QA_MAX_SECTION_READS=8
# 5. Memory / recall
# Inject recalled memories into paper_qa / library_stats answers (1=on, 0=off).
# PAPERHUB_MEMORY_RECALL=1
# Upgrade path: use semantic (embedding-based) recall instead of FTS. NOT
# implemented yet — leave at 0 until a future plan wires the embedder path.
# PAPERHUB_MEMORY_SEMANTIC=0
# 6. External services
# Semantic Scholar API key (optional; unauth tier is rate-limited).
# PAPERHUB_SEMANTIC_SCHOLAR_API_KEY=
# 7. Logging
# Python log level (DEBUG | INFO | WARNING | ERROR).
# PAPERHUB_LOG_LEVEL=INFO
# 8. External lookup services
# Unpaywall fallback (optional). When set, papers that Semantic
# Scholar can find but doesn't link to a free PDF (e.g. Nature
# papers — the AlphaGenome class) are looked up by DOI on
# Unpaywall. Set this to your contact email — Unpaywall uses it
# for abuse-control logging only.
PAPERHUB_UNPAYWALL_EMAIL=