Products and Features
- Membuka Akses Ping pada IP Public VM Cloud Raya
- Maximize Your Storage Raya Access Speed with Content Delivery Network (CDN)
- How to Create Project Tag in Cloud Raya for More Organized VM Billing Report
- Exporting Cloud Raya VM to outer Cloud Raya's Infrastructure using Acronis Cyber Protect
- SSO Management on Cloud Raya
- Easy Steps to Enable VPC in Cloud Raya
- Using the SSH key Feature in Cloud Raya Dashboard
- Cloud Raya Load Balancer, Solution to Distribute Load Equally
- Create your own VPN server with DNS-Level AdBlocker using PiVPN & PiHole in CloudRaya
- Fix Broken LetsEncrypt SSL Certificate due to Expired Root CA Certificate
- Storage Raya - Cloud Raya S3 Object Storage
- How to Make a Snapshot and Configure VM Backup in Cloud Raya
- How to Request Services or Licenses Products
- Adding, Attaching, and Resize Root Storage Disk in Cloud Raya VPS
- Managing your DNS Zone with DNS Bucket in Cloud Raya
- Create VM, Custom Package, Reinstall VM, and Adjusting Security Profile
- How to backup Linux VM via Acronis in Cloud Raya
- How to Backup Desktop Linux and Windows via Acronis in Cloud Raya
- Backing-Up Cloud Raya Windows VM Using Acronis Cyber Protect
- Load Balancing in Cloud Raya
- Establishing a VPN in Cloud Raya
- Generating an API Token
- Generating an API key
- Deploying a Virtual Machine in Cloud Raya
- Show Remaining Articles ( 9 ) Collapse Articles
- How to backup Linux VM via Acronis in Cloud Raya
- How to Backup Desktop Linux and Windows via Acronis in Cloud Raya
- Integrasi S3 Storage Raya dan Strapi untuk Pengoptimalan Penyimpanan Aset - Bag. 4
- Maximize Your Storage Raya Access Speed with Content Delivery Network (CDN)
- Managing Storage Raya from various tools and from various OS
- Binding NextCloud with Cloud Raya S3 Object Storage as External Storage Mount
- Storage Raya - Cloud Raya S3 Object Storage
- Exporting Cloud Raya VM to outer Cloud Raya's Infrastructure using Acronis Cyber Protect
- Using the SSH key Feature in Cloud Raya Dashboard
- Adding, Attaching, and Resize Root Storage Disk in Cloud Raya VPS
- Create VM, Custom Package, Reinstall VM, and Adjusting Security Profile
- How to backup Linux VM via Acronis in Cloud Raya
- Backing-Up Cloud Raya Windows VM Using Acronis Cyber Protect
- Deploying a Virtual Machine in Cloud Raya
Integration
- Integrasi S3 Storage Raya dan Strapi untuk Pengoptimalan Penyimpanan Aset - Bag. 4
- Integrasi Konten Strapi ke dalam Frontend React - Bag. 3
- Mengelola Konten dalam Strapi Headless CMS - Bag. 2
- Menginstal Strapi Headless CMS di Cloud Raya - Bag. 1
- Panduan Menggunakan SSH Key pada VM Cloud Raya dengan PuTTY
- Menginstal Beberapa Versi PHP dalam Satu VM untuk Pengembangan Web yang Lebih Fleksibel
- Replatforming Apps to K8s with RKE and GitLab CI
- Integrasi API OpenAI: Completions dalam PHP
- Membangun Email Server di Cloud Raya Menggunakan iRedMail
- Meningkatkan Pengiriman Email dengan Sendinblue SMTP Relay
- Bangun Self Hosted Password Manager menggunakan Passbolt
- How to Install Podman on Almalinux/Rocky Linux 9
- ElkarBackup: GUI Based backup Tools based on Rsync and Rsnapshot
- Meningkatkan Kinerja Webserver dengan SSL Termination pada NGINX Load Balancer
- Menggunakan NGINX sebagai HTTP Load Balancer
- Otomatisasi Task dengan Cronjob
- Upgrade Zimbra and the OS Version
- Deploy Mailu on Rancher Kubernetes
- Export dan Import Database di MySQL atau MariaDB Menggunakan Mysqldump
- Backup & Sync Local and Remote Directories Using RSYNC
- Managing Storage Raya from various tools and from various OS
- Binding NextCloud with Cloud Raya S3 Object Storage as External Storage Mount
- Simple monitoring and alerting with Monit on Ubuntu 22.04 LTS
- VS Code on your browser! How to install code-server on a VM
- Implementing Redis HA and Auto-Failover on Cloud Raya
- Using XFCE Desktop Environment on Cloud Raya VM
- Installing Python 3.7-3.9 on Ubuntu 22.04 Jammy LTS using PPA
- Implementing Continuous Integration with Gitlab CI and Continuous Delivery with Rancher Fleet
- Using Collabora Online on Cloud Raya NextCloud's VM
- Installing NextCloud in Cloud Raya- Detail Steps from the Beginning to the Very End
- Set Up High Availability PostgreSQL Cluster Using Patroni on Cloud Raya
- Set Up WAF KEMP in Cloud Raya Part 2
- Set Up WAF KEMP in Cloud Raya Part 1
- Using the SSH key Feature in Cloud Raya Dashboard
- Monitor Your Services Uptime Using Uptime Kuma
- Hosting Static Website with Hugo on Cloud Raya
- Kubernetes Ingress Controller using SSL in CloudRaya
- Reverse Proxy management using Nginx Proxy Manager
- Create your own VPN server with DNS-Level AdBlocker using PiVPN & PiHole in CloudRaya
- How to deploy Portainer on Linux to easily manage your docker containers
- High Availability Kubernetes Using RKE in Cloud Raya Part 3
- High Availability Kubernetes Using RKE in Cloud Raya Part 2
- High Availability Kubernetes Using RKE in Cloud Raya Part 1
- How to backup Linux VM via Acronis in Cloud Raya
- How to Backup Desktop Linux and Windows via Acronis in Cloud Raya
- Deploying Magento on Cloud Raya
- How to Install Nextcloud on Cloud Raya
- How to Install CWP in Cloud Raya
- How to Install Node.js and Launch Your First Node App
- How to install and secure MariaDB on Ubuntu 18.04 and 20.04 on Cloud Raya
- How to Install and Securing MongoDB on Ubuntu 18.04 and 20.04
- Classes: Post Installation on Ansible
- Classes: Install and Configure Ansible
- Classes: Introduction to Ansible for a robust Configuration Management
- How to Setup Active Directory Domain Service & DNS with Cloud Raya
- How to Host Your Own Docker Hub in Cloud Raya
- How to Setup Your Own Laravel with Nginx in Ubuntu 18.04
- How to Deploy Container in Cloud Raya using Docker
- Securing CentOS with iptables
- Install and Configure Squid Proxy in Ubuntu
- Installing Apache and Tomcat: A Quick Way
- Securing Ubuntu with UFW
- Install a Node.js and Launch a Node App on Ubuntu 18.04
- Installing LAMP in Ubuntu
- Installing LEMP Stack on Ubuntu 18.04
- Show Remaining Articles ( 50 ) Collapse Articles
- Articles coming soon
- Integrasi S3 Storage Raya dan Strapi untuk Pengoptimalan Penyimpanan Aset - Bag. 4
- Integrasi Konten Strapi ke dalam Frontend React - Bag. 3
- Mengelola Konten dalam Strapi Headless CMS - Bag. 2
- Menginstal Strapi Headless CMS di Cloud Raya - Bag. 1
- Panduan Menggunakan SSH Key pada VM Cloud Raya dengan PuTTY
- Membangun Email Server di Cloud Raya Menggunakan iRedMail
- Meningkatkan Pengiriman Email dengan Sendinblue SMTP Relay
- Bangun Self Hosted Password Manager menggunakan Passbolt
- ElkarBackup: GUI Based backup Tools based on Rsync and Rsnapshot
- Meningkatkan Kinerja Webserver dengan SSL Termination pada NGINX Load Balancer
- Menggunakan NGINX sebagai HTTP Load Balancer
- Upgrade Zimbra and the OS Version
- Deploy Mailu on Rancher Kubernetes
- Managing Storage Raya from various tools and from various OS
- Binding NextCloud with Cloud Raya S3 Object Storage as External Storage Mount
- Simple monitoring and alerting with Monit on Ubuntu 22.04 LTS
- VS Code on your browser! How to install code-server on a VM
- Implementing Redis HA and Auto-Failover on Cloud Raya
- Using XFCE Desktop Environment on Cloud Raya VM
- Implementing Continuous Integration with Gitlab CI and Continuous Delivery with Rancher Fleet
- Using Collabora Online on Cloud Raya NextCloud's VM
- Installing NextCloud in Cloud Raya- Detail Steps from the Beginning to the Very End
- Set Up WAF KEMP in Cloud Raya Part 2
- Set Up WAF KEMP in Cloud Raya Part 1
- Monitor Your Services Uptime Using Uptime Kuma
- Create your own VPN server with DNS-Level AdBlocker using PiVPN & PiHole in CloudRaya
- How to deploy Portainer on Linux to easily manage your docker containers
- High Availability Kubernetes Using RKE in Cloud Raya Part 3
- High Availability Kubernetes Using RKE in Cloud Raya Part 2
- High Availability Kubernetes Using RKE in Cloud Raya Part 1
- How to Install Nextcloud on Cloud Raya
- Classes: Post Installation on Ansible
- Classes: Install and Configure Ansible
- Classes: Introduction to Ansible for a robust Configuration Management
- Connect Windows Active Directory on Cloud Raya with Azure AD
- How to Host Your Own Docker Hub in Cloud Raya
- How to Deploy Container in Cloud Raya using Docker
- Show Remaining Articles ( 22 ) Collapse Articles
- Integrasi S3 Storage Raya dan Strapi untuk Pengoptimalan Penyimpanan Aset - Bag. 4
- Integrasi Konten Strapi ke dalam Frontend React - Bag. 3
- Mengelola Konten dalam Strapi Headless CMS - Bag. 2
- Menginstal Strapi Headless CMS di Cloud Raya - Bag. 1
- Integrasi API OpenAI untuk Membangun Chatbot Interaktif dalam Proyek PHP
- Menginstal Beberapa Versi PHP dalam Satu VM untuk Pengembangan Web yang Lebih Fleksibel
- Integrasi API OpenAI: Completions dalam PHP
- Meningkatkan Kinerja Webserver dengan SSL Termination pada NGINX Load Balancer
- Menggunakan NGINX sebagai HTTP Load Balancer
- Otomatisasi Task dengan Cronjob
- How to Deploy Django App on Cloud Raya VM Using Gunicorn, Supervisor, and Nginx
- How to Install Node.js and Launch Your First Node App
- How to Setup Your Own Laravel with Nginx in Ubuntu 18.04
- Install a Node.js and Launch a Node App on Ubuntu 18.04
- Panduan Menggunakan SSH Key pada VM Cloud Raya dengan PuTTY
- Bangun Self Hosted Password Manager menggunakan Passbolt
- Meningkatkan Kinerja Webserver dengan SSL Termination pada NGINX Load Balancer
- Export dan Import Database di MySQL atau MariaDB Menggunakan Mysqldump
- Backup & Sync Local and Remote Directories Using RSYNC
- How to Deploy Django App on Cloud Raya VM Using Gunicorn, Supervisor, and Nginx
- Set Up WAF KEMP in Cloud Raya Part 2
- Set Up WAF KEMP in Cloud Raya Part 1
- Using the SSH key Feature in Cloud Raya Dashboard
- How to backup Linux VM via Acronis in Cloud Raya
- How to Backup Desktop Linux and Windows via Acronis in Cloud Raya
- Securing CentOS with iptables
- Securing Ubuntu with UFW
- Integrasi S3 Storage Raya dan Strapi untuk Pengoptimalan Penyimpanan Aset - Bag. 4
- Integrasi Konten Strapi ke dalam Frontend React - Bag. 3
- Mengelola Konten dalam Strapi Headless CMS - Bag. 2
- Menginstal Strapi Headless CMS di Cloud Raya - Bag. 1
- Integrasi API OpenAI untuk Membangun Chatbot Interaktif dalam Proyek PHP
- Menginstal Beberapa Versi PHP dalam Satu VM untuk Pengembangan Web yang Lebih Fleksibel
- Membangun Email Server di Cloud Raya Menggunakan iRedMail
- Bangun Self Hosted Password Manager menggunakan Passbolt
- Meningkatkan Kinerja Webserver dengan SSL Termination pada NGINX Load Balancer
- Menggunakan NGINX sebagai HTTP Load Balancer
- Installing Python 3.7-3.9 on Ubuntu 22.04 Jammy LTS using PPA
- Reverse Proxy management using Nginx Proxy Manager
- Install and Configure Squid Proxy in Ubuntu
- Installing Apache and Tomcat: A Quick Way
- Installing LAMP in Ubuntu
- Installing LEMP Stack on Ubuntu 18.04
- Show Remaining Articles ( 1 ) Collapse Articles
- Integrasi S3 Storage Raya dan Strapi untuk Pengoptimalan Penyimpanan Aset - Bag. 4
- Integrasi Konten Strapi ke dalam Frontend React - Bag. 3
- Mengelola Konten dalam Strapi Headless CMS - Bag. 2
- Menginstal Strapi Headless CMS di Cloud Raya - Bag. 1
- Integrasi API OpenAI untuk Membangun Chatbot Interaktif dalam Proyek PHP
- Menginstal Beberapa Versi PHP dalam Satu VM untuk Pengembangan Web yang Lebih Fleksibel
- Integrasi API OpenAI: Completions dalam PHP
- Hosting Static Website with Hugo on Cloud Raya
- Deploying Magento on Cloud Raya
- How to Install CWP in Cloud Raya
- How to Setup Active Directory Domain Service & DNS with Cloud Raya
Integrasi API OpenAI untuk Membangun Chatbot Interaktif dalam Proyek PHP
Tutorial ini membahas implementasi Chats Models dari OpenAI menggunakan PHP sebagai kelanjutan dari artikel sebelumnya yang membahas Completions Models. Kali ini, fokus kita akan beralih ke pembangunan chatbot interaktif dengan menggunakan API OpenAI.
Sebelum melanjutkan, pastikan Anda telah membaca artikel sebelumnya yang membahas langkah-langkah seperti mendaftarkan akun pada OpenAI, menghasilkan API key, dan verifikasi saldo. Karena hal tersebut merupakan pemahaman dasar yang diperlukan sebelum melanjutkan dengan pembahasan ini.
- Pengenalan tentang Chats Models
- Pemilihan Model dan Perbedaan Utama dengan Completions API
- Struktur API Request untuk Chats
- Chats dalam Praktiknya
- Improvisasi lebih lanjut
- Kesimpulan
Pengenalan tentang Chats Models

