
com.simiacryptus.jopenai.models.EmbeddingModels.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jo-penai Show documentation
Show all versions of jo-penai Show documentation
A Java client for OpenAI's API
The newest version!
package com.simiacryptus.jopenai.models
import org.slf4j.LoggerFactory
import com.simiacryptus.jopenai.models.ApiModel.Usage
open class EmbeddingModels(
modelName: String,
maxTokens: Int,
private val tokenPricePerK: Double,
) : TextModel(modelName, maxTokens) {
private val logger = LoggerFactory.getLogger(EmbeddingModels::class.java)
override fun pricing(usage: Usage) = usage.prompt_tokens * tokenPricePerK / 1000.0
.also { logger.info("Calculated pricing for model: $modelName with prompt tokens: ${usage.prompt_tokens}, price: $it") }
companion object {
private val logger = LoggerFactory.getLogger(EmbeddingModels::class.java)
fun values() = mapOf(
"AdaEmbedding" to AdaEmbedding,
"Small" to Small,
"Large" to Large
)
init {
logger.info("Initializing EmbeddingModels with predefined models: AdaEmbedding, Small, Large")
}
val AdaEmbedding = EmbeddingModels("text-embedding-ada-002", 2049, 0.0001)
val Small = EmbeddingModels("text-embedding-3-small", 2049, 0.00002)
val Large = EmbeddingModels("text-embedding-3-large", 2049, 0.00013)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy