# Database DATABASE_URL=postgresql://athena:athena_password@localhost:5432/athena_db # Redis / Celery REDIS_URL=redis://localhost:6379/0 # Vector DB QDRANT_URL=http://localhost:6333 # Models. Every AI feature (summaries, Q&A, literature reviews, embeddings, search, the evolution lane) # talks to an OpenAI-compatible server. The default is the local llama-server router, which run_native.sh # starts from config/llama-router.ini; nothing here needs to be set for it. The Settings page overrides these. LLAMA_SERVER_BIN=llama-server LLM_BASE_URL= LLM_CHAT_MODEL= LLM_API_KEY= EMBED_BASE_URL= EMBED_MODEL= EMBED_API_KEY= # To use OpenAI instead (changing the embedding model means re-embedding: scripts/backfill_embeddings.py --reset): # LLM_BASE_URL=https://api.openai.com/v1 # LLM_API_KEY=sk-... # LLM_CHAT_MODEL=gpt-4o-mini # EMBED_MODEL=text-embedding-3-large # EMBED_DIMENSIONS=1024 # LLM_PRICE_IN_PER_M=0.15 # LLM_PRICE_OUT_PER_M=0.60 # Chats (Projects and Chats): which models think and so get an effort picker (comma-separated), the preset # messages with images go to, and the context of a model whose router preset does not say. CHAT_REASONING_MODELS= CHAT_VISION_MODEL= CHAT_CONTEXT_TOKENS= # Where uploaded files are kept (default ~/.athena/uploads) ATHENA_UPLOADS_DIR= # API Keys (Placeholders) SEMANTIC_SCHOLAR_API_KEY=your_key_here CROSSREF_EMAIL=your_email@example.com # Research evolution (OpenAlex corpus). Without a key the free allowance is $0.10/day; # a free key from openalex.org/settings/api raises it to $1/day. OPENALEX_API_KEY= # Optional contact address OpenAlex asks API users to send OPENALEX_MAILTO= # Where OpenAlex responses are cached so rebuilding a topic costs nothing (default ~/.athena/openalex_cache) OPENALEX_CACHE_DIR= # Semantic Scholar responses, cached the same way (default ~/.athena/s2_cache). It uses # SEMANTIC_SCHOLAR_API_KEY above; a value saved in the Settings page takes precedence over this file. S2_CACHE_DIR= # Research evolution, Phase 2: full text and the GPU lane # GROBID parses Tier 2 PDFs; it is a docker-compose service (the worker container is pointed at it there) GROBID_URL=http://localhost:8070 # PDFs and TEI files (default ~/.athena/evolution) EVOLUTION_DATA_DIR= # The GPU lane uses the model settings above. To give it its own server instead (without the trailing /v1): # EVOLUTION_CHAT_URL=, EVOLUTION_EMBED_URL=, EVOLUTION_CHAT_MODEL_NAME=, EVOLUTION_EMBED_MODEL_NAME=, EVOLUTION_API_KEY= # Accounts: the first visit creates the admin account; the admin adds everyone else in Settings > Users. # Daily allowances per user (admins have none); defaults shown. # LIMIT_QA_PER_DAY=100 # LIMIT_LIT_REVIEW_PER_DAY=10 # LIMIT_MAP_PROPOSAL_PER_DAY=10 # LIMIT_MAP_BUILD_PER_DAY=3 # LIMIT_IDEA_CHECK_PER_DAY=20 # LIMIT_MAP_QA_PER_DAY=30 # LIMIT_MAP_QA_TOKENS_PER_DAY=150000 # Monthly limits (Settings > Usage changes these too); 0 means none. Admins are never refused. # MONTHLY_BUDGET_USD=0 # the whole app's model spend in a calendar month (UTC); summaries pause past it # USER_MONTHLY_TOKENS=0 # each user's tokens a month; with a local model, the limit that matters # EMBED_PRICE_PER_M=0 # USD per million embedding tokens (LLM_PRICE_IN/OUT_PER_M price chat) # Shared map links: switched on by default (Settings > Usage has the switch) # SHARING_ENABLED=true # The web app calls the API on its own origin (nginx in Docker, Vite's proxy in development), which needs no CORS. # Only when the frontend is built with VITE_API_URL pointing at another origin, list the app's origin here # (comma-separated); sessions and shared links only work from these. # CORS_ORIGINS=http://localhost:5173,http://localhost:3000 # Citation momentum: feed papers up to this many days old get their citation counts refreshed daily # MOMENTUM_DAYS=365 # For you: how many of the best-scored items the personal order is chosen from (plus the 200 nearest to your likes) # FORYOU_POOL=1000 # API docs (/docs, /redoc, /openapi.json): off unless DOCS_ENABLED=true. # With DOCS_PASSWORD set they ask for Basic Auth (DOCS_USERNAME / DOCS_PASSWORD); without it they are open to anyone, # and the API logs a warning. Switch them on only with a password on a public server. DOCS_ENABLED=false DOCS_USERNAME=athena DOCS_PASSWORD=