Deploy Python Function untuk Analisis Sentimen
Menggunakan LangChain di Google Cloud Function

Esther Irawati Setiawan
Google Cloud Indonesia
4 min readMay 6, 2023

Saat ini, pengembangan machine learning sedang populer untuk berbagai bidang yang diharapkan dapat mempermudah setiap pekerjaan manusia. LangChain adalah sebuah library yang dapat menghubungkan antara komponen-komponen yang dibutuhkan untuk menggunakan sebuah LLM (Large Language Model). Dengan menggunakan LangChain, kita dapat membangun sebuah prompt template yang kemudian dapat kita proses pada language model dan menetukan action yang akan dikerjakan berdasarkan prompt tersebut menggunakan agents. Selain itu, LangChain memiliki fitur memory untuk menyimpan prompt dan hasil jawaban sebelumnya.

Kali ini kita akan membuat sebuah function untuk menentukan apakah sebuah sentimen merupakan sentimen positif atau negatif. Kita akan memanfaatkan LangChain untuk membentuk prompt template dan akan menggunakan model language dari Google, yaitu flan-t5-xxl. Kita juga akan mendeploy function kita pada Google Cloud menggunakan Cloud Function, sehingga kita dapat mengirimkan request melalui endpoint yang nantinya akan mengembalikan hasil dalam bentuk response. Untuk penjelasan penggunaan Langchain dapat dilihat pada artikel saya sebelumnya.

Persiapan

  • Akun Google Cloud Platform
  • Python Function

Membuat Cloud Function

Buka halaman Cloud Function pada Google Cloud Console dan klik CREATE FUNCTION.

Setelah itu akan muncul halaman Create Function. Pada bagian environment pilih 1st gen. Isi bagian function name dengan nama function Anda. Nama function tidak boleh mengandung spasi. Kemudian pilih region tempat Anda ingin menjalankan function tersebut.

Pada bagian Trigger pastikan untuk memilih HTTP, karena kita akan melakukan proses analisa sentimen melalui endpoint yang disediakan oleh Cloud Function dan melakukan request menggunakan Postman. Setelah Anda memilih trigger type HTTP maka akan muncul URL yang nantinya akan menjadi endpoint dari function kita. Pada bagian Autentication pilih Allow unauthenticated invocations agar endpoint dapat diakses secara publik. Terakhir centang pada bagian Require HTTPS. Setelah selesai, klik tombol SAVE dan lanjutkan proses berikutnya dengan menekan tombol NEXT.

Setelah itu akan terbuka halaman Code. Pada halaman ini kita akan melakukan konfigurasi dan meletakkan kode dari function yang akan kita jalankan di Cloud Function. Pada bagian Runtime, pilih Python 3.10 dan pada bagian Source Code kita akan memilih Inline Editor, opsi ini memungkinkan kita untuk menulis function secara langsung pada code editor yang telah disediakan di Cloud Function.

Kita akan disediakan dua buah file, yaitu requirements.txt untuk meletakkan dependencies package yang dibutuhkan dan main.py untuk function yang akan kita jalankan. Klik pada requirements.txt dan letakkan tiga buah package di bawah ini. Package ini nantinya akan kita import pada function.

langchain
huggingface_hub

Buka pada bagian main.py. Di file ini kita akan meletakkan function yang akan dijalankan. Pada bagian atas terdapat field Entry point yang berfungsi untuk menentukan function mana yang akan dijalankan pertama kali ketika terdapat trigger request. Kita dapat menggantinya dengan nama function yang kita inginkan, untuk kasus kali ini kita akan memberi nama analysis. Letakkan kode di bawah ini pada file main.py.

from langchain import PromptTemplate, HuggingFaceHub, LLMChain
import os

os.environ['HUGGINGFACEHUB_API_TOKEN'] = "YOUR_HUGGINGFACE_API_TOKEN"

def analysis(request):
request_data = request.form.get('sentiment')
sentiment = None

if request_data != None:
sentiment = request_data
else:
return f'Sentiment is required'

template = """Classify the sentiment of this post between 'Positive' or 'Negative. Step by step. {sentiment}"""

prompt = PromptTemplate(template=template,
input_variables=["sentiment"])

llm_chain = LLMChain(prompt=prompt, llm=HuggingFaceHub(repo_id=" google/flan-t5-xxl", model_kwargs={"temperature":0.2, "max_length":64}))

return llm_chain.run(sentiment)

Pada kode di atas, kita akan memberikan input berupa text sentimen dengan mengirimkan form request dengan nama sentiment. Teks tersebut akan disatukan menjadi sebuah prompt yang akan diproses pada language model dari google bernama flan-t5-xxl. Function ini akan mengembalikan hasil yang menunjukkan apakah sentimen tersebut merupakan sentimen positif atau negatif. Ganti bagian YOUR_HUGGINGFACE_API_TOKEN dengan token HuggingFace API Anda. Setelah selesai klik Deploy untuk mendeploy function kita pada Cloud Function.

Setelah itu, function kita akan tampak pada halaman list function, tunggu hingga proses deployment selesai ditandai dengan centang berwarna hijau di sebelah nama function.

Mari kita coba membuat request menggunakan Postman melalui endpoint dari function yang telah kita deploy. Untuk melihat alamat endpoint kita bisa klik nama function lalu menuju ke bagian TRIGGER melalui navigasi pada bagian atas.

Buka aplikasi postman lalu buat request baru yang mengarah ke endpoint trigger dari function kita. Gunakan HTTP Method Post dan pada bagian body form-data isikan key sentiment dengan value sentimen yang ingin kita cek. Setelah kita jalankan, maka kita akan menerima respon yang menentukan apakah sentimen tersebut positif atau negatif.

Kesimpulan

Cloud Function sangat cocok digunakan ketika ingin melakukan deploy model machine learning yang ringan dan sederhana dengan cepat dan efisien. Dalam artikel ini, telah dijelaskan langkah-langkah yang diperlukan untuk melakukan deploy model analisis sentimen menggunakan LangChain di Google Cloud Function.

--

--