Cara Membuat Aplikasi Content Generator Sederhana dengan Gemini AI

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>

  • Bilal

    Related Posts

    Empowering Communities to Lead Through Social Justice and Action

    The Institute for Research for Social Justice and Action (IRSJA) stands as a transformative force, rooted in the power of lived experience and grounded in the belief that real change…

    Continue reading
    Dozen Op Maat: Custom Solutions for Every Need

    In today’s world, where personalization and customization are key to customer satisfaction, the term “Dozen Op Maat” has emerged as a popular choice for businesses and individuals looking for tailored…

    Continue reading

    You Missed

    How to Select the Ideal Contractor for Your Kitchen Remodel in Mississauga

    • By admin
    • May 8, 2025
    • 1 views

    How Unilabs Democratizes Institutional-Grade DeFi Strategies for Retail Investors

    • By admin
    • May 8, 2025
    • 2 views

    Why Your Online Presence Depends on Professional SEO Services

    • By admin
    • May 8, 2025
    • 6 views

    Crafted to Last: Discover the Authentic Beauty of Solid Wood Flooring

    • By admin
    • May 8, 2025
    • 2 views
    Crafted to Last: Discover the Authentic Beauty of Solid Wood Flooring

    What You Need to Know Before Hiring a Bodyguard in London

    • By admin
    • May 7, 2025
    • 2 views

    District 8 Property Market: Buy & Sell Houses with Confidence

    • By admin
    • May 5, 2025
    • 4 views