1. Pengenalan tentang Model GPT-4 Vision
Model GPT-4 Vision (GPT-4V) adalah model kecerdasan buatan multimodal yang diperkenalkan oleh OpenAI, yang mengintegrasikan kemampuan pemahaman visual berdasarkan GPT-4. Berbeda dengan model pemrosesan teks tradisional, GPT-4V dapat menerima dan menganalisis konten gambar, memberikan deskripsi, menjawab pertanyaan, dan berinteraksi terkait dengan gambar.
Contoh Aplikasi:
- Pengenalan dan Klasifikasi Produk: Platform e-commerce dapat menggunakan GPT-4V untuk mengidentifikasi dan memberikan deskripsi untuk gambar produk, membantu meningkatkan sistem pencarian dan rekomendasi.
- Membantu Keputusan Medis: Meskipun GPT-4V tidak cocok untuk diagnosis gambar medis profesional langsung, tetapi dapat membantu personel medis dalam pemahaman awal gambar dan organisasi data.
- Pendidikan dan Riset: Dalam mengajar dan penelitian ilmiah, GPT-4V dapat digunakan untuk menganalisis grafik, hasil eksperimen, dan secara otomatis menginterpretasi data gambar ilmiah.
- Monitoring dan Analisis Lalu Lintas: Dengan menganalisis gambar pengawasan lalu lintas, GPT-4V dapat membantu sistem manajemen lalu lintas dalam pelaporan kondisi real-time dan identifikasi kecelakaan.
2. Contoh Sederhana
Berikut adalah contoh sederhana menggunakan permintaan CURL untuk menunjukkan cara menggunakan model GPT-4 Vision untuk menganalisis gambar:
Parameter Permintaan API:
-
model
: Menentukan versi model yang akan digunakan, dalam hal ini "gpt-4-vision-preview". -
messages
: Berisi definisi peran dan konten, di mana konten dapat mencakup teks dan tautan gambar. -
max_tokens
: Menentukan batas panjang maksimum untuk menghasilkan teks.
Contoh Permintaan CURL:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Apa yang ada di dalam gambar ini?"
},
{
"type": "image_url",
"image_url": {
"url": "Tautan Gambar Anda"
}
}
]
}
],
"max_tokens": 300
}'
Dengan permintaan di atas, kami mengirimkan gambar ke model GPT-4 Vision dan bertanya: "Apa yang ada di dalam gambar ini?" Model akan menganalisis konten gambar dan memberikan jawaban berdasarkan konten gambar.
3. Mengunggah Gambar dengan Menggunakan Base64 Encoding
Dalam beberapa kasus, Anda mungkin perlu mengunggah file gambar lokal ke model GPT-4 Vision. Di dalam kasus ini, kita dapat menyematkan data gambar ke dalam permintaan API menggunakan base64 encoding.
Contoh Kode Python:
import base64
import requests
api_key = "YOUR_OPENAI_API_KEY"
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
image_path = "path_to_your_image.jpg"
base64_image = encode_image(image_path)
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
payload = {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Apa yang ada di dalam gambar ini?"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
"max_tokens": 300
}
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
print(response.json())
Pada kode di atas, pertama kami mengonversi file gambar lokal menjadi string terenkripsi base64, dan kemudian mengirimkan string ini sebagai bagian dari permintaan ke API. Respon model berisi deskripsi konten gambar.
4. Menangani Masukan Multiple Gambar
Kadang-kadang perlu untuk menganalisis beberapa gambar sekaligus. Model GPT-4 Vision mendukung menerima multiple input gambar secara bersamaan dan memungkinkan pengguna untuk bertanya tentang gambar-gambar ini atau membandingkan perbedaannya.
Contoh Input Gambar Ganda:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Apa yang berbeda dari kedua gambar ini?"
},
{
"type": "image_url",
"image_url": {
"url": "URL dari gambar pertama",
}
},
{
"type": "image_url",
"image_url": {
"url": "URL dari gambar kedua",
}
}
]
}
],
"max_tokens": 300
}'
Pada permintaan ini, kita mengirimkan dua gambar ke API. Model akan menganalisis setiap gambar secara terpisah dan memberikan deskripsi serta perbandingan berdasarkan pertanyaan yang diajukan. Pendekatan ini ideal untuk analisis keseluruhan koleksi gambar.
5. Mengatur Tingkat Detail Analisis Gambar
Ketika menggunakan model visual GPT-4 untuk analisis gambar, Anda dapat mengatur tingkat detail sesuai kebutuhan Anda. Dengan menyesuaikan parameter detail
, Anda dapat memilih salah satu dari rendah
, tinggi
, atau otomatis
. Berikut adalah penjelasan rinci dari setiap pilihan dan cara mengaturnya:
-
rendah
: Memilih tingkat detail rendah akan menonaktifkan model "resolusi tinggi". Model ini akan menerima versi gambar resolusi rendah dengan ukuran 512 piksel x 512 piksel dan menggunakan anggaran 65 token untuk merepresentasikan gambar. Ini cocok untuk skenario yang tidak memerlukan detail tinggi, membantu mencapai waktu respons yang lebih cepat dan mengonsumsi lebih sedikit token input. -
tinggi
: Tingkat detail tinggi memungkinkan model untuk pertama-tama melihat gambar resolusi rendah, dan kemudian membuat versi potongan yang detail dalam kisi 512 piksel berdasarkan ukuran gambar masukan. Setiap potongan detail diwakili dengan anggaran yang dilipatgandakan sebesar 129 token (yaitu 65 token per potongan default). -
otomatis
: Tingkat detail otomatis akan menentukan apakah akan menggunakan tingkat detailrendah
atautinggi
berdasarkan ukuran gambar masukan.
Berikut adalah contoh kode untuk mengatur tingkat detail:
import base64
import requests
api_key = "kunci_API_OPENAI_ANDA"
path_gambar = "lokasi_gambar_anda.jpg"
base64_gambar = base64.b64encode(open(path_gambar, "rb").read()).decode('utf-8')
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
payload = {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Apa yang ada di gambar ini?"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_gambar}",
"detail": "tinggi" # Diatur ke tingkat detail tinggi
}
}
]
}
],
"max_tokens": 300
}
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
print(response.json())
6. Memahami Batasan Model dan Mengelola Gambar
6.1. Batasan Model
Meskipun fungsionalitas yang kuat dari model visual GPT-4, model ini tidaklah tanpa batasan, dan memahami batasan-batasan ini sangat penting untuk menggunakannya untuk pemahaman gambar. Berikut adalah gambaran umum tentang beberapa batasan yang diketahui:
-
Gambar Medis: Model ini tidak cocok untuk menginterpretasikan gambar medis profesional, seperti CT scan, dan sebaiknya tidak digunakan untuk saran medis.
-
Teks Non-Inggris: Model mungkin tidak berkinerja baik saat memproses gambar yang mengandung teks alfabet non-Latin, seperti bahasa Jepang atau Korea.
-
Lokalisasi Spasial: Kinerja model ini suboptimal dalam tugas yang membutuhkan asosiasi lokasi spasial yang tepat, seperti mengidentifikasi posisi potongan pada papan catur.
-
Detail Gambar: Model mungkin mengalami kesulitan untuk memahami grafik atau teks dengan variasi warna dan gaya (misalnya, garis solid, garis putus-putus) dalam sebuah gambar.
-
Rotasi Gambar: Model mungkin salah mengartikan teks dan gambar yang miring atau terbalik.
6.2 Mengelola Gambar dalam Sesi
Karena API Lengkap Percakapan bersifat stateless, Anda perlu mengelola pesan (termasuk gambar) yang dilewatkan ke model sendiri. Jika Anda ingin menggunakan gambar yang sama berkali-kali, Anda perlu mengirim ulang data gambar pada setiap permintaan API.
additional_payload = {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Berdasarkan gambar ini, apa rekomendasi yang Anda miliki?"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
"max_tokens": 300
}
new_response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=additional_payload)
print(new_response.json())
7. Perhitungan Biaya
Setiap penggunaan gambar dengan opsi detail: low
akan mengonsumsi 85 token tetap. Untuk gambar dengan opsi detail: high
, gambar pertama kali diubah ukurannya secara proporsional agar sesuai dengan ukuran 2048px x 2048px, dan kemudian sisi terpendek dari gambar dibuat menjadi 768px. Gambar kemudian dibagi menjadi beberapa 512px persegi, di mana setiap persegi akan mengonsumsi 170 token, dan 85 token tambahan ditambahkan ke total akhir.
Sebagai contoh, jika sebuah gambar memiliki dimensi 1024px x 1024px dan opsi detail: high
dipilih, biaya tokennya akan:
- Pertama, karena 1024 kurang dari 2048, tidak ada penyesuaian ukuran awal.
- Kemudian, dengan sisi terpendek menjadi 1024, gambar diubah ukurannya menjadi 768 x 768.
- 4 persegi 512px diperlukan untuk merepresentasikan gambar, sehingga biaya token akhirnya akan menjadi 170 * 4 + 85 = 765.
Untuk pemahaman yang lebih detail tentang metode perhitungan biaya, silakan lihat dokumentasi untuk model GPT-4 Vision.
8. Pertanyaan yang Sering Diajukan
Di bawah ini adalah beberapa pertanyaan umum dan jawabannya yang mungkin dihadapi pengguna saat menggunakan model GPT-4 Vision:
T: Bisakah saya menyempurnakan kemampuan gambar dari gpt-4
?
J: Saat ini, kami tidak mendukung penyempurnaan kemampuan gambar dari gpt-4
.
T: Bisakah saya menggunakan gpt-4
untuk menghasilkan gambar?
J: Tidak, Anda dapat menggunakan dall-e-3
untuk menghasilkan gambar dan menggunakan gpt-4-vision-preview
untuk memahami gambar.
T: Jenis unggahan file apa yang didukung?
J: Saat ini kami mendukung file PNG (.png), JPEG (.jpeg dan .jpg), WEBP (.webp), dan file GIF non-animasi (.gif).