Photo by Markus Winkler on Unsplash
Membuat Aplikasi Translator Sederhana Menggunakan Streamlit dan ChatGPT
Di masa kini, pemanfaatan AI sudah menjadi hal yang tidak terpisahkan dari kehidupan sehari-hari. Keberhasilan ChatGPT yang diluncurkan OpenAI semakin memicu perkembangan dalam pemanfaatan AI di berbagai bidang. Pada artikel ini, kita akan membuat aplikasi translator sederhana ChatGPT API beserta streamlit untuk tampilannya. Aplikasi translator ini ibarat "Hello World" di dalam penggunaan ChatGPT API, yaitu sebagai pengenalan sebelum membuat aplikasi-aplikasi lain yang lebih advanced nantinya.
Instalasi Library
Langkah pertama adalah menginstal Streamlit dan OpenAI Python client. Buka terminal dan jalankan perintah berikut:
pip install streamlit openai
Mendapatkan API Key OpenAI
Kita perlu mendapatkan API key dari platform.openai.com. Setelah mendaftar, kita perlu melakukan top up agar mendapatkan API yang bisa melakukan prompt. Perlu diperhatikan bahwa, API Key bersifat sangat rahasia. Karena ia terikat dengan akun yang kita gunakan untuk mendapatkannya. Oleh karena itu, sangat tidak dianjutkan membaginya dengan orang lain atau memaparkannya dalam kondisi apa pun (browser, aplikasi). Kita perlu menyimpan sendiri tempat kunci API kita dapat dimuat dengan aman dari variabel lingkungan atau layanan manajemen kunci.
Membuat Aplikasi dengan Streamlit
Tentu! Berikut adalah penjelasan per baris dan bagian dari kode tersebut:
import os
import streamlit as st
import openai
from openai import OpenAI
import os
: Mengimpor modulos
untuk berinteraksi dengan sistem operasi, misalnya untuk mengambil environment variable.import streamlit as st
: Mengimpor library Streamlit dan menyingkatnya menjadist
, yang digunakan untuk membuat antarmuka web.import openai
: Mengimpor library OpenAI untuk berinteraksi dengan API OpenAI.from openai import OpenAI
: Mengimpor kelasOpenAI
dari library OpenAI.
# Mengambil API key dari environment variable
openai_api_key = os.getenv('OPENAI_API_KEY')
if openai_api_key:
openai.api_key = openai_api_key
else:
st.error("API key untuk OpenAI tidak ditemukan. Pastikan environment variable 'OPENAI_API_KEY' sudah diset.")
openai_api_key = os.getenv('OPENAI_API_KEY')
: Mengambil nilai dari environment variableOPENAI_API_KEY
dan menyimpannya ke variabelopenai_api_key
.if openai_api_key: ... else: ...
: Memeriksa apakahopenai_api_key
tidak kosong. Jika ada, nilai tersebut diset sebagai API key untuk OpenAI. Jika tidak, menampilkan pesan error di antarmuka Streamlit.
client = OpenAI()
- Membuat instance dari kelas
OpenAI
yang disimpan dalam variabelclient
. Ini digunakan untuk berinteraksi dengan API OpenAI.
# Fungsi untuk menerjemahkan teks menggunakan ChatGPT
def translate_text(text, source_lang, target_lang):
messages = [
{"role": "system", "content": f"You are a helpful translator that translates from {source_lang} to {target_lang}."},
{"role": "user", "content": text}
]
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages,
)
translation = response.choices[0].message.content
return translation
def translate_text(text, source_lang, target_lang):
: Mendefinisikan fungsitranslate_text
yang menerima tiga parameter:text
,source_lang
, dantarget_lang
.messages = [...]
: Membuat daftar pesan yang akan dikirim ke API OpenAI. Pesan pertama mengatur konteks bahwa ChatGPT adalah penerjemah. Pesan kedua adalah teks yang ingin diterjemahkan.response = client.chat.completions.create(...)
: Mengirim permintaan ke API OpenAI dengan modelgpt-3.5-turbo
dan daftar pesan. Hasilnya disimpan dalam variabelresponse
.translation = response.choices[0].message.content
: Mengambil teks terjemahan dari respon API.return translation
: Mengembalikan teks terjemahan sebagai hasil dari fungsi.
# Antarmuka Streamlit
st.title("Translator Sederhana Menggunakan ChatGPT")
source_lang = st.selectbox("Pilih Bahasa Asal", ["English", "Indonesian", "Spanish", "French", "German", "Chinese"], index=1)
target_lang = st.selectbox("Pilih Bahasa Tujuan", ["English", "Indonesian", "Spanish", "French", "German", "Chinese"], index=0)
text_to_translate = st.text_area("Masukkan Teks yang Ingin Diterjemahkan")
if st.button("Terjemahkan"):
if text_to_translate:
translation = translate_text(text_to_translate, source_lang, target_lang)
st.write("Hasil Terjemahan:")
st.write(translation)
else:
st.write("Masukkan teks untuk diterjemahkan.")
st.title("Translator Sederhana Menggunakan ChatGPT")
: Menampilkan judul aplikasi di antarmuka Streamlit.source_lang = st.selectbox(...)
: Membuat dropdown menu untuk memilih bahasa asal. Defaultnya diatur ke "Indonesian".target_lang = st.selectbox(...)
: Membuat dropdown menu untuk memilih bahasa tujuan. Defaultnya diatur ke "English".text_to_translate = st.text_area(...)
: Membuat area teks di mana pengguna bisa memasukkan teks yang ingin diterjemahkan.if st.button("Terjemahkan"): ...
: Menambahkan tombol "Terjemahkan". Ketika tombol ini diklik, jika ada teks yang dimasukkan, maka fungsitranslate_text
akan dipanggil dengan teks yang dimasukkan, bahasa asal, dan bahasa tujuan sebagai parameter.if text_to_translate: ... else: ...
: Memeriksa apakah ada teks yang dimasukkan. Jika ada, memanggiltranslate_text
dan menampilkan hasil terjemahan. Jika tidak, menampilkan pesan agar pengguna memasukkan teks yang ingin diterjemahkan.
Kode ini secara keseluruhan membuat aplikasi web yang sederhana untuk menerjemahkan teks menggunakan API ChatGPT dari OpenAI, dengan antarmuka yang ramah pengguna yang dibuat menggunakan Streamlit.
Penjelasan Kode
Mengambil API Key: Aplikasi mengambil API key dari environment variable
OPENAI_API_KEY
. Jika tidak ditemukan, aplikasi akan menampilkan pesan error.Fungsi Penerjemahan: Fungsi
translate_text
membuat prompt dan mengirimkan permintaan ke API OpenAI untuk melakukan terjemahan.Antarmuka Streamlit: Antarmuka pengguna memungkinkan pengguna untuk memilih bahasa asal dan bahasa tujuan, memasukkan teks yang ingin diterjemahkan, dan menampilkan hasil terjemahan.
Menjalankan Aplikasi
Untuk menjalankan aplikasi, buka terminal dan jalankan perintah berikut:
streamlit run translator_app.py
Aplikasi akan terbuka di browser default kita dan bisa mulai digunakan.
Kesimpulan
Dengan memanfaatkan Streamlit dan API ChatGPT dari OpenAI, kita bisa dengan mudah membuat aplikasi penerjemah dengan mudah. Aplikasi ini dapat dikembangkan lebih lanjut sesuai kebutuhan kita, misalnya dengan menambahkan lebih banyak bahasa atau fitur-fitur lainnya. Selamat mencoba, dan semoga bermanfaat!
Source Code: Github