- 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>
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.
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>
Implement AskSageAdapter using the official asksageclient SDK to support
AskSage as an LLM provider option. This enables users to leverage
AskSage's API with configurable email, API key, and model settings.
- Add AskSageAdapter class with async support via thread pool
- Update Settings to include asksage_email, asksage_api_key, asksage_model
- Extend llm_mode literal to include "asksage" option
- Update dependency injection to instantiate AskSageAdapter when configured
- Remove completed OPENAI_INTEGRATION_PLAN.md
- Update requirements.txt with full dependency list including asksageclient
- 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
- 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>