# GPT 6 Luna API Referencia completa de la API de los modelos LLM GPT 6 Luna de OpenAI. ## Variantes del modelo Esta API admite cuatro variantes del modelo: | Modelo | ID | Descripción | |-------|----|-------------| | **GPT 6 Luna Text to Text** | `gpt-6-luna-text-to-text` | Razonamiento y redacción de texto de propósito general | | **GPT 6 Luna Image to Text** | `gpt-6-luna-image-to-text` | Comprensión de imágenes con instrucciones de texto | | **GPT 6 Luna Web Search** | `gpt-6-luna-web-search` | Flujo de trabajo de LLM de texto con capacidad de búsqueda web | | **GPT 6 Luna File Analysis** | `gpt-6-luna-file-analysis` | Análisis de archivos con instrucciones de texto | ## Comparación rápida | Característica | Texto a texto | Imagen a texto | Búsqueda web | Análisis de archivos | |---------|--------------|---------------|------------|---------------| | Entrada de texto | Obligatorio ✅ | Opcional | Obligatorio ✅ | Opcional | | Entrada de imagen | No admitido ❌ | Opcional | Opcional | Opcional | | Entrada de archivo | No admitido ❌ | No admitido ❌ | Opcional | Opcional | | Respuesta en streaming | SSE | SSE | SSE | SSE | | `max_tokens` | Opcional | Opcional | Opcional | Opcional | ## GPT 6 Luna Text to Text ### Punto de conexión ```http POST /api/v1/chat/completions ``` ### Parámetros de la solicitud #### Obligatorio | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `model` | string | Debe ser `"gpt-6-luna-text-to-text"` | | `messages` | array | Mensajes ordenados. Consulte LLM API para conocer la estructura de los mensajes. | | `stream` | boolean | `true` para SSE, `false` para una única respuesta JSON. | #### Contenido de mensajes admitido | Campo | Texto | Archivo | Imagen | |-------|------|------|-------| | `messages` | Obligatorio ✅ | No admitido ❌ | No admitido ❌ | #### Opcional | Parámetro | Tipo | Rango | Descripción | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de salida. Sin máximo predeterminado. | ### Ejemplo de solicitud ```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 de conexión ```http POST /api/v1/chat/completions ``` ### Parámetros de la solicitud #### Obligatorio | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `model` | string | Debe ser `"gpt-6-luna-image-to-text"` | | `messages` | array | Mensajes ordenados. Consulte LLM API y Archivos adjuntos de los mensajes. | | `stream` | boolean | `true` para SSE, `false` para una única respuesta JSON. | #### Contenido de mensajes admitido | Campo | Texto | Archivo | Imagen | |-------|------|------|-------| | `messages` | Opcional | No admitido ❌ | Opcional | #### Opcional | Parámetro | Tipo | Rango | Descripción | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de salida. Sin máximo predeterminado. | ### Ejemplo de solicitud ```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 de conexión ```http POST /api/v1/chat/completions ``` ### Parámetros de la solicitud #### Obligatorio | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `model` | string | Debe ser `"gpt-6-luna-web-search"` | | `messages` | array | Mensajes ordenados. Consulte LLM API y Archivos adjuntos de los mensajes. | | `stream` | boolean | `true` para SSE, `false` para una única respuesta JSON. | #### Contenido de mensajes admitido | Campo | Texto | Archivo | Imagen | |-------|------|------|-------| | `messages` | Obligatorio ✅ | Opcional | Opcional | #### Opcional | Parámetro | Tipo | Rango | Descripción | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de salida. Sin máximo predeterminado. | ### Ejemplo de solicitud ```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 de conexión ```http POST /api/v1/chat/completions ``` ### Parámetros de la solicitud #### Obligatorio | Parámetro | Tipo | Descripción | |-----------|------|-------------| | `model` | string | Debe ser `"gpt-6-luna-file-analysis"` | | `messages` | array | Mensajes ordenados. Consulte LLM API y Archivos adjuntos de los mensajes. | | `stream` | boolean | `true` para SSE, `false` para una única respuesta JSON. | #### Contenido de mensajes admitido | Campo | Texto | Archivo | Imagen | |-------|------|------|-------| | `messages` | Opcional | Opcional | Opcional | #### Opcional | Parámetro | Tipo | Rango | Descripción | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de salida. Sin máximo predeterminado. | ### Ejemplo de solicitud ```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 de respuesta Los modelos LLM GPT 6 Luna devuelven respuestas de compleción compatibles con OpenAI. Con `stream: true`, la respuesta se envía mediante Server-Sent Events; con `stream: false`, es un único objeto JSON. ### Respuesta correcta ```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] ``` ### Respuesta de error ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## Buenas prácticas 1. **Mantenga los mensajes estructurados:** Use `messages[]` para el historial de conversación en lugar de condensar el contexto en un solo prompt. 2. **Adjunte archivos e imágenes a los mensajes:** Incluya los elementos `image_url` y `file` en el mensaje que los introduce. 3. **Analice los eventos SSE:** Añada `choices[0].delta.content` para mostrar el contenido de forma incremental y considere `data: [DONE]` como una finalización correcta. 4. **Envíe solo entradas admitidas:** Ajuste los elementos de texto, imagen y archivo a la variante del modelo seleccionada. 5. **Guarde el estado de la solicitud localmente:** Los fragmentos incluyen un `id` de la compleción, pero los clientes deben seguir enrutándolos mediante el estado de la solicitud activa.