setAssistantSettings method
Future<void>
setAssistantSettings(
)
Implementation
Future<void> setAssistantSettings() async {
try {
UsageSettings? usageSettings = assistant.value?.usageSettings;
if (usageSettings != null) {
isAttachmentAvailable.value = usageSettings.canAttach;
isActionBarAlwaysVisible.value = usageSettings.actionBarAlwaysVisible;
isWebSearchAvailable.value = usageSettings.canWebSearch;
isMentionAvailable.value = usageSettings.canTag;
if ((pupauConfig?.isAnonymous ?? false) &&
assistant.value?.usageSettings?.canAnonymous == false) {
PupauEventService.instance.emitPupauEvent(
PupauEvent(
type: UpdateConversationType.error,
payload: {
"error":
"Anonymous conversations are not allowed for this assistant. Please use a different assistant or create a new conversation.",
"assistantId": assistantId,
"assistantType":
assistant.value?.type ?? AssistantType.assistant,
},
),
);
await showCustomBasicDialog(
Strings.anonymousConversationsNotAllowed.tr,
);
manageForceBack();
}
}
List<String> newConversationStarters;
if (pupauConfig?.conversationStarters.isNotEmpty ?? false) {
newConversationStarters = List<String>.from(
pupauConfig?.conversationStarters ?? [],
);
} else {
List<String> chatEngagementPrompts =
assistant.value?.apiKeyConfig?.chatEngagementPrompts ?? [];
newConversationStarters = chatEngagementPrompts.isNotEmpty
? List<String>.from(chatEngagementPrompts)
: <String>[];
}
conversationStarters.value = newConversationStarters;
conversationStarters.refresh();
showNerdStats.value = pupauConfig?.showNerdStats ?? false;
hideInputBox.value = pupauConfig?.hideInputBox ?? false;
update();
} catch (e, stackTrace) {
PupauEventService.instance.emitPupauEvent(
PupauEvent(
type: UpdateConversationType.error,
payload: {
"error": "Error in setAssistantSettings: ${e.toString()}",
"errorType": e.runtimeType.toString(),
"stackTrace": stackTrace.toString(),
"assistantId": assistantId,
"assistantExists": assistant.value != null,
"usageSettingsExists": assistant.value?.usageSettings != null,
"apiKeyConfigExists": assistant.value?.apiKeyConfig != null,
},
),
);
rethrow;
}
}