Skip to content

Commit 7871fa0

Browse files
committed
Migrating Command and Tag enums to sealed case objects to simplify Scala3 compilation. Relates to #6.
1 parent 23d29da commit 7871fa0

File tree

4 files changed

+63
-27
lines changed

4 files changed

+63
-27
lines changed
Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,62 @@
11
package io.cequence.openaiscala.service
22

3+
import io.cequence.openaiscala.domain.EnumValue
4+
5+
sealed abstract class Command(value: String = "") extends EnumValue(value)
6+
37
object Command extends Enumeration {
4-
val models = Value
5-
val completions = Value
6-
val chat_completions = Value("chat/completions")
7-
val edits = Value
8-
val images_generations = Value("images/generations")
9-
val images_edits = Value("images/edits")
10-
val images_variations = Value("images/variations")
11-
val embeddings = Value
12-
val audio_transcriptions = Value("audio/transcriptions")
13-
val audio_translations = Value("audio/translations")
14-
val files = Value
15-
val fine_tunes = Value("fine-tunes")
16-
val moderations = Value
8+
case object models extends Command
9+
case object completions extends Command
10+
case object chat_completions extends Command("chat/completions")
11+
case object edits extends Command
12+
case object images_generations extends Command("images/generations")
13+
case object images_edits extends Command("images/edits")
14+
case object images_variations extends Command("images/variations")
15+
case object embeddings extends Command
16+
case object audio_transcriptions extends Command("audio/transcriptions")
17+
case object audio_translations extends Command("audio/translations")
18+
case object files extends Command
19+
case object fine_tunes extends Command("fine-tunes")
20+
case object moderations extends Command
1721
}
1822

19-
object Tag extends Enumeration {
20-
val model, prompt, suffix, max_tokens, temperature, top_p, n, stream, logprobs, echo, stop,
21-
presence_penalty, frequency_penalty, best_of, logit_bias, user, messages,
22-
input, image, mask, instruction, size, response_format, file, purpose, file_id,
23-
training_file, validation_file, n_epochs, batch_size, learning_rate_multiplier, prompt_loss_weight,
24-
compute_classification_metrics, classification_n_classes, classification_positive_class,
25-
classification_betas, fine_tune_id, language = Value
23+
sealed abstract class Tag(value: String = "") extends EnumValue(value)
24+
25+
object Tag {
26+
case object model extends Tag
27+
case object prompt extends Tag
28+
case object suffix extends Tag
29+
case object max_tokens extends Tag
30+
case object temperature extends Tag
31+
case object top_p extends Tag
32+
case object n extends Tag
33+
case object stream extends Tag
34+
case object logprobs extends Tag
35+
case object echo extends Tag
36+
case object stop extends Tag
37+
case object presence_penalty extends Tag
38+
case object frequency_penalty extends Tag
39+
case object best_of extends Tag
40+
case object logit_bias extends Tag
41+
case object user extends Tag
42+
case object messages extends Tag
43+
case object input extends Tag
44+
case object image extends Tag
45+
case object mask extends Tag
46+
case object instruction extends Tag
47+
case object size extends Tag
48+
case object response_format extends Tag
49+
case object file extends Tag
50+
case object purpose extends Tag
51+
case object training_file extends Tag
52+
case object validation_file extends Tag
53+
case object n_epochs extends Tag
54+
case object batch_size extends Tag
55+
case object learning_rate_multiplier extends Tag
56+
case object prompt_loss_weight extends Tag
57+
case object compute_classification_metrics extends Tag
58+
case object classification_n_classes extends Tag
59+
case object classification_positive_class extends Tag
60+
case object classification_betas extends Tag
61+
case object language extends Tag
2662
}

openai-client/src/main/scala/io/cequence/openaiscala/service/OpenAIServiceImpl.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,8 @@ private class OpenAIServiceImpl(
3232
implicit val ec: ExecutionContext, val materializer: Materializer
3333
) extends OpenAIService with WSRequestHelper {
3434

35-
override protected type PEP = Command.type#Value
36-
override protected type PT = Tag.type#Value
37-
38-
// private val logger = LoggerFactory.getLogger("OpenAIService")
35+
override protected type PEP = Command
36+
override protected type PT = Tag
3937

4038
override protected def timeouts: Timeouts =
4139
explTimeouts.getOrElse(
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package io.cequence.openaiscala.domain
2+
3+
abstract class EnumValue(value: String = "") {
4+
override def toString = if (value.nonEmpty) value else getClass.getSimpleName.stripSuffix("$")
5+
}

openai-core/src/main/scala/io/cequence/openaiscala/service/OpenAIServiceConsts.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ trait OpenAIServiceConsts {
6565
// keep all OpenAI defaults
6666
val CreateFineTune = CreateFineTuneSettings()
6767

68-
// keep all OpenAI defaults
69-
val ListFineTuneEvents = ListFineTuneEventsSettings()
70-
7168
// keep all OpenAI defaults
7269
val CreateModeration = CreateModerationSettings()
7370
}

0 commit comments

Comments
 (0)