Lewati ke konten utama

Menggunakan GPT-3.5 dan GPT-4 melalui OpenAI API di Python

Dalam tutorial ini, Anda akan mempelajari cara menggunakan paket Python OpenAI untuk melakukan percakapan secara terprogram dengan ChatGPT.
Diperbarui 28 Sep 2026  · 14 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

ChatGPT adalah model bahasa besar mutakhir untuk menghasilkan teks. Ini sudah mengubah cara kita menulis hampir semua jenis teks, dari tutorial seperti ini, hingga deskripsi produk yang dihasilkan otomatis, hasil mesin pencari Bing, dan puluhan kasus penggunaan data seperti yang dijelaskan dalam lembar contekan ChatGPT untuk Data Science.

Untuk penggunaan interaktif, antarmuka web ChatGPT sangat ideal. Namun, OpenAI (perusahaan di balik ChatGPT) juga memiliki application programming interface (API) yang memungkinkan Anda berinteraksi dengan ChatGPT dan model mereka lainnya menggunakan kode.

Dalam tutorial ini, Anda akan mempelajari cara menggunakan paket Python openai untuk melakukan percakapan secara terprogram dengan ChatGPT.

Perhatikan bahwa OpenAI mengenakan biaya untuk menggunakan GPT API. (Kredit gratis kadang-kadang diberikan kepada pengguna baru, tetapi siapa yang mendapat kredit dan berapa lama penawaran ini akan berlangsung tidak transparan.) Biayanya $0,002 / 1000 token, di mana 1000 token setara dengan sekitar 750 kata. Menjalankan semua contoh dalam tutorial ini satu kali seharusnya berbiaya kurang dari 2 sen AS (tetapi jika Anda menjalankan ulang tugas, Anda akan dikenakan biaya setiap kali).

Kapan Sebaiknya Menggunakan API Alih-alih Antarmuka Web?

Aplikasi web ChatGPT adalah antarmuka yang sangat baik untuk model GPT. Namun, jika Anda ingin menyertakan AI ke dalam pipeline data atau perangkat lunak, API lebih tepat. Beberapa kemungkinan kasus penggunaan untuk praktisi data mencakup:

  • Mengambil data dari basis data atau API lain, lalu meminta GPT merangkumnya atau menghasilkan laporan tentangnya
  • Menyematkan fungsionalitas GPT dalam dasbor untuk secara otomatis memberikan ringkasan teks atas hasil
  • Menyediakan antarmuka bahasa alami ke data mart Anda
  • Melakukan riset dengan menarik makalah jurnal melalui paket scholarly (PyPI, Conda), dan meminta GPT merangkum hasilnya

Menyiapkan Akun Pengembang OpenAI

Untuk menggunakan API, Anda perlu membuat akun pengembang di OpenAI. Anda perlu menyiapkan alamat email, nomor telepon, dan detail kartu debit atau kredit Anda.

Ikuti langkah-langkah berikut:

  1. Buka halaman pendaftaran API.
  2. Buat akun Anda (Anda perlu memberikan alamat email dan nomor telepon).
  3. Buka halaman API keys.
  4. Buat secret key baru.
  5. Simpan salinan kunci ini. (Jika Anda kehilangannya, hapus kunci tersebut dan buat yang baru.)
  6. Buka halaman Payment Methods.
  7. Klik 'Add payment method' dan isi detail kartu Anda.

Menyimpan Kredensial Akun Anda dengan Aman

Secret key harus dijaga kerahasiaannya! Jika tidak, orang lain dapat menggunakannya untuk mengakses API, dan Anda yang akan menanggung biayanya. Langkah-langkah berikut menjelaskan cara menyimpan kunci Anda dengan aman di DataLab, notebook data bertenaga AI milik DataCamp. Jika Anda menggunakan platform lain, silakan periksa dokumentasi untuk platform tersebut. Anda juga dapat meminta saran kepada ChatGPT. Berikut prompt yang disarankan:

> Anda adalah pakar keamanan TI. Anda berbicara kepada seorang data scientist. Jelaskan praktik terbaik untuk menyimpan private key yang digunakan untuk akses API secara aman.

  1. Di workbook DataLab Anda, klik "Environment"
  2. Klik tanda plus di samping "Environment"
  3. Di kolom "Name", ketik "OPENAI". Di kolom "Value", tempelkan secret key Anda
  4. Berikan nama untuk sekumpulan variabel lingkungan (bebas, apa saja)
  5. Klik "Create", dan hubungkan integrasi baru tersebut

Menyiapkan Python

Untuk menggunakan GPT melalui API, Anda perlu mengimpor paket Python os dan openai.

Jika Anda menggunakan solusi Jupyter Notebook (seperti DataLab), akan berguna juga mengimpor beberapa fungsi dari IPython.display.

Salah satu contoh juga menggunakan paket yfinance untuk mengambil harga saham.

# Import the os package
import os

# Import the openai package
import openai

# From the IPython.display package, import display and Markdown
from IPython.display import display, Markdown

# Import yfinance as yf
import yfinance as yf

Tugas penyiapan lainnya adalah menempatkan variabel lingkungan yang baru saja Anda buat di lokasi yang dapat dilihat oleh paket openai.

# Set openai.api_key to the OPENAI environment variable
openai.api_key = os.environ["OPENAI"]

Pola Kode untuk Memanggil GPT melalui API

Pola kode untuk memanggil OpenAI API dan mendapatkan respons chat adalah sebagai berikut:

response = openai.ChatCompletion.create(
              model="MODEL_NAME",
              messages=[{"role": "system", "content": 'SPECIFY HOW THE AI ASSISTANT SHOULD BEHAVE'},
                        {"role": "user", "content": 'SPECIFY WANT YOU WANT THE AI ASSISTANT TO SAY'}
              ])

Ada beberapa hal yang perlu dibahas di sini.

Nama model OpenAI API untuk GPT

Nama model tercantum di halaman Model Overview pada dokumentasi pengembang. Dalam tutorial ini, Anda akan menggunakan gpt-3.5-turbo, yaitu model terbaru yang digunakan oleh ChatGPT dan memiliki akses API publik. (Ketika tersedia secara luas, Anda akan ingin beralih ke gpt-4.)

Tipe pesan GPT pada OpenAI API

Ada tiga tipe pesan yang didokumentasikan dalam dokumentasi Introduction to the Chat:

  • Pesan system menggambarkan perilaku asisten AI. Pesan sistem yang berguna untuk kasus penggunaan data science adalah "You are a helpful assistant who understands data science."
  • Pesan user menjelaskan apa yang Anda ingin asisten AI katakan. Kita akan membahas contoh pesan pengguna sepanjang tutorial ini
  • Pesan assistant menggambarkan respons sebelumnya dalam percakapan. Kita akan membahas cara melakukan percakapan interaktif pada tugas-tugas selanjutnya

Pesan pertama sebaiknya berupa pesan sistem. Pesan tambahan harus bergantian antara pengguna dan asisten.

Percakapan Pertama Anda: Menghasilkan Dataset

Menghasilkan dataset contoh berguna untuk menguji kode Anda terhadap berbagai skenario data atau untuk mendemonstrasikan kode kepada orang lain. Untuk mendapatkan respons yang berguna dari GPT, Anda perlu presisi dan menentukan detail dataset Anda, termasuk:

  • jumlah baris dan kolom
  • nama kolom
  • deskripsi tentang isi setiap kolom
  • format keluaran dataset

Berikut contoh pesan pengguna untuk membuat dataset.

Create a small dataset about total sales over the last year. 
The format of the dataset should be a data frame with 12 rows and 2 columns. 
The columns should be called "month" and "total_sales_usd". 
The "month" column should contain the shortened forms of month names 
from "Jan" to "Dec". The "total_sales_usd" column should 
contain random numeric values taken from a normal distribution 
with mean 100000 and standard deviation 5000. Provide Python code to 
generate the dataset, then provide the output in the format of a markdown table.

Mari sertakan pesan ini dalam pola kode sebelumnya.

# Define the system message
system_msg = 'You are a helpful assistant who understands data science.'

# Define the user message
user_msg = 'Create a small dataset about total sales over the last year. The format of the dataset should be a data frame with 12 rows and 2 columns. The columns should be called "month" and "total_sales_usd". The "month" column should contain the shortened forms of month names from "Jan" to "Dec". The "total_sales_usd" column should contain random numeric values taken from a normal distribution with mean 100000 and standard deviation 5000. Provide Python code to generate the dataset, then provide the output in the format of a markdown table.'

# Create a dataset using GPT
response = openai.ChatCompletion.create(model="gpt-3.5-turbo",
                                        messages=[{"role": "system", "content": system_msg},
                                         {"role": "user", "content": user_msg}])

Periksa apakah respons dari GPT OK

Panggilan API itu "berisiko" karena masalah dapat terjadi di luar notebook Anda, seperti masalah konektivitas internet, atau masalah dengan server yang mengirimkan data, atau karena Anda kehabisan kredit API. Anda harus memeriksa bahwa respons yang Anda dapatkan OK.

