feat: LLM router with local (Ollama) and cloud (OpenAI) backends

- lyra.config.load() reads env into a frozen Config dataclass
- lyra.llm.complete(messages, backend) routes to Ollama /api/chat or
  OpenAI chat completions
- lyra.llm.embed(texts) calls OpenAI embeddings
- .env.example switched from Anthropic to OpenAI to match available key
This commit is contained in:
Claude
2026-05-16 06:10:48 +00:00
parent b2523c2561
commit 6a1255dfdb
5 changed files with 457 additions and 4 deletions
+4 -3
View File
@@ -2,9 +2,10 @@
LOCAL_BASE_URL=http://localhost:11434
LOCAL_MODEL=qwen2.5:7b-instruct
# Cloud backend (Anthropic Claude) — used for harder reasoning.
ANTHROPIC_API_KEY=
CLOUD_MODEL=claude-sonnet-4-6
# Cloud backend (OpenAI) — used for harder reasoning and embeddings.
OPENAI_API_KEY=
CLOUD_MODEL=gpt-4o-mini
EMBED_MODEL=text-embedding-3-small
# Where Lyra stores her memory.
LYRA_DB_PATH=data/lyra.db