Files
Meister-Eder/.env.example
T
Claude 431847a8b7 Replace custom provider abstraction with litellm
Drops the src/providers/ package (base class, AnthropicProvider,
OpenAIProvider, factory) in favour of a single src/llm.py that calls
litellm.completion() directly. litellm handles provider routing,
authentication, and SDK differences for 100+ providers without any
code we need to maintain.

Changes:
- Delete src/providers/ entirely
- Add src/llm.py — one complete() function wrapping litellm
- src/agent/core.py: EmailAgent takes model: str instead of LLMProvider
- src/config.py: ai_provider + api key fields → single ai_model string
  in litellm format (e.g. "anthropic/claude-opus-4-6")
- main.py: remove provider factory wiring; pass config.ai_model to agent
- .env.example: simplify AI section, show litellm model string examples
- pyproject.toml: replace anthropic + openai deps with litellm>=1.0.0
- uv.lock: regenerated

https://claude.ai/code/session_01HaUFs7SaLD5SoiuGCY27Tw
2026-02-21 07:35:37 +00:00

60 lines
2.3 KiB
Bash

# ---------------------------------------------------------------
# Meister-Eder Email Agent — Configuration Template
# ---------------------------------------------------------------
# Copy this file to .env and fill in your values.
# The .env file must NOT be committed to version control.
# ---------------------------------------------------------------
# ---------------------------------------------------------------
# AI Model (via litellm — supports any provider)
# ---------------------------------------------------------------
# Use litellm model strings: "<provider>/<model-name>"
# Examples:
# anthropic/claude-opus-4-6 (default)
# openai/gpt-4o
# gemini/gemini-2.0-flash
AI_MODEL=anthropic/claude-opus-4-6
# ---------------------------------------------------------------
# API Keys — set the one matching your chosen model's provider
# ---------------------------------------------------------------
ANTHROPIC_API_KEY=sk-ant-...
# OPENAI_API_KEY=sk-...
# GEMINI_API_KEY=...
# ---------------------------------------------------------------
# Email — IMAP (receiving parent messages)
# ---------------------------------------------------------------
IMAP_HOST=imap.example.com
IMAP_PORT=993
IMAP_USERNAME=anmeldung@example.com
IMAP_PASSWORD=your-imap-password
IMAP_USE_SSL=true
# ---------------------------------------------------------------
# Email — SMTP (sending replies and notifications)
# ---------------------------------------------------------------
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USE_TLS=true
# ---------------------------------------------------------------
# Registration email address (displayed as sender to parents)
# ---------------------------------------------------------------
REGISTRATION_EMAIL=anmeldung@example.com
# ---------------------------------------------------------------
# Storage
# ---------------------------------------------------------------
# Directory for conversation state and completed registrations.
DATA_DIR=data
# Path to the knowledge-base markdown files (admin-editable).
KNOWLEDGE_BASE_DIR=openspec/changes/define-project-scope/content/knowledge-base
# ---------------------------------------------------------------
# Polling
# ---------------------------------------------------------------
# How often (in seconds) to check the inbox for new messages.
POLL_INTERVAL=60