fix(api): refactor feature flags to use 'features' object for compatibility
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user