Slackbot
04/25/2025, 1:08 AMYassine Abou
04/25/2025, 1:08 AMTextModelSlice
→ ChatHistorySlice
• ChatHistorySlice
→ ChatMessageSlice
• ChatMessageSlice
→ TextModelSlice
here is my code:
Interfaces & Implementations:
// ChatMessageSlice
interface ChatMessageSlice { ---- }
class ChatMessageSliceImpl(
private val textModelSlice: TextModelSlice,
private val chutesAiRepository: ChutesAiRepository
) : ChatMessageSlice { ---- }
// TextModelSlice
interface TextModelSlice { ---- }
class TextModelSliceImpl(
private val chatHistorySlice: ChatHistorySlice,
private val chatMessageSlice: ChatMessageSlice
) : TextModelSlice { ---- }
// ChatHistorySlice
interface ChatHistorySlice { ---- }
class ChatHistorySliceImpl(
private val chatMessageSlice: ChatMessageSlice,
private val textModelSlice: TextModelSlice
) : ChatHistorySlice { ---- }
ViewModel:
class ChatViewModel(
private val chutesAiRepository: ChutesAiRepository,
private val textModelSlice: TextModelSlice,
private val chatMessageSlice: ChatMessageSlice,
private val chatHistorySlice: ChatHistorySlice
) : ViewModel() { ---- }
Koin Modules:
----
val provideSliceModule = module {
single<TextModelSlice> { TextModelSliceImpl(get(), get()) }
single<ChatMessageSlice> { ChatMessageSliceImpl(get(), get()) }
single<ChatHistorySlice> { ChatHistorySliceImpl(get(), get()) }
}
val provideViewModelModule = module {
viewModel {
ChatViewModel(
chatMessageSlice = get(),
textModelSlice = get(),
chatHistorySlice = get(),
chutesAiRepository = get()
)
}
}
------