File tree Expand file tree Collapse file tree 4 files changed +20
-14
lines changed
android/src/main/java/co/yml/ychat/android
ios/YChatApp/Features/Completion/ViewModel
ychat/src/commonMain/kotlin/co/yml/ychat Expand file tree Collapse file tree 4 files changed +20
-14
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,15 @@ import kotlinx.coroutines.launch
1111
1212class MainViewModel (private val chatGpt : YChat ) : ViewModel() {
1313
14+ private val chatCompletions by lazy {
15+ chatGpt.chatCompletions()
16+ .setMaxTokens(MAX_TOKENS )
17+ .addMessage(
18+ role = " assistant" ,
19+ content = " You are a helpful assistant."
20+ )
21+ }
22+
1423 private val _items = mutableStateListOf<MessageItem >()
1524 val items = _items
1625
@@ -47,11 +56,7 @@ class MainViewModel(private val chatGpt: YChat) : ViewModel() {
4756
4857 private suspend fun requestCompletion (message : String ): String {
4958 return try {
50- chatGpt.completion()
51- .setInput(message)
52- .saveHistory(false )
53- .setMaxTokens(MAX_TOKENS )
54- .execute()
59+ chatCompletions.execute(message).last().content
5560 } catch (e: Exception ) {
5661 e.message ? : ERROR
5762 }
Original file line number Diff line number Diff line change @@ -10,9 +10,14 @@ import YChat
1010import Foundation
1111
1212internal final class CompletionViewModel : ObservableObject {
13- private var chatGpt : YChat {
13+ private var chatCompletions : ChatCompletions =
1414 YChatCompanion . shared. create ( apiKey: Config . apiKey)
15- }
15+ . chatCompletions ( )
16+ . setMaxTokens ( tokens: 1024 )
17+ . addMessage (
18+ role: " assistant " ,
19+ content: " You are a helpful assistant. "
20+ )
1621
1722 @Published
1823 var message : String = " "
@@ -32,11 +37,7 @@ internal final class CompletionViewModel: ObservableObject {
3237 cleanLastMessage ( )
3338 addLoading ( )
3439 do {
35- let result = try await chatGpt. completion ( )
36- . setInput ( input: input)
37- . setMaxTokens ( tokens: 1024 )
38- . saveHistory ( isSaveHistory: false )
39- . execute ( )
40+ let result = try await chatCompletions. execute ( content: input) [ 0 ] . content
4041 removeLoading ( )
4142 addAIMessage ( message: result)
4243 } catch {
Original file line number Diff line number Diff line change @@ -10,5 +10,5 @@ internal data class ChatCompletionsChoiceDto(
1010 @SerialName(" message" )
1111 val message : ChatMessageDto ,
1212 @SerialName(" finish_reason" )
13- val finishReason : String ,
13+ val finishReason : String? ,
1414)
Original file line number Diff line number Diff line change @@ -50,7 +50,7 @@ internal class ChatCompletionsImpl(
5050 }
5151
5252 override suspend fun execute (content : String ): List <ChatMessage > {
53- params.messages.add( ChatMessage ( " user" , content) )
53+ addMessage( " user" , content)
5454 return chatCompletionsUseCase.requestChatCompletions(params)
5555 .also { params.messages.addAll(it) }
5656 }
You can’t perform that action at this time.
0 commit comments