Use endpoint from AI capability instead of direct call to LLM
This commit is contained in:
+39
@@ -78,8 +78,15 @@ import 'package:tmail_ui_user/features/email/presentation/model/composer_argumen
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||
import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/state/auto_sign_in_via_deep_link_state.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/usecases/store_session_interactor.dart';
|
||||
import 'package:scribe/scribe/ai/data/datasource/ai_datasource.dart';
|
||||
import 'package:scribe/scribe/ai/data/datasource_impl/ai_datasource_impl.dart';
|
||||
import 'package:scribe/scribe/ai/data/repository/ai_repository_impl.dart';
|
||||
import 'package:scribe/scribe/ai/domain/repository/ai_scribe_repository.dart';
|
||||
import 'package:scribe/scribe/ai/domain/usecases/generate_ai_text_interactor.dart';
|
||||
import 'package:scribe/scribe/ai/presentation/bindings/ai_scribe_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/domain/state/get_identity_cache_on_web_state.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/domain/usecase/get_identity_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/exceptions/logout_exception.dart';
|
||||
@@ -818,6 +825,37 @@ class MailboxDashBoardController extends ReloadableController
|
||||
}
|
||||
}
|
||||
|
||||
void injectAIScribeBindings(Session? session, AccountId? accountId) {
|
||||
try {
|
||||
if (session == null || accountId == null) return;
|
||||
|
||||
final aiCapability = session.getAICapability(accountId);
|
||||
final scribeEndpoint = aiCapability?.scribeEndpoint;
|
||||
|
||||
// Delete existing AI bindings if they exist
|
||||
if (Get.isRegistered<AIDataSourceImpl>()) {
|
||||
Get.delete<AIDataSourceImpl>(force: true);
|
||||
}
|
||||
if (Get.isRegistered<AIDataSource>()) {
|
||||
Get.delete<AIDataSource>(force: true);
|
||||
}
|
||||
if (Get.isRegistered<AIScribeRepositoryImpl>()) {
|
||||
Get.delete<AIScribeRepositoryImpl>(force: true);
|
||||
}
|
||||
if (Get.isRegistered<AIScribeRepository>()) {
|
||||
Get.delete<AIScribeRepository>(force: true);
|
||||
}
|
||||
if (Get.isRegistered<GenerateAITextInteractor>()) {
|
||||
Get.delete<GenerateAITextInteractor>(force: true);
|
||||
}
|
||||
|
||||
// Reinitialize with the correct endpoint
|
||||
AIScribeBindings(scribeEndpoint: scribeEndpoint).dependencies();
|
||||
} catch (e) {
|
||||
logError('MailboxDashBoardController::injectAIScribeBindings(): $e');
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> injectFCMBindings(Session? session, AccountId? accountId) async {
|
||||
try {
|
||||
@@ -857,6 +895,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
injectVacationBindings(session, currentAccountId);
|
||||
injectWebSocket(session, currentAccountId);
|
||||
injectPreferencesBindings();
|
||||
injectAIScribeBindings(session, currentAccountId);
|
||||
if (PlatformInfo.isMobile) {
|
||||
injectFCMBindings(session, currentAccountId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user