feat: add DeepSeek and Minimax (m2.7) translation providers
New providers: - DeepSeek: direct API with deepseek-chat model, very cost-effective - Minimax: MiniMax-M1 model via OpenAI-compatible API, supports m2.7 Changes: - Full provider implementations with retry, health check, batch support - Provider config with env vars (DEEPSEEK_*, MINIMAX_*) - Auto-registration in provider registry - Updated fallback chain to include new providers - Updated setup-env.sh wizard with options 6 (deepseek) and 7 (minimax) - Updated manage-keys.sh with new menu entries and provider switching - Updated docker-compose.yml with new env vars Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -157,12 +157,14 @@ echo ""
|
||||
echo -e "${BOLD}--- Services de traduction ---${NC}"
|
||||
echo ""
|
||||
echo "Quel service de traduction par defaut ?"
|
||||
echo " 1) ollama (local, gratuit)"
|
||||
echo " 2) google (API payante)"
|
||||
echo " 3) deepl (API payante, haute qualite)"
|
||||
echo " 4) openai (GPT, payant)"
|
||||
echo " 1) ollama (local, gratuit)"
|
||||
echo " 2) google (API gratuite via deep_translator)"
|
||||
echo " 3) deepl (haute qualite, 500k car/mois gratuit)"
|
||||
echo " 4) openai (GPT, payant)"
|
||||
echo " 5) openrouter (multi-modeles, payant)"
|
||||
ask "Choix (1-5)" "1" TRANSLATION_CHOICE
|
||||
echo " 6) deepseek (tres bon rapport qualite/prix)"
|
||||
echo " 7) minimax (MiniMax-M1 / m2.7, payant)"
|
||||
ask "Choix (1-7)" "1" TRANSLATION_CHOICE
|
||||
|
||||
case "$TRANSLATION_CHOICE" in
|
||||
1) TRANSLATION_SERVICE="ollama" ;;
|
||||
@@ -170,12 +172,16 @@ case "$TRANSLATION_CHOICE" in
|
||||
3) TRANSLATION_SERVICE="deepl" ;;
|
||||
4) TRANSLATION_SERVICE="openai" ;;
|
||||
5) TRANSLATION_SERVICE="openrouter" ;;
|
||||
6) TRANSLATION_SERVICE="deepseek" ;;
|
||||
7) TRANSLATION_SERVICE="minimax" ;;
|
||||
*) TRANSLATION_SERVICE="ollama" ;;
|
||||
esac
|
||||
|
||||
DEEPL_API_KEY=""
|
||||
OPENAI_API_KEY=""
|
||||
OPENROUTER_API_KEY=""
|
||||
DEEPSEEK_API_KEY=""
|
||||
MINIMAX_API_KEY=""
|
||||
|
||||
if [ "$TRANSLATION_SERVICE" = "ollama" ]; then
|
||||
ask "URL Ollama" "http://ollama:11434" OLLAMA_BASE_URL
|
||||
@@ -194,6 +200,14 @@ if [ "$TRANSLATION_SERVICE" = "openrouter" ] || [ "$TRANSLATION_SERVICE" = "all"
|
||||
ask "Cle API OpenRouter (laisser vide si pas maintenant)" "" OPENROUTER_API_KEY
|
||||
fi
|
||||
|
||||
if [ "$TRANSLATION_SERVICE" = "deepseek" ] || [ "$TRANSLATION_SERVICE" = "all" ]; then
|
||||
ask "Cle API DeepSeek (laisser vide si pas maintenant)" "" DEEPSEEK_API_KEY
|
||||
fi
|
||||
|
||||
if [ "$TRANSLATION_SERVICE" = "minimax" ] || [ "$TRANSLATION_SERVICE" = "all" ]; then
|
||||
ask "Cle API Minimax (laisser vide si pas maintenant)" "" MINIMAX_API_KEY
|
||||
fi
|
||||
|
||||
# ===========================================
|
||||
# ETAPE 6 : Monitoring
|
||||
# ===========================================
|
||||
@@ -291,6 +305,16 @@ OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||
OPENAI_MODEL=gpt-4o-mini
|
||||
OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
||||
|
||||
# DeepSeek
|
||||
DEEPSEEK_ENABLED=${DEEPSEEK_ENABLED:-false}
|
||||
DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}
|
||||
DEEPSEEK_MODEL=deepseek-chat
|
||||
|
||||
# Minimax (m2.7 / MiniMax-M1)
|
||||
MINIMAX_ENABLED=${MINIMAX_ENABLED:-false}
|
||||
MINIMAX_API_KEY=${MINIMAX_API_KEY}
|
||||
MINIMAX_MODEL=MiniMax-M1
|
||||
|
||||
# Upload
|
||||
MAX_FILE_SIZE_MB=50
|
||||
ALLOWED_EXTENSIONS=.docx,.xlsx,.pptx
|
||||
|
||||
Reference in New Issue
Block a user