# GPT 6 Luna API Referensi API lengkap untuk model bahasa besar GPT 6 Luna dari OpenAI. ## Varian Model API ini mendukung empat varian model: | Model | ID | Deskripsi | |-------|----|-------------| | **GPT 6 Luna Text to Text** | `gpt-6-luna-text-to-text` | Penalaran dan penulisan teks untuk keperluan umum | | **GPT 6 Luna Image to Text** | `gpt-6-luna-image-to-text` | Pemahaman gambar dengan instruksi teks | | **GPT 6 Luna Web Search** | `gpt-6-luna-web-search` | Alur kerja LLM teks dengan kemampuan pencarian web | | **GPT 6 Luna File Analysis** | `gpt-6-luna-file-analysis` | Analisis berkas dengan instruksi teks | ## Perbandingan Singkat | Fitur | Teks ke Teks | Gambar ke Teks | Pencarian Web | Analisis Berkas | |---------|--------------|---------------|------------|---------------| | Masukan teks | Wajib ✅ | Opsional | Wajib ✅ | Opsional | | Masukan gambar | Tidak didukung ❌ | Opsional | Opsional | Opsional | | Masukan berkas | Tidak didukung ❌ | Tidak didukung ❌ | Opsional | Opsional | | Respons streaming | SSE | SSE | SSE | SSE | | `max_tokens` | Opsional | Opsional | Opsional | Opsional | ## GPT 6 Luna Text to Text ### Titik Akhir ```http POST /api/v1/chat/completions ``` ### Parameter Permintaan #### Wajib | Parameter | Tipe | Deskripsi | |-----------|------|-------------| | `model` | string | Harus berupa `"gpt-6-luna-text-to-text"` | | `messages` | array | Pesan yang diurutkan. Lihat LLM API untuk struktur pesan. | | `stream` | boolean | `true` untuk SSE, `false` untuk satu respons JSON. | #### Dukungan Isi Pesan | Kolom | Teks | Berkas | Gambar | |-------|------|------|-------| | `messages` | Wajib ✅ | Tidak didukung ❌ | Tidak didukung ❌ | #### Opsional | Parameter | Tipe | Rentang | Deskripsi | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Jumlah maksimum token keluaran. Tidak ada batas maksimum bawaan. | ### Contoh Permintaan ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-6-luna-text-to-text', messages: [ { role: 'user', content: 'Write a short launch announcement for a new AI feature.' } ], stream: true, max_tokens: 2048 }) }); ``` ## GPT 6 Luna Image to Text ### Titik Akhir ```http POST /api/v1/chat/completions ``` ### Parameter Permintaan #### Wajib | Parameter | Tipe | Deskripsi | |-----------|------|-------------| | `model` | string | Harus berupa `"gpt-6-luna-image-to-text"` | | `messages` | array | Pesan yang diurutkan. Lihat LLM API dan Lampiran Pesan. | | `stream` | boolean | `true` untuk SSE, `false` untuk satu respons JSON. | #### Dukungan Isi Pesan | Kolom | Teks | Berkas | Gambar | |-------|------|------|-------| | `messages` | Opsional | Tidak didukung ❌ | Opsional | #### Opsional | Parameter | Tipe | Rentang | Deskripsi | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Jumlah maksimum token keluaran. Tidak ada batas maksimum bawaan. | ### Contoh Permintaan ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-6-luna-image-to-text', messages: [ { role: 'user', content: [ { type: 'text', text: 'Describe the image and extract any visible text.' }, { type: 'image_url', image_url: { url: 'https://example.com/sample-image.jpg' } } ] } ], stream: true, max_tokens: 2048 }) }); ``` ## GPT 6 Luna Web Search ### Titik Akhir ```http POST /api/v1/chat/completions ``` ### Parameter Permintaan #### Wajib | Parameter | Tipe | Deskripsi | |-----------|------|-------------| | `model` | string | Harus berupa `"gpt-6-luna-web-search"` | | `messages` | array | Pesan yang diurutkan. Lihat LLM API dan Lampiran Pesan. | | `stream` | boolean | `true` untuk SSE, `false` untuk satu respons JSON. | #### Dukungan Isi Pesan | Kolom | Teks | Berkas | Gambar | |-------|------|------|-------| | `messages` | Wajib ✅ | Opsional | Opsional | #### Opsional | Parameter | Tipe | Rentang | Deskripsi | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Jumlah maksimum token keluaran. Tidak ada batas maksimum bawaan. | ### Contoh Permintaan ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-6-luna-web-search', messages: [ { role: 'user', content: 'Find recent product launch trends in AI developer tools.' } ], stream: true, max_tokens: 2048 }) }); ``` ## GPT 6 Luna File Analysis ### Titik Akhir ```http POST /api/v1/chat/completions ``` ### Parameter Permintaan #### Wajib | Parameter | Tipe | Deskripsi | |-----------|------|-------------| | `model` | string | Harus berupa `"gpt-6-luna-file-analysis"` | | `messages` | array | Pesan yang diurutkan. Lihat LLM API dan Lampiran Pesan. | | `stream` | boolean | `true` untuk SSE, `false` untuk satu respons JSON. | #### Dukungan Isi Pesan | Kolom | Teks | Berkas | Gambar | |-------|------|------|-------| | `messages` | Opsional | Opsional | Opsional | #### Opsional | Parameter | Tipe | Rentang | Deskripsi | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Jumlah maksimum token keluaran. Tidak ada batas maksimum bawaan. | ### Contoh Permintaan ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'gpt-6-luna-file-analysis', messages: [ { role: 'user', content: [ { type: 'text', text: 'Summarize this document and list the key action items.' }, { type: 'file', file: { filename: 'demo.pdf', file_data: 'https://example.com/demo.pdf' } } ] } ], stream: true, max_tokens: 2048 }) }); ``` ## Format Respons Model bahasa besar GPT 6 Luna mengembalikan respons penyelesaian yang kompatibel dengan OpenAI. Dengan `stream: true`, respons berupa peristiwa yang dikirim server; dengan `stream: false`, respons berupa satu objek JSON. ### Respons Berhasil ```text data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-6-luna-image-to-text","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-6-luna-image-to-text","choices":[{"index":0,"delta":{"content":"The image shows"},"finish_reason":null}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-6-luna-image-to-text","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"gpt-6-luna-image-to-text","choices":[],"usage":{"prompt_tokens":12,"completion_tokens":8,"total_tokens":20}} data: [DONE] ``` ### Respons Kesalahan ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## Praktik Terbaik 1. **Pertahankan struktur pesan:** Gunakan `messages[]` untuk riwayat percakapan, alih-alih menggabungkan konteks menjadi satu prompt. 2. **Lampirkan berkas dan gambar pada pesan:** Tempatkan bagian `image_url` dan `file` di dalam pesan yang memperkenalkannya. 3. **Gunakan penguraian SSE:** Tambahkan `choices[0].delta.content` untuk menampilkan konten secara bertahap dan anggap `data: [DONE]` sebagai tanda penyelesaian yang berhasil. 4. **Kirim hanya masukan yang didukung:** Sesuaikan bagian teks, gambar, dan berkas dengan varian model yang dipilih. 5. **Simpan status permintaan secara lokal:** Potongan data menyertakan `id` penyelesaian, tetapi klien tetap harus menyalurkan potongan data melalui status permintaan yang aktif.