@@ -9,6 +9,8 @@ import com.cjcrafter.openai.completions.CompletionResponseChunk
99import com.cjcrafter.openai.embeddings.EmbeddingsRequest
1010import com.cjcrafter.openai.embeddings.EmbeddingsResponse
1111import com.cjcrafter.openai.files.*
12+ import com.cjcrafter.openai.moderations.ModerationHandler
13+ import com.cjcrafter.openai.moderations.ModerationHandlerImpl
1214import com.cjcrafter.openai.threads.ThreadHandler
1315import com.cjcrafter.openai.threads.ThreadHandlerImpl
1416import com.fasterxml.jackson.databind.JavaType
@@ -127,23 +129,28 @@ open class OpenAIImpl @ApiStatus.Internal constructor(
127129 return requestHelper.executeRequest(httpRequest, EmbeddingsResponse ::class .java)
128130 }
129131
130- private var files0 : FileHandlerImpl ? = null
131- override val files : FileHandler
132- get() = files0 ? : FileHandlerImpl (requestHelper, FILES_ENDPOINT ). also { files0 = it }
132+ override val files : FileHandler by lazy {
133+ FileHandlerImpl (requestHelper, FILES_ENDPOINT )
134+ }
133135
134- private var assistants0 : AssistantHandlerImpl ? = null
135- override val assistants : AssistantHandler
136- get() = assistants0 ? : AssistantHandlerImpl (requestHelper, ASSISTANTS_ENDPOINT ). also { assistants0 = it }
136+ override val moderations : ModerationHandler by lazy {
137+ ModerationHandlerImpl (requestHelper, MODERATIONS_ENDPOINT )
138+ }
137139
138- private var threads0: ThreadHandlerImpl ? = null
139- override val threads: ThreadHandler
140- get() = threads0 ? : ThreadHandlerImpl (requestHelper, THREADS_ENDPOINT ).also { threads0 = it }
140+ override val assistants: AssistantHandler by lazy {
141+ AssistantHandlerImpl (requestHelper, ASSISTANTS_ENDPOINT )
142+ }
143+
144+ override val threads: ThreadHandler by lazy {
145+ ThreadHandlerImpl (requestHelper, THREADS_ENDPOINT )
146+ }
141147
142148 companion object {
143149 const val COMPLETIONS_ENDPOINT = " v1/completions"
144150 const val CHAT_ENDPOINT = " v1/chat/completions"
145151 const val EMBEDDINGS_ENDPOINT = " v1/embeddings"
146152 const val FILES_ENDPOINT = " v1/files"
153+ const val MODERATIONS_ENDPOINT = " v1/moderations"
147154 const val ASSISTANTS_ENDPOINT = " v1/assistants"
148155 const val THREADS_ENDPOINT = " v1/threads"
149156 }
0 commit comments