Model GPT mengembalikan kode status dengan salah satu dari empat nilai, yang didokumentasikan dalam bagian Response format pada dokumentasi Chat.

  • stop: API mengembalikan keluaran model yang lengkap
  • length: Keluaran model tidak lengkap karena parameter max_tokens atau batas token
  • content_filter: Konten dihilangkan karena ditandai oleh filter konten kami
  • null: Respons API masih berlangsung atau tidak lengkap

GPT API mengirimkan data ke Python dalam format JSON, sehingga variabel respons berisi daftar dan kamus yang bertingkat dalam. Cukup merepotkan untuk dikerjakan!

Untuk variabel respons bernama response, kode status disimpan di lokasi berikut.

response["choices"][0]["finish_reason"]

Ekstrak pesan asisten AI

Tersembunyi di dalam variabel respons adalah teks yang kita minta GPT untuk hasilkan. Untungnya, selalu berada di tempat yang sama.

response["choices"][0]["message"]["content"]

Konten respons dapat dicetak seperti biasa dengan print(content), tetapi itu adalah konten Markdown, yang dapat dirender oleh Jupyter notebook melalui display(Markdown(content))

Here's the Python code to generate the dataset:

import numpy as np
import pandas as pd
# Set random seed for reproducibility
np.random.seed(42)
# Generate random sales data
sales_data = np.random.normal(loc=100000, scale=5000, size=12)
# Create month abbreviation list
month_abbr = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
# Create dataframe
sales_df = pd.DataFrame({'month': month_abbr, 'total_sales_usd': sales_data})
# Print dataframe
print(sales_df)

And here's the output in markdown format:

| month | total_sales_usd |

|-------|----------------|

| Jan | 98728.961189 |

| Feb | 106931.030292 |

| Mar | 101599.514152 |

| Apr | 97644.534384 |

| May | 103013.191014 |

| Jun | 102781.514665 |

| Jul | 100157.741173 |

| Aug | 104849.281004 |

| Sep | 100007.081991 |

| Oct | 94080.272682 |

| Nov | 96240.993328 |

| Dec | 104719.371461 |

Gunakan Fungsi Helper untuk memanggil GPT

Anda perlu menulis banyak kode boilerplate berulang untuk melakukan tiga hal sederhana ini. Memiliki fungsi pembungkus untuk mengabstraksi bagian yang membosankan akan berguna. Dengan begitu, kita bisa fokus pada kasus penggunaan data science.

Semoga, OpenAI akan meningkatkan antarmuka paket Python mereka sehingga hal semacam ini menjadi bawaan. Sementara itu, silakan gunakan ini dalam kode Anda sendiri.

Fungsi ini menerima dua argumen.

  • system: String yang berisi pesan sistem.
  • user_assistant: Array string yang bergantian antara pesan pengguna lalu pesan asisten.

Nilai kembalian adalah konten yang dihasilkan.

def chat(system, user_assistant):
  assert isinstance(system, str), "`system` should be a string"
  assert isinstance(user_assistant, list), "`user_assistant` should be a list"
  system_msg = [{"role": "system", "content": system}]
  user_assistant_msgs = [
      {"role": "assistant", "content": user_assistant[i]} if i % 2 else {"role": "user", "content": user_assistant[i]}
      for i in range(len(user_assistant))]

  msgs = system_msg + user_assistant_msgs
  response = openai.ChatCompletion.create(model="gpt-3.5-turbo",
                                          messages=msgs)
  status_code = response["choices"][0]["finish_reason"]
  assert status_code == "stop", f"The status code was {status_code}."
  return response["choices"][0]["message"]["content"]

Contoh penggunaan fungsi ini adalah

response_fn_test = chat("You are a machine learning expert.",["Explain what a neural network is."])

display(Markdown(response_fn_test))
A neural network is a type of machine learning model that is inspired by the architecture of the human brain. It consists of layers of interconnected processing units, called neurons, that work together to process and analyze data.

Each neuron receives input from other neurons or from external sources, processes that input using a mathematical function, and then produces an output that is passed on to other neurons in the network.

The structure and behavior of a neural network can be adjusted by changing the weights and biases of the connections between neurons. During the training process, the network learns to recognize patterns and make predictions based on the input it receives.

Neural networks are often used for tasks such as image classification, speech recognition, and natural language processing, and have been shown to be highly effective at solving complex problems that are difficult to solve with traditional rule-based programming methods.

Menggunakan Kembali Respons dari Asisten AI

Dalam banyak situasi, Anda akan ingin membentuk percakapan yang lebih panjang dengan AI. Artinya, Anda mengirim prompt ke GPT, mendapatkan respons, dan mengirim prompt lain untuk melanjutkan chat. Dalam hal ini, Anda perlu menyertakan respons sebelumnya dari GPT dalam pemanggilan API kedua, agar GPT memiliki konteks lengkap. Ini akan meningkatkan akurasi respons dan meningkatkan konsistensi sepanjang percakapan.

