# GPT 6 Luna API Vollständige API-Referenz für die LLM-Modelle GPT 6 Luna von OpenAI. ## Modellvarianten Diese API unterstützt vier Modellvarianten: | Modell | ID | Beschreibung | |-------|----|-------------| | **GPT 6 Luna Text to Text** | `gpt-6-luna-text-to-text` | Allgemeines textbasiertes Schlussfolgern und Schreiben | | **GPT 6 Luna Image to Text** | `gpt-6-luna-image-to-text` | Bildverständnis mit Textanweisungen | | **GPT 6 Luna Web Search** | `gpt-6-luna-web-search` | Textbasierter LLM-Workflow mit Websuche | | **GPT 6 Luna File Analysis** | `gpt-6-luna-file-analysis` | Dateianalyse mit Textanweisungen | ## Kurzvergleich | Funktion | Text zu Text | Bild zu Text | Websuche | Dateianalyse | |---------|--------------|---------------|------------|---------------| | Texteingabe | Erforderlich ✅ | Optional | Erforderlich ✅ | Optional | | Bildeingabe | Nicht unterstützt ❌ | Optional | Optional | Optional | | Dateieingabe | Nicht unterstützt ❌ | Nicht unterstützt ❌ | Optional | Optional | | Streaming-Antwort | SSE | SSE | SSE | SSE | | `max_tokens` | Optional | Optional | Optional | Optional | ## GPT 6 Luna Text to Text ### Endpunkt ```http POST /api/v1/chat/completions ``` ### Anfrageparameter #### Erforderlich | Parameter | Typ | Beschreibung | |-----------|------|-------------| | `model` | string | Muss `"gpt-6-luna-text-to-text"` sein | | `messages` | array | Geordnete Nachrichten. Die Nachrichtenstruktur ist unter LLM API beschrieben. | | `stream` | boolean | `true` für SSE, `false` für eine einzelne JSON-Antwort. | #### Unterstützte Nachrichteninhalte | Feld | Text | Datei | Bild | |-------|------|------|-------| | `messages` | Erforderlich ✅ | Nicht unterstützt ❌ | Nicht unterstützt ❌ | #### Optional | Parameter | Typ | Bereich | Beschreibung | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Maximale Anzahl an Ausgabetokens. Kein voreingestellter Höchstwert. | ### Beispielanfrage ```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 ### Endpunkt ```http POST /api/v1/chat/completions ``` ### Anfrageparameter #### Erforderlich | Parameter | Typ | Beschreibung | |-----------|------|-------------| | `model` | string | Muss `"gpt-6-luna-image-to-text"` sein | | `messages` | array | Geordnete Nachrichten. Siehe LLM API und Nachrichtenanhänge. | | `stream` | boolean | `true` für SSE, `false` für eine einzelne JSON-Antwort. | #### Unterstützte Nachrichteninhalte | Feld | Text | Datei | Bild | |-------|------|------|-------| | `messages` | Optional | Nicht unterstützt ❌ | Optional | #### Optional | Parameter | Typ | Bereich | Beschreibung | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Maximale Anzahl an Ausgabetokens. Kein voreingestellter Höchstwert. | ### Beispielanfrage ```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 ### Endpunkt ```http POST /api/v1/chat/completions ``` ### Anfrageparameter #### Erforderlich | Parameter | Typ | Beschreibung | |-----------|------|-------------| | `model` | string | Muss `"gpt-6-luna-web-search"` sein | | `messages` | array | Geordnete Nachrichten. Siehe LLM API und Nachrichtenanhänge. | | `stream` | boolean | `true` für SSE, `false` für eine einzelne JSON-Antwort. | #### Unterstützte Nachrichteninhalte | Feld | Text | Datei | Bild | |-------|------|------|-------| | `messages` | Erforderlich ✅ | Optional | Optional | #### Optional | Parameter | Typ | Bereich | Beschreibung | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Maximale Anzahl an Ausgabetokens. Kein voreingestellter Höchstwert. | ### Beispielanfrage ```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 ### Endpunkt ```http POST /api/v1/chat/completions ``` ### Anfrageparameter #### Erforderlich | Parameter | Typ | Beschreibung | |-----------|------|-------------| | `model` | string | Muss `"gpt-6-luna-file-analysis"` sein | | `messages` | array | Geordnete Nachrichten. Siehe LLM API und Nachrichtenanhänge. | | `stream` | boolean | `true` für SSE, `false` für eine einzelne JSON-Antwort. | #### Unterstützte Nachrichteninhalte | Feld | Text | Datei | Bild | |-------|------|------|-------| | `messages` | Optional | Optional | Optional | #### Optional | Parameter | Typ | Bereich | Beschreibung | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Maximale Anzahl an Ausgabetokens. Kein voreingestellter Höchstwert. | ### Beispielanfrage ```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 }) }); ``` ## Antwortformat Die LLM-Modelle GPT 6 Luna geben OpenAI-kompatible Vervollständigungsantworten zurück. Bei `stream: true` erfolgt die Antwort als Server-Sent Events; bei `stream: false` als einzelnes JSON-Objekt. ### Erfolgreiche Antwort ```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] ``` ### Fehlerantwort ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## Bewährte Vorgehensweisen 1. **Nachrichten strukturiert halten:** Verwenden Sie `messages[]` für den Gesprächsverlauf, statt den Kontext in einem einzigen Prompt zusammenzufassen. 2. **Dateien und Bilder an Nachrichten anhängen:** Platzieren Sie die Bestandteile `image_url` und `file` in der Nachricht, in der sie eingeführt werden. 3. **SSE auswerten:** Hängen Sie `choices[0].delta.content` für die schrittweise Anzeige an und behandeln Sie `data: [DONE]` als erfolgreichen Abschluss. 4. **Nur unterstützte Eingaben senden:** Stimmen Sie Text-, Bild- und Dateibestandteile auf die gewählte Modellvariante ab. 5. **Anfragestatus lokal speichern:** Die Chunks enthalten eine `id` der Vervollständigung; Clients sollten die Chunks dennoch über den Status der aktiven Anfrage zuordnen.