fix(streaming): refactor to not force session id
This commit is contained in:
@@ -1170,9 +1170,7 @@ class ApiService {
|
|||||||
data,
|
data,
|
||||||
debugLabel: 'parse_file_search',
|
debugLabel: 'parse_file_search',
|
||||||
);
|
);
|
||||||
return normalized
|
return normalized.map(FileInfo.fromJson).toList(growable: false);
|
||||||
.map(FileInfo.fromJson)
|
|
||||||
.toList(growable: false);
|
|
||||||
}
|
}
|
||||||
return const [];
|
return const [];
|
||||||
}
|
}
|
||||||
@@ -1186,9 +1184,7 @@ class ApiService {
|
|||||||
data,
|
data,
|
||||||
debugLabel: 'parse_file_all',
|
debugLabel: 'parse_file_all',
|
||||||
);
|
);
|
||||||
return normalized
|
return normalized.map(FileInfo.fromJson).toList(growable: false);
|
||||||
.map(FileInfo.fromJson)
|
|
||||||
.toList(growable: false);
|
|
||||||
}
|
}
|
||||||
return const [];
|
return const [];
|
||||||
}
|
}
|
||||||
@@ -1599,10 +1595,7 @@ class ApiService {
|
|||||||
if (data is Map<String, dynamic>) {
|
if (data is Map<String, dynamic>) {
|
||||||
final voices = data['voices'];
|
final voices = data['voices'];
|
||||||
if (voices is List) {
|
if (voices is List) {
|
||||||
return _normalizeList(
|
return _normalizeList(voices, debugLabel: 'parse_voice_list');
|
||||||
voices,
|
|
||||||
debugLabel: 'parse_voice_list',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (data is List) {
|
if (data is List) {
|
||||||
@@ -1705,10 +1698,7 @@ class ApiService {
|
|||||||
final response = await _dio.get('/api/v1/images/models');
|
final response = await _dio.get('/api/v1/images/models');
|
||||||
final data = response.data;
|
final data = response.data;
|
||||||
if (data is List) {
|
if (data is List) {
|
||||||
return _normalizeList(
|
return _normalizeList(data, debugLabel: 'parse_image_models');
|
||||||
data,
|
|
||||||
debugLabel: 'parse_image_models',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -2406,7 +2396,7 @@ class ApiService {
|
|||||||
({
|
({
|
||||||
Stream<String> stream,
|
Stream<String> stream,
|
||||||
String messageId,
|
String messageId,
|
||||||
String sessionId,
|
String? sessionId,
|
||||||
String? socketSessionId,
|
String? socketSessionId,
|
||||||
bool isBackgroundFlow,
|
bool isBackgroundFlow,
|
||||||
})
|
})
|
||||||
@@ -2432,10 +2422,9 @@ class ApiService {
|
|||||||
(responseMessageId != null && responseMessageId.isNotEmpty)
|
(responseMessageId != null && responseMessageId.isNotEmpty)
|
||||||
? responseMessageId
|
? responseMessageId
|
||||||
: const Uuid().v4();
|
: const Uuid().v4();
|
||||||
final sessionId =
|
final bool hasSocketBinding =
|
||||||
(sessionIdOverride != null && sessionIdOverride.isNotEmpty)
|
sessionIdOverride != null && sessionIdOverride.isNotEmpty;
|
||||||
? sessionIdOverride
|
final String? sessionId = hasSocketBinding ? sessionIdOverride : null;
|
||||||
: const Uuid().v4().substring(0, 20);
|
|
||||||
|
|
||||||
// NOTE: Previously used to branch for Gemini-specific handling; not needed now.
|
// NOTE: Previously used to branch for Gemini-specific handling; not needed now.
|
||||||
|
|
||||||
@@ -2586,14 +2575,20 @@ class ApiService {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Attach identifiers to trigger background task processing on the server
|
// Attach identifiers to trigger background task processing on the server
|
||||||
data['session_id'] = sessionId;
|
if (sessionId != null) {
|
||||||
|
data['session_id'] = sessionId;
|
||||||
|
}
|
||||||
data['id'] = messageId;
|
data['id'] = messageId;
|
||||||
if (conversationId != null) {
|
if (conversationId != null) {
|
||||||
data['chat_id'] = conversationId;
|
data['chat_id'] = conversationId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attach background_tasks if provided
|
final bool includeBackgroundTasks =
|
||||||
if (backgroundTasks != null && backgroundTasks.isNotEmpty) {
|
backgroundTasks != null &&
|
||||||
|
backgroundTasks.isNotEmpty &&
|
||||||
|
sessionId != null;
|
||||||
|
|
||||||
|
if (includeBackgroundTasks) {
|
||||||
data['background_tasks'] = backgroundTasks;
|
data['background_tasks'] = backgroundTasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2717,7 +2712,7 @@ class ApiService {
|
|||||||
messageId: messageId,
|
messageId: messageId,
|
||||||
sessionId: sessionId,
|
sessionId: sessionId,
|
||||||
socketSessionId: socketSessionId,
|
socketSessionId: socketSessionId,
|
||||||
isBackgroundFlow: true,
|
isBackgroundFlow: includeBackgroundTasks,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3123,10 +3118,7 @@ class ApiService {
|
|||||||
|
|
||||||
final data = response.data;
|
final data = response.data;
|
||||||
if (data is List) {
|
if (data is List) {
|
||||||
return _normalizeList(
|
return _normalizeList(data, debugLabel: 'parse_message_search');
|
||||||
data,
|
|
||||||
debugLabel: 'parse_message_search',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
if (data is Map<String, dynamic>) {
|
if (data is Map<String, dynamic>) {
|
||||||
final list = (data['items'] ?? data['results'] ?? data['messages']);
|
final list = (data['items'] ?? data['results'] ?? data['messages']);
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ ActiveSocketStream attachUnifiedChunkedStreaming({
|
|||||||
required String assistantMessageId,
|
required String assistantMessageId,
|
||||||
required String modelId,
|
required String modelId,
|
||||||
required Map<String, dynamic> modelItem,
|
required Map<String, dynamic> modelItem,
|
||||||
required String sessionId,
|
required String? sessionId,
|
||||||
required String? activeConversationId,
|
required String? activeConversationId,
|
||||||
required ApiService api,
|
required ApiService api,
|
||||||
required SocketService? socketService,
|
required SocketService? socketService,
|
||||||
@@ -238,6 +238,7 @@ ActiveSocketStream attachUnifiedChunkedStreaming({
|
|||||||
'conversationId': activeConversationId,
|
'conversationId': activeConversationId,
|
||||||
'messageId': assistantMessageId,
|
'messageId': assistantMessageId,
|
||||||
'modelId': modelId,
|
'modelId': modelId,
|
||||||
|
if (sessionId != null) 'sessionId': sessionId,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
api.registerPersistentStreamForMessage(assistantMessageId, streamId);
|
api.registerPersistentStreamForMessage(assistantMessageId, streamId);
|
||||||
|
|||||||
Reference in New Issue
Block a user