# GPT 6 Luna API Riferimento completo dell’API per i modelli LLM GPT 6 Luna di OpenAI. ## Varianti del modello Questa API supporta quattro varianti del modello: | Modello | ID | Descrizione | |-------|----|-------------| | **GPT 6 Luna Text to Text** | `gpt-6-luna-text-to-text` | Ragionamento e scrittura di testi per uso generale | | **GPT 6 Luna Image to Text** | `gpt-6-luna-image-to-text` | Comprensione delle immagini con istruzioni testuali | | **GPT 6 Luna Web Search** | `gpt-6-luna-web-search` | Flusso di lavoro LLM testuale con funzionalità di ricerca web | | **GPT 6 Luna File Analysis** | `gpt-6-luna-file-analysis` | Analisi dei file con istruzioni testuali | ## Confronto rapido | Funzionalità | Da testo a testo | Da immagine a testo | Ricerca web | Analisi dei file | |---------|--------------|---------------|------------|---------------| | Input testuale | Obbligatorio ✅ | Facoltativo | Obbligatorio ✅ | Facoltativo | | Input di immagini | Non supportato ❌ | Facoltativo | Facoltativo | Facoltativo | | Input di file | Non supportato ❌ | Non supportato ❌ | Facoltativo | Facoltativo | | Risposta in streaming | SSE | SSE | SSE | SSE | | `max_tokens` | Facoltativo | Facoltativo | Facoltativo | Facoltativo | ## GPT 6 Luna Text to Text ### Punto di accesso ```http POST /api/v1/chat/completions ``` ### Parametri della richiesta #### Obbligatorio | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `model` | string | Deve essere `"gpt-6-luna-text-to-text"` | | `messages` | array | Messaggi ordinati. Consulta LLM API per la struttura dei messaggi. | | `stream` | boolean | `true` per SSE, `false` per una singola risposta JSON. | #### Contenuti dei messaggi supportati | Campo | Testo | File | Immagine | |-------|------|------|-------| | `messages` | Obbligatorio ✅ | Non supportato ❌ | Non supportato ❌ | #### Facoltativo | Parametro | Tipo | Intervallo | Descrizione | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Numero massimo di token di output. Nessun massimo predefinito. | ### Esempio di richiesta ```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 ### Punto di accesso ```http POST /api/v1/chat/completions ``` ### Parametri della richiesta #### Obbligatorio | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `model` | string | Deve essere `"gpt-6-luna-image-to-text"` | | `messages` | array | Messaggi ordinati. Consulta LLM API e Allegati dei messaggi. | | `stream` | boolean | `true` per SSE, `false` per una singola risposta JSON. | #### Contenuti dei messaggi supportati | Campo | Testo | File | Immagine | |-------|------|------|-------| | `messages` | Facoltativo | Non supportato ❌ | Facoltativo | #### Facoltativo | Parametro | Tipo | Intervallo | Descrizione | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Numero massimo di token di output. Nessun massimo predefinito. | ### Esempio di richiesta ```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 ### Punto di accesso ```http POST /api/v1/chat/completions ``` ### Parametri della richiesta #### Obbligatorio | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `model` | string | Deve essere `"gpt-6-luna-web-search"` | | `messages` | array | Messaggi ordinati. Consulta LLM API e Allegati dei messaggi. | | `stream` | boolean | `true` per SSE, `false` per una singola risposta JSON. | #### Contenuti dei messaggi supportati | Campo | Testo | File | Immagine | |-------|------|------|-------| | `messages` | Obbligatorio ✅ | Facoltativo | Facoltativo | #### Facoltativo | Parametro | Tipo | Intervallo | Descrizione | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Numero massimo di token di output. Nessun massimo predefinito. | ### Esempio di richiesta ```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 ### Punto di accesso ```http POST /api/v1/chat/completions ``` ### Parametri della richiesta #### Obbligatorio | Parametro | Tipo | Descrizione | |-----------|------|-------------| | `model` | string | Deve essere `"gpt-6-luna-file-analysis"` | | `messages` | array | Messaggi ordinati. Consulta LLM API e Allegati dei messaggi. | | `stream` | boolean | `true` per SSE, `false` per una singola risposta JSON. | #### Contenuti dei messaggi supportati | Campo | Testo | File | Immagine | |-------|------|------|-------| | `messages` | Facoltativo | Facoltativo | Facoltativo | #### Facoltativo | Parametro | Tipo | Intervallo | Descrizione | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Numero massimo di token di output. Nessun massimo predefinito. | ### Esempio di richiesta ```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 }) }); ``` ## Formato della risposta I modelli LLM GPT 6 Luna restituiscono risposte di completamento compatibili con OpenAI. Con `stream: true`, la risposta utilizza Server-Sent Events; con `stream: false`, è un singolo oggetto JSON. ### Risposta riuscita ```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] ``` ### Risposta di errore ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## Buone pratiche 1. **Mantieni i messaggi strutturati:** Usa `messages[]` per la cronologia della conversazione invece di condensare il contesto in un unico prompt. 2. **Allega file e immagini ai messaggi:** Inserisci le parti `image_url` e `file` nel messaggio che le introduce. 3. **Analizza gli eventi SSE:** Aggiungi `choices[0].delta.content` al contenuto per una visualizzazione incrementale e considera `data: [DONE]` come completamento riuscito. 4. **Invia solo input supportati:** Adatta le parti di testo, immagine e file alla variante del modello selezionata. 5. **Memorizza localmente lo stato della richiesta:** I blocchi includono un `id` del completamento, ma i client devono comunque instradarli tramite lo stato della richiesta attiva.