Separate DeepSeek from ChatGPTBot into its own module (models/deepseek/) with dedicated deepseek_api_key and deepseek_api_base config fields, avoiding config conflicts when switching between providers. Backward compatible with old users who configured DeepSeek via open_ai_api_key/open_ai_api_base through automatic fallback.
Made-with: Cursor
- Rename ZHIPU_AI bot type from glm-4 to zhipu to avoid confusion with model names
- Add bot_type persistence in web config to fix provider dropdown resetting on refresh
- Change OpenAI provider key to chatGPT to match bot_factory routing
- Add DEEPSEEK constant and route it to ChatGPTBot (OpenAI-compatible API)
- Keep backward compatibility for legacy bot_type glm-4 in bot_factory
- Fix re.sub bad escape error on Windows paths by using lambda replacement
- Remove unused pydantic import in minimax_bot.py
Made-with: Cursor