import ai.pipecat.client.PipecatClientOptions
import ai.pipecat.client.PipecatEventCallbacks
import ai.pipecat.client.daily.DailyTransport
import ai.pipecat.client.daily.PipecatClientDaily
import ai.pipecat.client.types.APIRequest
import ai.pipecat.client.types.Value
val callbacks = object : PipecatEventCallbacks() {
override fun onBackendError(message: String) {
Log.e(TAG, "Error from backend: $message")
}
// ...
}
val options = PipecatClientOptions(callbacks = callbacks, enableMic = true)
val client = PipecatClientDaily(DailyTransport(context), options)
val startBotParams = APIRequest(
endpoint = "https://your-server.com/start",
// Pipecat Cloud and the Pipecat development runner use these fields
// to decide how to run the bot; unknown fields are ignored
requestData = Value.Object(
"transport" to Value.Str("daily"),
"createDailyRoom" to Value.Bool(true),
)
)
// Kotlin coroutines
client.startBotAndConnect(startBotParams).await()
// Callbacks
client.startBotAndConnect(startBotParams).withCallback {
// ...
}