
Generative AI adalah keliru satu cabang dari artificial intelligence atau kecerdasan buatan yang bisa menghasilkan atau membuat beraneka type konten, terasa dari teks, gambar, audio, sampai video.
Akhir-akhir ini generative AI tambah tenar bersama terdapatnya Chat GPT dan Bard yang bisa menghasilkan beraneka konten berbasis teks dan Dall-E yang menghasilkan konten berbasis gambar. Bahkan Generative AI juga bisa memeberi paham kami langkah membuat aplikasi yang dapat kami segera bahas.
Tentu tetap banyak ulang produk generative AI lainnya di luar sana, tetapi beberapa yang telah disebutkan adalah yang paling populer.
Namun, tidak cuman yang telah disebutkan, tersedia type AI baru yang diperkenalkan oleh Google bersama kebolehan generative AI juga.
Model tersebut bernama Gemini. Model Gemini yang diperkenalkan oleh Google ini punyai tiga varian, yaitu Gemini Ultra, Gemini Pro, dan Gemini Nano.
Setiap variannya punyai peruntukan dan kemampuannya masing-masing. Gemini Ultra adalah type bersama kebolehan paling tinggi untuk tugas yang kompleks, Gemini Pro adalah type terbaik untuk mengerjakan beraneka tugas, dan Gemini Nano adalah type paling gampang dan efektif yang bisa segera ditunaikan pada mobile device.
Nah, di dalam artikel ini kami dapat studi langkah membuat aplikasi content generator simple bersama pakai type Gemini Nano.
Persiapan
Android Studio
Untuk mengikuti proses pembuatan aplikasi content generator simple ini, sesungguhnya bisa saja pakai Android Studio versi stable terakhir (Hedgehog 2023.1.1). Namun, dapat lebih gampang ulang jika kami pakai Android studio versi canary (Jellyfish 2023.3.1).
Hal ini dikarenakan pada versi tersebut telah tersedia starter project spesifik untuk pakai Gemini API. Untuk mengunduh Android studio versi Jellyfish, kamu bisa segera menuju halaman Android Studio Preview Release dan menentukan Canary build.
Konsultasi dengan pakarnya sekarang: ade prasetyo
Membuat Project Baru
Setelah berhasil mengunduh dan menginstal Android Studio Jellyfish, selanjutnya mari kami membuat project baru.
Buka Android Studio → Pilih New Project → Pilih Gemini API Starter dan klik Next.
cara membuat project baru
Selanjutnya kami tinggal sesuaikan saja kolom yang menghendaki diubah. Contohnya di bawah ini. Jika sudah, klik Next.
Konfigurasi project baru
Selanjutnya kami dapat diminta Gemini API Key. Untuk memperoleh API key, kamu bisa klik anggota Generate API Key with Google AI Studio.
Input API Key
Kita dapat diarahkan ke halaman bersama penampilan seperti di bawah ini. Setelah itu, generate API key bersama klik Create API key in new Project atau Create API in existing project.
cara me-generate API Key untuk aplikasi kita
Setelah API key berhasil dibuat, segera copy kemudian paste di kolom Android Studio sebelumnya.
Salin API Key
Terakhir, klik Finish kemudian menunggu proses build project selesai.
Menjalankan Project Baru
Secara default, saat kami membuat aplikasi bersama starter project Gemini API, telah tersedia layout dan logic yang bisa digunakan untuk merangkum teks yang dimasukkan. Tanpa membuat perubahan satu baris kode pun kami telah bisa pakai kecanggihan AI dari Gemini. Berikut adalah penampilan saat pertama kali dijalankan.
Starter project Gemini API
Cara Membuat Aplikasi Content Generator
Starter yang dibikin secara default dapat pakai Kotlin sebagai keliru satu dari macam-macam bhs pemrograman untuk pengembangan aplikasi mobile. Sementara itu, tampilannya sendiri telah pakai UI tools yang baru untuk Android, yaitu Jetpack Compose.
Pada artikel ini, kami dapat membuat perubahan starter project yang cuma bisa merangkum teks input jadi content generator simple bersama beberapa masukan, seperti topik, tone, format, dan panjang konten. Hasil dari aplikasi yang dapat kami membuat sebagai berikut.
Cara membuat aplikasi content generator
Mengubah File SummarizeUiState.kt
Pertama-tama, hal yang kami pindah adalah SummarizeUiState jadi ContentGeneratorUiState dan sesuaikan isinya jadi seperti berikut.
sealed interface ContentGeneratorUiState {
knowledge object Initial : ContentGeneratorUiState
knowledge object Loading : ContentGeneratorUiState
knowledge class Success(
val outputText: String
) : ContentGeneratorUiState
knowledge class Error(
val errorMessage: String
) : ContentGeneratorUiState
}
ContentGeneratorUiState ini dapat kami pakai untuk mengelola state dari UI yang dapat dibikin nanti.
Menambahkan File GeneraiEnum.kt
Selanjutnya adalah kami memberikan file GeneraiEnum.kt bersama mengisi kode berikut.
enum class Tone(val prompt: String) {
PROFESSIONAL(“professional”),
CASUAL(“casual”),
FUNNY(“funny”),
INFORMATIVE(“informative”)
}
enum class Format(val prompt: String) {
PARAGRAPH(“paragraph”),
EMAIL(“email draft”),
IDEAS(“list of ideas”),
BLOG_POST(“blog post”)
}
enum class Length(val prompt: String) {
SHORT(“short”),
MEDIUM(“medium”),
LONG(“long”),
}
Dalam file GeneraiEnum.kt di atas tersedia beberapa enum class, seperti Tone, Format, dan Length yang dapat kami pakai sebagai input untuk sesuaikan konten yang dapat dihasilkan.
Mengubah File SummarizeViewModel.kt
Selanjutnya, kami membuat perubahan SummarizeViewModel.kt jadi ContentGeneratorViewModel.kt. Kemudian, sesuaikan isinya jadi seperti di bawah ini.
class ContentGeneratorViewModel(
private val generativeModel: GenerativeModel
) : ViewModel() {
private val _uiState: MutableStateFlow<ContentGeneratorUiState> =
MutableStateFlow(ContentGeneratorUiState.Initial)
val uiState: StateFlow<ContentGeneratorUiState> =
_uiState.asStateFlow()
fun generateContent(
topic: String,
tone: Tone,
format: Format,
length: Length,
) {
_uiState.value = ContentGeneratorUiState.Loading
val prompt = “””
Compose a $length.prompt $format.prompt addressing $topic, employing a $tone.prompt style
“””.trimIndent()
viewModelScope.launch {
try {
val response = generativeModel.generateContent(prompt)
response.text?.let { outputContent ->
_uiState.value = ContentGeneratorUiState.Success(outputContent)
}
} catch (e: Exception) {
_uiState.value = ContentGeneratorUiState.Error(e.localizedMessage ?: “”)
}
}
}
}
Kode pada ViewModel di atas adalah keliru satu anggota paling penting dikarenakan kami pakai kelas GenerativeModel yang di sediakan oleh library Gemini. Pada ViewModel ini juga, tersedia kegunaan generateContent() yang kami membuat bersama parameter topic, tone, format, dan length. Parameter-parameter tersebut kemudian diolah jadi sebuah prompt yang kemudian jadi argumen untuk type Gemini.
Mengubah File MainActivity.kt
Terakhir, kami sesuaikan kode pada MainActivity untuk membuat penampilan seperti yang telah disiapkan. Pada MainActivity ini, tersedia beberapa composable function yang dapat sesuai sebagai berikut.
Menyiapkan resource strings.xml.
Sebelum lakukan perubahan pada MainActivity.kt, pertama-tama kami siapkan resource strings.xml lebih-lebih dulu agar pengelolaan teks yang kami pakai lebih gampang dan konsisten.
<resources>
<string name=”app_name”>Generai</string>
<string name=”topic_label”>Topic</string>
<string name=”topic_hint”>Enter your topic</string>
<string name=”tone_label”>Tone</string>
<string name=”format_label”>Format</string>
<string name=”length_label”>Length</string>
<string name=”result_label”>Result</string>
<string name=”generate_content_label”>Generate Content</string>
</resources>