9a4b173b95950452041540d8e6643eefa8a84847
Why: - No setting in this app ever actually read from .env: only the outer Settings declared env_file=".env", and pydantic-settings does not cascade that to nested BaseSettings classes. Every previously-correct local value was coincidence (.env.example defaults matching class defaults). Found by testing EMBEDDING_OPENAI_API_KEY against the live OpenAI API. Changes: - Every nested settings class now declares env_file=".env" itself. - Settings.__init__/EmbeddingSettings.__init__ explicitly thread an _env_file override to every nested constructor, so overriding it (as tests do) reaches the whole tree, not just the outer class. - env_ignore_empty=True everywhere, since the fix surfaced a second bug: a blank env var (e.g. EMBEDDING_OPENAI_DIMENSIONS=) failed to parse as int | None instead of falling back to the field default. Impact: - Real deployments setting env vars directly (Docker Compose) are unaffected. Local .env-file development now actually works. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Talie chatbot service
Architecture decisions live in docs/adr. The first implementation
milestone is documented in the ingestion vertical-slice plan.
Local Langfuse
This repo includes a root-level development Compose file for Langfuse:
Start Langfuse locally:
cp .env.langfuse.example .env.langfuse
# edit .env.langfuse and replace CHANGE_ME values
docker compose --env-file .env.langfuse -f docker-compose.langfuse.yml up -d
Open:
http://localhost:3000
If the chatbot app runs on your host machine, configure it with:
LANGFUSE_HOST=http://localhost:3000
If the chatbot app later runs inside the same Compose project/network as Langfuse, configure it with:
LANGFUSE_HOST=http://langfuse-web:3000
A future app stack can be launched together with Langfuse using multiple Compose files:
docker compose \
-f docker-compose.yml \
-f docker-compose.langfuse.yml \
--env-file .env \
--env-file .env.langfuse \
up -d
Description
Languages
Python
99.3%
Shell
0.6%
Mako
0.1%