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
30 lines
646 B
TOML
30 lines
646 B
TOML
[project]
|
|
name = "meister-eder"
|
|
version = "0.1.0"
|
|
description = "AI-powered conversational registration agent for Spielgruppe Pumuckl"
|
|
requires-python = ">=3.13"
|
|
dependencies = [
|
|
# LLM access — supports any provider (Anthropic, OpenAI, Gemini, …)
|
|
"litellm>=1.0.0",
|
|
# Configuration
|
|
"python-dotenv>=1.0.0",
|
|
# Registration schema validation
|
|
"jsonschema>=4.23.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
meister-eder = "main:main"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src"]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"pytest>=8.0.0",
|
|
"pytest-mock>=3.14.0",
|
|
]
|