Untuk menggunakan kembali pesan GPT, Anda mengambilnya dari respons, lalu meneruskannya ke pemanggilan chat yang baru.

Contoh: Menganalisis dataset sampel

Mari coba menghitung mean dari kolom penjualan pada dataset yang sebelumnya dihasilkan. Perhatikan bahwa karena kita tidak menggunakan fungsi chat() pada saat pertama, kita harus menggunakan kode subset yang lebih panjang untuk mengambil teks respons sebelumnya. Jika Anda menggunakan chat(), kodenya lebih sederhana.

# Assign the content from the response in Task 1 to assistant_msg
assistant_msg = response["choices"][0]["message"]["content"]

# Define a new user message
user_msg2 = 'Using the dataset you just created, write code to calculate the mean of the `total_sales_usd` column. Also include the result of the calculation.'

# Create an array of user and assistant messages
user_assistant_msgs = [user_msg, assistant_msg, user_msg2]

# Get GPT to perform the request
response_calc = chat(system_msg, user_assistant_msgs)

# Display the generated content
display(Markdown(response_calc))
Sure! Here's the code to calculate the mean of the `total_sales_usd` column: 

```python 
mean_sales = sales_df['total_sales_usd'].mean() 
print("Mean sales: $", round(mean_sales, 2)) 
``` 

And here's the output of this code: 

``` 
Mean sales: $ 100077.57 
``` 

Therefore, the mean of total sales over the last year is about $100,077.57. 

Menggunakan GPT dalam Pipeline

Keunggulan besar menggunakan API dibandingkan antarmuka web adalah Anda dapat mengombinasikan GPT dengan API lainnya. Mengambil data dari satu atau lebih sumber, lalu menerapkan AI padanya adalah alur kerja yang kuat.

Menerapkan AI GPT pada data cuaca

Di sini, kita akan mengambil prakiraan cuaca dengan paket weather2 (PyPI) dan menggunakan GPT untuk menghasilkan ide aktivitas.

# Import the weather2 package
import weather

# Get the forecast for Miami
location = "Miami"
forecast = weather.forecast(location)

# Pull out forecast data for midday tomorrow
fcast = forecast.tomorrow["12:00"]

# Create a prompt
user_msg_weather = f"In {location} at midday tomorrow, the temperature is forecast to be {fcast.temp}, the wind speed is forecast to be {fcast.wind.speed} m/s, and the amount of precipitation is forecast to be {fcast.precip}. Make a list of suitable leisure activities."

# Call GPT
response_activities = chat("You are a travel guide.", [user_msg_weather])

display(Markdown(response_activities))
With mild temperatures and calm winds, Miami is the perfect place for leisure activities. Here are some suggestions:

1. Visit Miami's beaches and soak up some sun or take a dip in the ocean!

2. Explore Miami's art scene with a visit to the Perez Art Museum Miami or the Wynwood Walls.

3. Take a stroll along the famous Ocean Drive and enjoy the colorful Art Deco architecture.

4. Head to Little Havana to experience the Cuban culture and delicious cuisine.

5. Enjoy a scenic walk or bike ride through one of Miami's many parks, such as Bayfront Park or South Pointe Park.

6. Visit the Miami Seaquarium and see some incredible marine life up close.

7. Take a boat tour to see the stunning Miami skyline from the water.

8. Shopping enthusiasts can explore the many high-end boutiques and outdoor shopping malls, such as Lincoln Road Mall.

9. Foodies can venture to one of the many food festivals happening throughout the year.

10. Finally, there are plenty of nightclubs and live music venues to keep the night going.

Bagus! Sebagian dari diri saya berharap saya berada di Miami besok!

Naik ke Level Berikutnya

Anda dapat mempelajari lebih lanjut tentang penggunaan GPT di kursus Introduction to ChatGPT. (Kursus lengkap tentang bekerja dengan OpenAI API akan segera hadir!)

Sebagai referensi atas apa yang baru saja Anda pelajari, ambil salinan Lembar Contekan OpenAI API di Python atau tonton rekaman pelatihan langsung Getting Started with the OpenAI API and ChatGPT.

Jika Anda tertarik pada transkripsi text-to-speech, baca tutorial Mengonversi Ucapan ke Teks dengan OpenAI Whisper API.

Topik
Kecerdasan Buatan
Python

Kursus Python Teratas

Kursus

Pengantar Python

4 jam
7.1M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

Lihat SelengkapnyaLihat Selengkapnya