Sebelum masuk ke detail implementasi, mari kita melakukan recap singkat tentang apa itu jenis tugas Chats. Chats adalah tugas yang memungkinkan kita untuk berinteraksi secara langsung dengan model. Dengan memberikan daftar pesan berupa pertanyaan atau pernyataan, model akan merespons setiap pesan secara berurutan, seolah-olah kita sedang berkomunikasi dengan orang lain. Metode ini berguna jika kita ingin menjalani percakapan yang lebih alami dan dinamis dengan model.
Pemilihan Model dan Perbedaan Utama dengan Completions API

Sesuai dengan dokumentasi OpenAI, untuk Chats Models, digunakan Endpoint https://api.openai.com/v1/chat/completions dengan model standar yang direkomendasikan saat ini, yaitu gpt-3.5-turbo
Sedangkan dalam artikel Completions sebelumnya, digunakan Endpoint https://api.openai.com/v1/completions dengan model standar yang direkomendasikan saat ini, yaitu text-davinci-003
Perbedaan utama antara model Completions dan Chat adalah bahwa model Chat memiliki kemampuan untuk memahami konteks sebelumnya dalam percakapan dan menghasilkan tanggapan yang lebih alami.
Struktur API Request untuk Chats
Berikut ini adalah contoh struktur permintaan API dari Chats Models dengan menggunakan cURL.
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "system", "content": "Anda adalah asisten yang membantu dalam pertanyaan seputar destinasi wisata dengan penuh keramahan."},
{"role": "user", "content": "Hello!"}
],
"temperature": 0.2,
"max_tokens": 512,
"top_p": 0.2,
"frequency_penalty": 0.0,
"presence_penalty": 0.6
}'
Untuk memastikan kesesuaian dengan materi tutorial kita kali ini, mari kita lakukan konversi ke versi PHP terlebih dahulu.
<?php
$openaiApiKey = "YOUR_API_KEY";
$data = array(
"model" => "gpt-3.5-turbo",
"messages" => array(
array("role" => "system", "content" => "Anda adalah asisten yang membantu dalam pertanyaan seputar destinasi wisata dengan penuh keramahan."),
array("role" => "user", "content" => "Hai!")
),
"temperature" => 0.2,
"max_tokens" => 512,
"top_p" => 0.2,
"frequency_penalty" => 0.0,
"presence_penalty" => 0.6
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.openai.com/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer " . $openaiApiKey,
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$result = json_decode($response, true);
$content = $result['choices'][0]['message']['content'];
echo $content;
?>
Tampilan hasil dari sintaks API request tersebut di browser akan terlihat seperti berikut.
Hai! Selamat datang di layanan bantuan destinasi wisata. Ada yang bisa saya bantu?
Beberapa parameter esensial dan opsional tetap tidak berubah, dan Anda dapat mengonfigurasikannya dalam panggilan API Chats ini. Meliputi Model, Temperature, Max Tokens, Top Probability, dan lain-lain, yang juga dapat Anda temukan dalam artikel sebelumnya.
Perbedaannya, pada API Chats, digunakan parameter “messages” sebagai pengganti “prompt” yang digunakan dalam Completions. Dalam API Chats, parameter “messages” juga dapat diatur dalam bentuk array.
Messages sendiri merupakan daftar pesan yang dikirimkan dalam percakapan, di mana setiap pesan memiliki dua field yang dibutuhkan.
- role: peran pengirim pesan (
system
,user
, atauassistant
) - content: isi pesan (misalnya, Tulislah puisi indah untuk saya)
Hal ini yang menjadikan kita bisa melakukan percakapan secara lebih dinamis.
Messages juga dapat mengandung field opsional, yaitu name, yang memberikan nama kepada pengirim pesan. Misalnya, example-user, Alice, BlackbeardBot. Nama tidak boleh mengandung spasi.
Secara umum, cara kerjanya adalah dengan memulai percakapan dengan menyatakan secara jelas pada sistem bagaimana model harus berperilaku (konsep ini hampir sama dengan prompt seperti di Completions sebelumnya), diikuti oleh pesan dari pengguna (user) dan pesan dari asisten (model) yang saling bergantian.
Namun, perlu diingat bahwa gpt-3.5-turbo secara umum tidak memberikan perhatian yang terlalu besar pada pesan sistem seperti yang dilakukan oleh gpt-4. Oleh karena itu, untuk gpt-3.5-turbo disarankan agar instruksi penting ditempatkan dalam pesan dari pengguna.
Chats dalam Praktiknya
Mari kita lihat beberapa contoh lain dari panggilan API Chats untuk melihat bagaimana format Chats berfungsi dalam praktiknya.
- Dalam beberapa kasus, lebih mudah untuk menunjukkan kepada model apa yang kita inginkan daripada memberi tahu model apa yang kita inginkan.
Salah satu cara untuk menunjukkan kepada model apa yang kita inginkan adalah dengan contoh skenario pesan palsu:
<?php
$openaiApiKey = "YOUR_API_KEY";
$data = array(
"model" => "gpt-3.5-turbo",
"messages" => array(
array("role" => "system", "content" => "Kamu adalah asisten yang membantu dan mengikuti pola."),
array("role" => "user", "content" => "Bantu aku menerjemahkan contoh kiasan berikut"),
array("role" => "assistant", "content" => "Tentu, dengan senang hati!"),
array("role" => "user", "content" => "Hatinya lembut seperti?"),
array("role" => "assistant", "content" => "Kapas"),
array("role" => "user", "content" => "Pemikirannya keras seperti?"),
array("role" => "assistant", "content" => "Batu"),
array("role" => "user", "content" => "Tindakannya kasar seperti?")
),
"temperature" => 0.2,
"max_tokens" => 512,
"top_p" => 0.2,
"frequency_penalty" => 0.0,
"presence_penalty" => 0.6
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.openai.com/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer " . $openaiApiKey,
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$result = json_decode($response, true);
$content = $result['choices'][0]['message']['content'];
echo $content;
?>
Tampilan hasil dari sintaks API request tersebut di browser akan terlihat seperti berikut.
Kerikil
- Untuk menjelaskan bahwa pesan-pesan contoh yang diberikan bukanlah bagian dari percakapan nyata, dan tidak boleh digunakan kembali oleh model, kita dapat mencoba mengatur nama pada pesan
system
menjadiuser_contoh
danassistant_contoh
.
<?php
$openaiApiKey = "YOUR_API_KEY";
$data = array(
"model" => "gpt-3.5-turbo",
"messages" => array(
array("role" => "system", "content" => "Kamu adalah asisten yang membantu dan mengikuti pola."),
array("role" => "system", "name" => "user_contoh", "content" => "Bantu aku menerjemahkan contoh kiasan berikut"),
array("role" => "system", "name" => "assistant_contoh", "content" => "Tentu, dengan senang hati!"),
array("role" => "system", "name" => "user_contoh", "content" => "Hatinya lembut seperti?"),
array("role" => "system", "name" => "assistant_contoh", "content" => "Kapas"),
array("role" => "system", "name" => "user_contoh", "content" => "Pemikirannya keras seperti?"),
array("role" => "system", "name" => "assistant_contoh", "content" => "Batu"),
array("role" => "user", "content" => "Tindakannya kasar seperti?")
),
"temperature" => 0.2,
"max_tokens" => 512,
"top_p" => 0.2,
"frequency_penalty" => 0.0,
"presence_penalty" => 0.6
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.openai.com/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer " . $openaiApiKey,
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$result = json_decode($response, true);
$content = $result['choices'][0]['message']['content'];
echo $content;
?>
Tampilan hasil dari sintaks API request tersebut di browser akan terlihat seperti berikut.
Kerikil
Improvisasi lebih lanjut
Dalam contoh-contoh skrip statik tersebut, kita bisa melakukan pengembangan yang lebih lanjut dengan menambahkan field input. Field input ini akan digunakan untuk menerima pesan dari pengguna. Setelah itu, model akan menghasilkan jawaban yang akan ditampilkan sebagai output.
Lebih lanjut lagi, kita dapat mengembangkan model agar dapat menyimpan pertanyaan-pertanyaan yang telah diajukan oleh pengguna selama sesi berlangsung. Dengan demikian, kita bisa melanjutkan pembicaraan dan menanyakan hal-hal yang masih terkait dengan pertanyaan sebelumnya.
Di sini, saya telah membuat sebuah aplikasi PHP sederhana di dalam VM Cloud Raya. Aplikasi akan berfungsi sebagai Trip Advisor, yang memungkinkan pengguna untuk saling berinteraksi dalam meminta rekomendasi destinasi menarik di suatu lokasi, dan tolak pertanyaan apabila tidak berkaitan dengan destinasi wisata.

Kesimpulan
Melalui tutorial ini kami berharap Anda mendapatkan pemahaman yang baik tentang integrasi API OpenAI dengan jenis tugas Chats pada proyek website dengan bahasa pemrograman PHP di dalam VM Cloud Raya.
Dengan metode ini, kita dapat membangun chatbot interaktif dengan menggunakan API OpenAI.
Kunjungi halaman Knowledge Base Cloud Raya untuk tutorial menarik lainnya seputar aktifitas di dalam cloud computing. Atau, jika Anda lebih suka menyimak melalui video, silakan mengunjungi channel Youtube kami.