This commit replaces the Axum/Rust backend with a Gin/Go implementation. The original Rust code has been archived in the 'rust' branch.
1.6 KiB
1.6 KiB
Migration TODO List
Completed Tasks
- Initial Go project setup
- Database schema & migrations
- Configuration loader (Viper)
- Auth Middleware
- Basic Provider implementations (OpenAI, Gemini, DeepSeek, Grok)
- Streaming Support (SSE & Gemini custom streaming)
- Move Rust files to
rust_backup - Enhanced
helpers.gofor Multimodal & Tool Calling (OpenAI compatible) - Enhanced
server.gofor robust request conversion - Dashboard Management APIs (Clients, Tokens, Users, Providers)
- Dashboard Analytics & Usage Summary
- WebSocket for real-time dashboard updates
Feature Parity Checklist (High Priority)
OpenAI Provider
- Tool Calling
- Multimodal (Images) support
- Reasoning Content (CoT) support for
o1,o3(need to ensure it's parsed in responses) - Support for
/v1/responsesAPI (required for some gpt-5/o1 models)
Gemini Provider
- Tool Calling (mapping to Gemini format)
- Multimodal (Images) support
- Reasoning/Thought support
- Handle Tool Response role in unified format
DeepSeek Provider
- Reasoning Content (CoT) support
- Parameter sanitization for
deepseek-reasoner - Tool Calling support
Grok Provider
- Tool Calling support
- Multimodal support
Infrastructure & Middleware
- Implement Request Logging to SQLite (asynchronous)
- Implement Rate Limiting (
golang.org/x/time/rate) - Implement Circuit Breaker (
github.com/sony/gobreaker) - Implement Model Cost Calculation logic
Verification
- Unit tests for feature-specific mapping (CoT, Tools, Images)
- Integration tests with live LLM APIs