-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
38 lines (34 loc) · 2.04 KB
/
Copy path.env.example
File metadata and controls
38 lines (34 loc) · 2.04 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
# Copy this file to .env and fill in the keys for whichever API-provider
# models you plan to use (see src/models/configs/api.py). .env is gitignored
# — never commit real keys.
GROQ_API_KEY=
ANTHROPIC_API_KEY=
# Maya Research TTS, used for voice mode's text-to-speech while online (see
# src/voice/maya_tts.py). Offline falls back to the local Piper TTS engine.
MAYA_API_KEY=
# Optional: force Elastimem's resource tier instead of letting its governor
# classify the machine from RAM. Values: lite | standard | full. Leave unset
# (the default) to use real auto-detection.
#
# What the tier decides (as of elastimem 0.2.0 — LITE does considerably more
# than it used to): LITE's floor is "spend no new resources", not "least
# capability". It refuses exactly three things — loading the embedder,
# indexing newly recorded chunks, and any per-turn LLM cost — while every
# purely-local SQLite path still runs: keyword (FTS5) and vector recall over
# already-indexed chunks, dedupe/decay consolidation, a real extractive
# rolling summary, 1-hop graph traversal, and top-3 episodic injection.
# Tuffy also sets lite_llm_extraction=True (see src/memory.py), so LITE still
# extracts facts — deferred to session end rather than dropped, which means
# memory keeps learning at every tier. STANDARD adds embedder loading, chunk
# indexing, batched per-2-turn extraction and LLM summaries; FULL extracts
# per turn, merges via LLM during consolidation, and traverses two graph hops.
#
# The governor needs 8 GiB total plus 2.5 GiB available for STANDARD, and
# 16 GiB total for FULL, where "available" is free + inactive memory. On macOS
# that figure stays low by design (the compressor and file cache hold pages
# that are reclaimable but not counted), so an 8 GiB Mac frequently classifies
# LITE even when the machine is healthy. Forcing a tier is a blunt fix — it
# also disables the downgrade that protects you when memory really does run
# out. Prefer tuning the thresholds (tier_thresholds_gib in elastimem.open())
# if you want a different line drawn.
ELASTIMEM_TIER=