feat(minimax): Thinking-Parsing, 1h-Cache-TTL, Null-Safety, Provider-Integration

- Thinking-Streaming: Parse 'reasoning_details' (MiniMax mit reasoning_split),
  'reasoning' (Nvidia), 'reasoning_content' (DeepSeek/OpenAI-Compat),
  und inline <think>...</think>-Tags aus delta.content (Fallback)
- MiniMax: max_tokens=32768, stream_options={include_usage}, reasoning_split=true
- 1h-Prompt-Cache-TTL für API (extended-cache-ttl-2025-04-11 Header,
  Cache-Breakpoints auf System-Prompt + letztes Tool) und CLI (ENABLE_PROMPT_CACHING_1H=1)
- Null-Safety: choices/delta/tool_calls/usage null-Checks in Streaming + Non-Streaming
- finish_reason='length' → warning-Event + stopReason='max_tokens'
- MiniMax-Provider: BaseUrl, MinimaxApiKey-Setting, /api/models/minimax-Endpoint,
  Model-Dropdown, statische Fallback-Modelle, Cache-Laden mit Fallback
- Safety-Net: InvalidOperationException-Catch um SSE-Zeilen-Block
This commit is contained in:
Meleki committed 2026-05-14 00:55:32 +02:00
1 parent 1ece62ce8c
commit d66f8d2e73
5 files changed
+247 -42

No files matched your search

+3 -1
View File
@@ -27,6 +27,7 @@ registerPage('agent', {
const pollinationsOptgroup = document.getElementById('pollinationsOptgroup');
const geminiOptgroup = document.getElementById('geminiOptgroup');
const openaiOptgroup = document.getElementById('openaiOptgroup');
const minimaxOptgroup = document.getElementById('minimaxOptgroup');
// Modelle dynamisch laden
const loadProviderModels = async (url, prefix, optgroup) => {
@@ -53,7 +54,8 @@ registerPage('agent', {
loadProviderModels('/api/models/openai', 'openai', openaiOptgroup),
loadProviderModels('/api/models/nvidia', 'nvidia', nvidiaOptgroup),
loadProviderModels('/api/models/pollinations', 'pollinations', pollinationsOptgroup),
loadProviderModels('/api/models/gemini', 'gemini', geminiOptgroup)
loadProviderModels('/api/models/gemini', 'gemini', geminiOptgroup),
loadProviderModels('/api/models/minimax', 'minimax', minimaxOptgroup)
]);
const allowUserChoiceEl = document.getElementById('agentAllowUserChoice');
const autoCommitEl = document.getElementById('agentAutoCommit');