fix(api): refactor feature flags to use 'features' object for compatibility

This commit is contained in:
cogwheel0
2025-12-14 18:35:04 +05:30
parent 3602a253d5
commit 0269ba2d0f

View File

@@ -2826,25 +2826,32 @@ class ApiService {
data['chat_id'] = conversationId; data['chat_id'] = conversationId;
} }
// Add feature flags if enabled // Add feature flags via 'features' object only (not as top-level params).
if (enableWebSearch) { // Top-level 'web_search'/'image_generation' params are not recognized by
data['web_search'] = true; // OpenAI and cause errors when forwarded. Open WebUI expects these in the
_traceApi('Web search enabled in streaming request'); // 'features' object which is properly handled by the middleware.
} // See: https://github.com/cogwheel0/conduit/issues/271
if (enableImageGeneration) {
// Mirror web_search behavior for image generation
data['image_generation'] = true;
_traceApi('Image generation enabled in streaming request');
}
if (enableWebSearch || enableImageGeneration) { // Check if memory is enabled in user's OpenWebUI settings
// Include features map for compatibility // This syncs with the user's preference from the web interface
final bool memoryEnabled = userSettings?['memory'] == true;
if (enableWebSearch || enableImageGeneration || memoryEnabled) {
data['features'] = { data['features'] = {
'web_search': enableWebSearch, 'web_search': enableWebSearch,
'image_generation': enableImageGeneration, 'image_generation': enableImageGeneration,
'code_interpreter': false, 'code_interpreter': false,
'memory': false, 'memory': memoryEnabled,
}; };
if (enableWebSearch) {
_traceApi('Web search enabled in streaming request');
}
if (enableImageGeneration) {
_traceApi('Image generation enabled in streaming request');
}
if (memoryEnabled) {
_traceApi('Memory enabled in streaming request (from user settings)');
}
} }
data['id'] = messageId; data['id'] = messageId;