File size: 4,057 Bytes
8c1b9fe
 
 
 
 
656439d
 
 
 
 
 
 
 
8c1b9fe
 
 
 
 
 
656439d
 
 
 
 
 
 
 
 
 
8c1b9fe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# Auralynq configuration file
# Copy to config.yaml and edit. Precedence: env vars > this file > built-in defaults.
# Set AURALYNQ_CONFIG=/path/to/config.yaml to point at a non-default location.

# ── LLM ─────────────────────────────────────────────────────────────────────
# Local serving backends, fastest first:
#   vllm   β†’ local vLLM server; GPU-only, batched, one model per server process
#   ollama β†’ local Ollama daemon; easiest, hot-swaps models, CPU or GPU
#   airllm β†’ streams model layers from disk to run oversized models on a small
#            GPU. MINUTES per answer β€” never auto-selected, opt in explicitly.
#   slm    β†’ llama-cpp-python GGUF in-process
# provider: auto   β†’ vllm, then ollama, then slm, then a cloud key, then extractive
# provider: openai | anthropic | cohere | huggingface β†’ forces that (requires key)
llm:
  provider: auto
  model: llama3          # Ollama model tag (ignored when provider != ollama)
  base_url: http://localhost:11434
  temperature: 0.1
  max_tokens: 1024
  # vLLM β€” port 8001, not vLLM's own default of 8000, which collides with serve.port.
  # Leave vllm_model empty to adopt whatever the server reports on /v1/models.
  vllm_base_url: http://localhost:8001/v1
  vllm_model: ""
  vllm_api_key: ""       # only when the server ran with --api-key
  # AirLLM β€” off by default; a single answer takes minutes and saturates the disk.
  airllm_enabled: false
  airllm_model: Qwen/Qwen2.5-7B-Instruct   # HF repo id, not an Ollama tag
  airllm_compression: ""                   # "" | 4bit | 8bit (needs bitsandbytes)
  airllm_max_new_tokens: 256

# ── Embeddings ───────────────────────────────────────────────────────────────
# provider: auto   β†’ tries ollama first, then bge (if installed), then hash
# provider: ollama β†’ nomic-embed-text via local Ollama (recommended, zero-cost)
# provider: bge    β†’ BAAI/bge-m3 (requires sentence-transformers + torch)
# provider: openai β†’ text-embedding-3-small (requires OPENAI_API_KEY)
embedding:
  provider: auto
  ollama_model: nomic-embed-text    # used when provider=ollama
  model: BAAI/bge-m3                # used when provider=bge
  dim: 768

# ── Vector store ─────────────────────────────────────────────────────────────
# backend: auto   β†’ chroma (if installed) else memory
# backend: chroma β†’ local on-disk ChromaDB, no server needed (recommended)
# backend: qdrant β†’ Qdrant server (best for large corpora, requires running server)
# backend: memory β†’ in-process numpy (fast but no persistence across runs)
vector:
  backend: auto
  chroma_persist_dir: ./data/vectorstore
  chroma_collection: auralynq
  url: http://localhost:6333    # Qdrant URL (only used when backend=qdrant)

# ── Retrieval ────────────────────────────────────────────────────────────────
retrieval:
  top_k: 20
  final_k: 6

# ── PDF source directory ─────────────────────────────────────────────────────
# Default directory scanned by `auralynq ingest` when no path argument is given.
pdf_source_dir: ./data/pdfs

# ── Optional cloud provider keys ─────────────────────────────────────────────
# Prefer setting API keys via env vars (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.)
# rather than in this file to avoid accidentally committing secrets.
#
# openai_api_key: ""
# anthropic_api_key: ""
# cohere_api_key: ""