Model vision (visual) dapat digunakan untuk membaca teks pada screenshot, mengklasifikasikan objek di dalam foto, mengekstraksi tulisan (OCR), hingga tanya jawab mendalam berbasis visual.
POST /v1/chat/completions
Authorization: Bearer YOUR_SECRET_KEY
Content-Type: application/json
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
Anda bisa mengirim lebih dari satu gambar secara bersamaan di dalam satu request. Sangat direkomendasikan untuk menaruh blok instruksi teks terlebih dahulu sebelum blok gambarnya.
messages[].content[].user yang berisi tipe konten campuran.image_url ke dalam array tersebut.Contoh format Base64:
data:image/jpeg;base64,<BASE64_DATA>
image/pngimage/jpegimage/webpimage/gifcurl -X POST "https://api.lunos.tech/v1/chat/completions" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Tolong ekstrak semua nama produk beserta harganya yang terlihat di gambar." },
{ "type": "image_url", "image_url": { "url": "https://example.com/menu.png" } }
]
}
]
}'
import requests
response = requests.post(
"https://api.lunos.tech/v1/chat/completions",
headers={
"Authorization": "Bearer YOUR_SECRET_KEY",
"Content-Type": "application/json",
},
json={
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Tolong ekstrak semua nama produk beserta harganya yang terlihat di gambar."},
{"type": "image_url", "image_url": {"url": "https://example.com/menu.png"}},
],
}
],
},
)
print(response.json())
const response = await fetch("https://api.lunos.tech/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_SECRET_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "google/gemini-2.5-flash",
messages: [
{
role: "user",
content: [
{ type: "text", text: "Tolong ekstrak semua nama produk beserta harganya yang terlihat di gambar." },
{ type: "image_url", image_url: { url: "https://example.com/menu.png" } },
],
},
],
}),
});
console.log(await response.json());
curl -X POST "https://api.lunos.tech/v1/chat/completions" \
-H "Authorization: Bearer YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Tolong bandingkan kedua gambar ini lalu jelaskan apa saja perbedaannya secara rinci." },
{ "type": "image_url", "image_url": { "url": "https://example.com/before.jpg" } },
{ "type": "image_url", "image_url": { "url": "https://example.com/after.jpg" } }
]
}
]
}'
import requests
payload = {
"model": "google/gemini-2.5-flash",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Tolong bandingkan kedua gambar ini lalu jelaskan apa saja perbedaannya secara rinci."},
{"type": "image_url", "image_url": {"url": "https://example.com/before.jpg"}},
{"type": "image_url", "image_url": {"url": "https://example.com/after.jpg"}},
],
}
],
}
response = requests.post(
"https://api.lunos.tech/v1/chat/completions",
headers={
"Authorization": "Bearer YOUR_SECRET_KEY",
"Content-Type": "application/json",
},
json=payload,
)
print(response.json())
const payload = {
model: "google/gemini-2.5-flash",
messages: [
{
role: "user",
content: [
{ type: "text", text: "Tolong bandingkan kedua gambar ini lalu jelaskan apa saja perbedaannya secara rinci." },
{ type: "image_url", image_url: { url: "https://example.com/before.jpg" } },
{ type: "image_url", image_url: { url: "https://example.com/after.jpg" } },
],
},
],
};
const response = await fetch("https://api.lunos.tech/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_SECRET_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
console.log(await response.json());
Lunos masih dapat menerima format penulisan properti image_url maupun imageUrl, namun format kanonis (canonical) standarnya adalah:
{ "type": "image_url", "image_url": { "url": "..." } }
image di atribut inputModalities.Tidak ada judul di halaman ini.
