Skip to content

Commit

Permalink
Make genai use common (#86)
Browse files Browse the repository at this point in the history
  • Loading branch information
rlazo authored Mar 19, 2024
1 parent 7507710 commit 36510c7
Show file tree
Hide file tree
Showing 51 changed files with 168 additions and 2,127 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,20 @@ val JSON = Json {
* @property apiVersion the endpoint version to communicate with.
* @property timeout the maximum amount of time for a request to take in the initial exchange.
*/
class APIController(
class APIController
internal constructor(
private val key: String,
model: String,
private val requestOptions: RequestOptions,
httpEngine: HttpClientEngine = OkHttp.create(),
httpEngine: HttpClientEngine
) {

constructor(
key: String,
model: String,
requestOptions: RequestOptions
) : this(key, model, requestOptions, OkHttp.create())

private val model = fullModelName(model)

private val client =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@

package com.google.ai.client.generativeai.common.util

// import com.google.ai.client.generativeai.internal.util.send
// import com.google.ai.client.generativeai.type.RequestOptions
import com.google.ai.client.generativeai.common.APIController
import com.google.ai.client.generativeai.common.GenerateContentRequest
import com.google.ai.client.generativeai.common.GenerateContentResponse
Expand Down
16 changes: 4 additions & 12 deletions generativeai/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,8 @@ android {
}

dependencies {
val ktorVersion = "2.3.2"
implementation(project(":common"))

implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
implementation("io.ktor:ktor-client-core:$ktorVersion")
implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
implementation("io.ktor:ktor-client-logging:$ktorVersion")

implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
implementation("androidx.core:core-ktx:1.12.0")
implementation("org.slf4j:slf4j-nop:2.0.9")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
Expand All @@ -92,10 +85,9 @@ dependencies {
implementation("androidx.concurrent:concurrent-futures:1.2.0-alpha02")
implementation("androidx.concurrent:concurrent-futures-ktx:1.2.0-alpha02")
testImplementation("junit:junit:4.13.2")
testImplementation("io.kotest:kotest-assertions-core:4.0.7")
testImplementation("io.kotest:kotest-assertions-jvm:4.0.7")
testImplementation("io.kotest:kotest-assertions-json:4.0.7")
testImplementation("io.ktor:ktor-client-mock:$ktorVersion")
testImplementation("io.kotest:kotest-assertions-core:5.5.5")
testImplementation("io.kotest:kotest-assertions-core-jvm:5.5.5")
testImplementation("io.mockk:mockk:1.13.10")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
package com.google.ai.client.generativeai

import android.graphics.Bitmap
import com.google.ai.client.generativeai.internal.api.APIController
import com.google.ai.client.generativeai.internal.api.CountTokensRequest
import com.google.ai.client.generativeai.internal.api.GenerateContentRequest
import com.google.ai.client.generativeai.common.APIController
import com.google.ai.client.generativeai.common.CountTokensRequest
import com.google.ai.client.generativeai.common.GenerateContentRequest
import com.google.ai.client.generativeai.internal.util.toInternal
import com.google.ai.client.generativeai.internal.util.toPublic
import com.google.ai.client.generativeai.type.Content
Expand Down Expand Up @@ -71,7 +71,7 @@ internal constructor(
generationConfig,
safetySettings,
requestOptions,
APIController(apiKey, modelName, requestOptions)
APIController(apiKey, modelName, requestOptions.toInternal())
)

/**
Expand All @@ -97,8 +97,8 @@ internal constructor(
fun generateContentStream(vararg prompt: Content): Flow<GenerateContentResponse> =
controller
.generateContentStream(constructRequest(*prompt))
.map { it.toPublic().validate() }
.catch { throw GoogleGenerativeAIException.from(it) }
.map { it.toPublic().validate() }

/**
* Generates a response from the backend with the provided text represented [Content].
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 36510c7

Please sign in to comment.