feat: Configure MiniMax as default provider for Hermes and PaperClip

Sets Hermes default model provider to MiniMax (MiniMax-M3) using MINIMAX_API_KEY from shared.env. Updates PaperClip OpenCode providers with MiniMax baseURL and additional models (MiniMax-M3, MiniMax-Text-01).
This commit is contained in:
Jannik committed 2026-10-02 06:33:53 +02:00
1 parent 47bfdfbd49
commit c70fd63092
2 files changed
+25 -9

No files matched your search

+24 -8
View File
@@ -34,6 +34,7 @@ log "========================================================="
# -----------------------------------------------------------------------------
OPENROUTER_API_KEY=""
MISTRAL_API_KEY=""
MINIMAX_API_KEY=""
if [[ -f "${SHARED_ENV}" ]]; then
# shellcheck source=/dev/null
@@ -113,9 +114,20 @@ else
'
fi
# Standard-Provider für Hermes konfigurieren: MiniMax bevorzugen
if [[ -n "${MINIMAX_API_KEY:-}" ]]; then
log "Konfiguriere Hermes für MiniMax..."
docker exec -u node "${PAPERCLIP_CONTAINER}" hermes config set model.provider minimax 2>/dev/null || true
docker exec -u node "${PAPERCLIP_CONTAINER}" hermes config set model.default MiniMax-M3 2>/dev/null || true
elif [[ -n "${OPENROUTER_API_KEY:-}" ]]; then
log "Konfiguriere Hermes für OpenRouter..."
docker exec -u node "${PAPERCLIP_CONTAINER}" hermes config set model.provider auto 2>/dev/null || true
fi
# Verifikation im Container
log "Verifiziere Hermes im PaperClip-Container:"
docker exec -u node "${PAPERCLIP_CONTAINER}" hermes --version 2>&1 || true
docker exec -u node "${PAPERCLIP_CONTAINER}" hermes config get model 2>&1 || true
docker exec -u node "${PAPERCLIP_CONTAINER}" /opt/hermes-venv/bin/python3 -c "import anthropic; print('anthropic package ok')" 2>&1 || true
fi
@@ -125,14 +137,18 @@ fi
if docker ps --format '{{.Names}}' | grep -q "^${HERMES_CONTAINER}$"; then
log "3/3 Standalone Hermes Container (${HERMES_CONTAINER}) ist aktiv."
# Sicherstellen, dass .env im Volume existiert
if [[ -n "${OPENROUTER_API_KEY}" ]]; then
docker exec -u root "${HERMES_CONTAINER}" bash -c "cat > /opt/data/.env <<EOF
OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
EOF
chown -R hermes:hermes /opt/data/.env 2>/dev/null || true
chmod 600 /opt/data/.env
"
# Alle Keys aus shared.env kopieren
if [[ -f "${SHARED_ENV}" ]]; then
docker cp "${SHARED_ENV}" "${HERMES_CONTAINER}:/opt/data/.env"
docker exec -u root "${HERMES_CONTAINER}" bash -c '
chown -R hermes:hermes /opt/data/.env 2>/dev/null || true
chmod 600 /opt/data/.env
'
fi
if [[ -n "${MINIMAX_API_KEY:-}" ]]; then
docker exec -u hermes "${HERMES_CONTAINER}" hermes config set model.provider minimax 2>/dev/null || true
docker exec -u hermes "${HERMES_CONTAINER}" hermes config set model.default MiniMax-M3 2>/dev/null || true
fi
else
log "3/3 Standalone Hermes Container (${HERMES_CONTAINER}) nicht aktiv (wird bei Bedarf gestartet)."
+1 -1
View File
@@ -35,7 +35,7 @@ services:
PAPERCLIP_AUTH_BASE_URL_MODE: "explicit"
PAPERCLIP_PUBLIC_URL: "https://paperclip.orfel.de"
HERMES_GATEWAY_ALLOW_INSECURE_HTTP: "1"
PAPERCLIP_OPENCODE_PROVIDERS: '{"openrouter":{"npm":"@ai-sdk/openai-compatible","options":{"baseURL":"https://openrouter.ai/api/v1","apiKey":"{env:OPENROUTER_API_KEY}"},"models":{"anthropic/claude-sonnet-4-5":{},"anthropic/claude-3.5-sonnet":{},"google/gemini-2.5-pro":{},"deepseek/deepseek-r1":{},"openai/gpt-4o":{}}},"mistral":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:MISTRAL_API_KEY}"},"models":{"mistral/mistral-large":{}}},"minimax":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:MINIMAX_API_KEY}"},"models":{"minimax/abab6.5s":{}}},"poe":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:POE_API_KEY}"},"models":{"poe/claude-3-opus":{}}}}'
PAPERCLIP_OPENCODE_PROVIDERS: '{"openrouter":{"npm":"@ai-sdk/openai-compatible","options":{"baseURL":"https://openrouter.ai/api/v1","apiKey":"{env:OPENROUTER_API_KEY}"},"models":{"anthropic/claude-sonnet-4-5":{},"anthropic/claude-3.5-sonnet":{},"google/gemini-2.5-pro":{},"deepseek/deepseek-r1":{},"openai/gpt-4o":{}}},"mistral":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:MISTRAL_API_KEY}"},"models":{"mistral/mistral-large":{}}},"minimax":{"npm":"@ai-sdk/openai-compatible","options":{"baseURL":"https://api.minimax.io/v1","apiKey":"{env:MINIMAX_API_KEY}"},"models":{"minimax/abab6.5s":{},"minimax/MiniMax-Text-01":{},"minimax/MiniMax-M3":{}}},"poe":{"npm":"@ai-sdk/openai-compatible","options":{"apiKey":"{env:POE_API_KEY}"},"models":{"poe/claude-3-opus":{}}}}'
volumes:
- /opt/PaperClip-Data/paperclip:/paperclip
- /opt/PaperClip-Data/paperclip-hermes-venv:/opt/hermes-venv