Secured AI Backend Proxy
We prevent you from losing thousands of dollars by including a backend that securely handles your API key requests to the AI API.
Publish Server (3 min setup)
Login on render.com with your Github account
Create a new Web Service

Download the code on https://github.com/AppKickstarter/backend-ai
In this repository you'll find a KMP ai client and a NodeJS backend server. Create a Github repository and push the node js part on it.
Connect your new NodeJS repository to render and the web service you created before.
On every push the render web service will be updated
Add your environement variables: HMAC_SECRET_KEY, OPENAI_API_KEY and REPLICATE_API_TOKEN

Use AI module in a KMP Project (Android, iOS, Desktop, Web) (3 min setup)
Download AI module on https://github.com/AppKickstarter/AI
Copy paste AI module in your project
Add module in settings.gradle:
include(":ai")
Add dependency in your build.gradle:
kotlin {
...
sourceSets {
commonMain.dependencies {
implementation(projects.ai)
}
}
}
Add environement variables in local.properties : mobile_ai_api_hmac_secret_key and mobile_ai_url.
Add BuildKonfig in your project:
import com.codingfeline.buildkonfig.compiler.FieldSpec.Type.STRING
plugins {
...
id("com.codingfeline.buildkonfig")
}
buildkonfig {
packageName = "your.package.app"
val props = Properties()
try {
props.load(file("../local.properties").inputStream())
} catch (e: Exception) {
// keys are private and can not be committed to git
}
defaultConfigs {
buildConfigField(
STRING,
"MOBILE_AI_API_HMAC_SECRET_KEY",
props["mobile_ai_api_hmac_secret_key"]?.toString() ?: ""
)
buildConfigField(
STRING,
"MOBILE_AI_URL",
props["mobile_ai_url"]?.toString() ?: ""
)
}
}
Now you can call ChatGpt, Dall-e, Whisper, OpenAI Vision and more :
Create the service :
val aIService = AIService(
BuildKonfig.MOBILE_AI_URL,
BuildKonfig.MOBILE_AI_API_HMAC_SECRET_KEY,
)
Inject it in Koin:
module {
singleOf {
AIService(
BuildKonfig.MOBILE_AI_URL,
BuildKonfig.MOBILE_AI_API_HMAC_SECRET_KEY,
)
}
}
Call ChatGpt:
scope.launch {
aiService
.chatgpt(
model = model, // support gpt3.5 turbo, gpt4, etc
messages = listOf(
Message(
role = "system",
content = "Marv is a factual chatbot that is also sarcastic."
),
Message(
role = "user",
content = userContent
),
)
)
.onFailure {
result = "We found an error ${it.message}"
}
.onSuccess {
result = it
}
}
Call Dall-e 3
scope.launch {
aiService
.dallee(prompt) // only dall-e 3 for now but you can easily change it
.onFailure { error = "We found an erorr ${it.message}" }
.onSuccess { resultUrl = it.data.firstOrNull()?.url }
.also { loading = false }
}
Call OpenAI Vision
scope.launch {
aiService
.vision(
prompt = prompt,
url = url // image url to analyze
)
.onFailure {
result = "We found an error ${it.message}"
}
.onSuccess {
result = it
}
}
Add AI module in a iOS Swift only Project
Add AI module in a Flutter Project
Last updated
Was this helpful?