Pada modul ini kita akan membahas konversi dari bahasa pemograman JavaScript menjadi Python dengan menggunakan ChatCompletion.
import openai
from dotenv import dotenv_values
config = dotenv_values(".env")
openai.api_key = config["OPENAI_KEY"]
js = """
function mystery(arr) {
return arr.reduce(function(p, v){
return (p < v ? p : v);
});
}
"""
messages = [
{"role": "user", "content": f"Convert following JavaScript function into Python : {js}"}
]
response = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = messages,
)
print(response.choices[0]["message"]["content"])
Fungsi JavaScript diatas sengaja dibuat kompleks, tujuannya adalah untuk mencari nilai minimal dari sebuah array. Jadi harapannya, model dapat mengembalikan fungsi python min.
Ketika menggunakan gpt-3.5-turbo, result model tidak memuaskan. Berikut response yang dihasilkan.
def mystery(arr):
return reduce(lambda p, v: p if p < v else v, arr)
Karena kami tidak memiliki akses untuk gpt-4, kami gunakan web ChatGPT untuk melakukan testing code konversion menggunakan gpt-4. Dan resultnya sesuai harapan, dimana model mengembalikan fungsi min.
Berikut screen capture dari ChatGPT.

Namun tidak berarti gpt-3.5-turbo tidak mampu, kami coba dengan fungsi yang lebih sederhana untuk validasi email address.
js="""
const mystery = (email) => {
const regex = /^\S+@\S+\.\S+$/;
return regex.test(email);
}
"""
messages = [
{"role": "user", "content": f"Translate following JavaScript function into Python : {js}"}
]
response = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = messages,
)
print(response.choices[0]["message"]["content"])
response yang diberikan sesuai harapan.
def mystery(email):
regex = r'^\S+@\S+\.\S+$'
return bool(re.match(regex, email))
Jika fungsi python diatas dijalankan, dapat mevalidasi alamat email. Namun Anda perlu import dahulu library re.
Sementara ketika ditest menggunakan gpt-4, result lebih lengkap. Perintah untuk import library yang diperlukan telah disertakan.
import re
def mystery(email):
regex = r'^\S+@\S+\.\S+$'
return bool(re.match(regex, email))
Jadi Anda dapat gunakan terlebih dahulu gpt-3.5-turbo, jika tidak memuaskan, baru gunakan gpt-4.