Commit Graph

6 Commits

Author SHA1 Message Date
Danny 2f172ddaf9 feat: auto-build FAISS index on startup if missing
Add lifespan handler that checks for FAISS index at startup
and automatically builds it if not found. This ensures the
service works on fresh deployments without manual indexing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:47:03 -06:00
Danny b0211b944d feat: replace Redis with in-memory conversation storage
- Remove Redis dependency and redis_client.py
- Implement ConversationMemory with module-level dictionary
- Add TTL support via timestamp checking
- Remove redis_connected from health endpoint
- Add embeddings, intent classification, and RAG prompt modules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:34:47 -06:00
Danny c9336d1d84 feat: add GCP service-to-service authentication
Implement identity token verification for Cloud Run deployments:
- Add auth module with GCP identity token verification
- Add configurable auth settings (AUTH_ENABLED, AUTH_AUDIENCE)
- Add service account allowlist for access control
- Protect /chat and /chat/stream endpoints with auth dependency
- Add google-auth dependency for token verification

Auth can be disabled for local development via AUTH_ENABLED=false.
2026-01-19 11:06:59 -06:00
Danny 6c1cf0655a feat: add CORS middleware and SSE streaming endpoint
Add CORS support for frontend development with configurable origins via
CORS_ORIGINS environment variable. Add /chat/stream endpoint for
Server-Sent Events streaming with true streaming support for OpenAI
adapter and fallback single-chunk behavior for other adapters.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 12:43:21 -06:00
Danny 3324b6ac12 feat: add OpenAI integration with dependency injection support
- Add OpenAIAdapter class using official OpenAI SDK with async support
- Create custom exception hierarchy for LLM errors (authentication,
  rate limit, connection, configuration, response errors)
- Refactor adapter factory to use FastAPI Depends() for dependency injection
- Update configuration to support 'openai' mode with API key and model settings
- Add proper HTTP error mapping for all LLM exception types
- Update Dockerfile with default OPENAI_MODEL environment variable
- Update .env.example with OpenAI configuration options
2026-01-13 15:17:44 -06:00
Danny Garcia 84de9a02c8 feat: add FastAPI skeleton for LLM chat service
- POST /chat endpoint with message and conversation_id support
- GET /health endpoint for Cloud Run health checks
- Local and Remote LLM adapters with async httpx
- Pydantic schemas and environment-based config
- Dockerfile configured for Cloud Run deployment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 19:32:57 -06:00