- Complete fix for Gemini video validation - consistent field naming (PR #37)
- Fixed inconsistent camelCase/snake_case in file path video processing
- File path inputs now use
inline_dataandmime_type(snake_case) - Ensures consistency with base64 input handling from v0.4.41
- Fully resolves Issue #35: Video input fails with Gemini
- Fixed Gemini video content validation error (PR #36)
- Video content now properly wrapped in
types.Partobjects withinline_data - Prevents "Extra inputs are not permitted" Pydantic validation errors
- Maintains full compatibility with base64 and file path video inputs
- Preserves existing MIME type detection logic
- Video content now properly wrapped in
- Add text-to-image, image edit (image+prompt), and multi-image fusion via unified CompletionClient
- Model availability checks and graceful skips for tests/examples
- Non-breaking response: text in choices[0].message.content; images exposed in response["images"]
- Examples and tests added; README updated
- Universal
system_instructionabstraction across all providers- Automatically converts to provider-specific format (system message for OpenAI/Ollama, parameter for Gemini)
- Seamless cross-provider compatibility
- No code changes needed - same parameter works everywhere
- CompletionClient now handles system_instruction conversion internally
- OpenAI provider simplified (no longer needs parameter filtering)
- Fixed OpenAI provider error with 'system_instruction' parameter (Issue #32)
- OpenAI provider now properly filters out Gemini-specific parameters
- Added parameter exclusion for 'system_instruction' and 'safety_settings'
- Ensures cross-provider compatibility when using unified CompletionClient
- BREAKING: Image generation now requires explicit model selection
- Renamed
GPT4oImageProvidertoOpenAIImageProviderfor clarity - Added support for GPT-Image-1 model (available now, not April 2025)
- Removed automatic model fallback - each request must specify the model
ImageModelenum for explicit model selection (DALLE_2, DALLE_3, GPT_IMAGE_1)- Model-specific parameter validation
- Token usage tracking for GPT-Image-1
- Support for GPT-Image-1 4K resolution (4096x4096)
- GPT-Image-1 response_format parameter handling
- Model-specific size validation
- Proper error messages for invalid models
- Image Generation Support: New GPT4oImageProvider for DALL-E 3 image generation
- Support for multiple image sizes (SQUARE, LANDSCAPE, PORTRAIT)
- Image quality options (STANDARD, HD)
- Style options (VIVID, NATURAL)
- Image editing capabilities with optional masks
- Azure OpenAI image generation support
- Localized image generation for app internationalization
- C2PA metadata extraction for AI-generated content authenticity
- Comprehensive test suite for image generation
- Updated package structure to include image providers
- Enhanced README with image generation examples
- Abstract provider pattern for future image generation services
- Integration with existing BaseCompletions architecture
- Full compatibility with uv package manager
- Version bump for PyPI release
- Add
/api/modelsendpoint for listing available models - Fix GoogleCompletions to query actual Google Gemini API for model list (60+ models!)
- Make list_models() async to properly query provider APIs
- Fix ModelManager fallback logic when no providers are registered
- Improve CompletionClient to handle both sync and async list_models methods
- Update .env.example with comprehensive configuration options
- Add support for filtering models by provider (
/api/models?provider=gemini)
- Restructure project: Move ai_proxy_core source to src/ directory
- Rename api_demo to api_layer for clarity
- Update documentation to use uv run instead of python
- Remove backup file gemini_live_backup.py.old
- Organize test files into tests/ directory
- Create setup/ directory for build artifacts
- Maintain package name as ai_proxy_core for PyPI compatibility
- Remove legacy completions.py file (replaced by completion_client.py)
- Remove deprecated CompletionsHandler export
- Rename api folder to api_layer to clarify it's the API layer
- Clean up redundant code while maintaining full functionality
- Verified Gemini works with modern CompletionClient
- Clean up WebSocket file redundancies
- Remove duplicate gemini_live_fixed.py file
- Archive backup WebSocket implementation
- Organize debug and test files into debug/ folder
- Maintain full WebSocket functionality while reducing code duplication
- Tested and verified all endpoints working correctly
- Fix GoogleCompletions message format handling for google-genai library
- Convert complex message formats to simple string prompts for compatibility
- Fix message parsing to handle both string and list content types
- Improve error handling for API responses
- Ensure proper text extraction from structured message content
- Fix Gemini Live WebSocket implementation
- Implement proper async context manager handling for sessions
- Add bidirectional communication with separate async tasks
- Fix message format compatibility between client and server
- Add HTML demos for Gemini Live WebSocket (examples/gemini_live_demo.html)
- Add debug tools for testing WebSocket connections
- Reorganize test files into proper directories
- Note: Audio input pending (requires PCM format conversion from WebM)
- Add security scaffolding for future implementation
- Add optional
use_secure_storageparameter to providers (GoogleCompletions, OpenAICompletions) - Add security dependencies to setup.py extras (
[security],[vault],[aws]) - Add TODO placeholders for authentication and secure key storage implementation
- Update CompletionClient to support secure storage configuration
- Maintain full backward compatibility - no breaking changes
- Related to issues #19 and #20
- Fix telemetry NoOpTelemetry missing request_counter attribute
- Resolve GitHub issues #15, #16, #17
- Add LLM prompt reference for easy integration help
- Add AI Proxy Core expert agent for Claude
- Add roadmap link to README
- Introduce CompletionClient unified interface
- Add model management system with ModelManager
- Implement model discovery and automatic provider detection
- Major refactor to provider architecture
- Add support for multiple LLM providers simultaneously
- API migration to provider architecture completed
- BREAKING: Refactor to provider-specific classes (GoogleCompletions, OpenAICompletions, OllamaCompletions)
- Add multi-provider support with clean separation
- Add optional OpenTelemetry support for basic observability
- Track request counts by model/status across all providers
- Track session duration for WebSocket connections
- Add OpenAI-compatible endpoint support (Groq, Anyscale, etc.)
- Deprecate CompletionsHandler in favor of provider-specific classes
- Add optional dependencies for different providers
- Add built-in tool support (code_execution, google_search) for Gemini Live
- Add custom_tools parameter for user-defined function declarations
- Update README with comprehensive tool examples
- Add release.sh script for automated releases
- (Previous release - changes not documented)
- Add system instruction support for Gemini Live
- Improve WebSocket response handling
- Add TEXT modality to default config
- Refactor to Python package structure
- Add ai_proxy_core module
- Initial release
- Basic Gemini completions handler
- Gemini Live WebSocket support