# GPT 6 Luna API Referência completa da API dos modelos LLM GPT 6 Luna da OpenAI. ## Variantes do modelo Esta API oferece suporte a quatro variantes do modelo: | Modelo | ID | Descrição | |-------|----|-------------| | **GPT 6 Luna Text to Text** | `gpt-6-luna-text-to-text` | Raciocínio e escrita de textos de uso geral | | **GPT 6 Luna Image to Text** | `gpt-6-luna-image-to-text` | Compreensão de imagens com instruções de texto | | **GPT 6 Luna Web Search** | `gpt-6-luna-web-search` | Fluxo de trabalho de LLM de texto com capacidade de pesquisa na web | | **GPT 6 Luna File Analysis** | `gpt-6-luna-file-analysis` | Análise de arquivos com instruções de texto | ## Comparação rápida | Recurso | Texto para texto | Imagem para texto | Pesquisa na web | Análise de arquivos | |---------|--------------|---------------|------------|---------------| | Entrada de texto | Obrigatório ✅ | Opcional | Obrigatório ✅ | Opcional | | Entrada de imagem | Não compatível ❌ | Opcional | Opcional | Opcional | | Entrada de arquivo | Não compatível ❌ | Não compatível ❌ | Opcional | Opcional | | Resposta em streaming | SSE | SSE | SSE | SSE | | `max_tokens` | Opcional | Opcional | Opcional | Opcional | ## GPT 6 Luna Text to Text ### Ponto de acesso ```http POST /api/v1/chat/completions ``` ### Parâmetros da solicitação #### Obrigatório | Parâmetro | Tipo | Descrição | |-----------|------|-------------| | `model` | string | Deve ser `"gpt-6-luna-text-to-text"` | | `messages` | array | Mensagens ordenadas. Consulte LLM API para conhecer a estrutura das mensagens. | | `stream` | boolean | `true` para SSE, `false` para uma única resposta JSON. | #### Conteúdos de mensagem compatíveis | Campo | Texto | Arquivo | Imagem | |-------|------|------|-------| | `messages` | Obrigatório ✅ | Não compatível ❌ | Não compatível ❌ | #### Opcional | Parâmetro | Tipo | Intervalo | Descrição | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de saída. Sem máximo padrão. | ### Exemplo de solicitação ```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 ### Ponto de acesso ```http POST /api/v1/chat/completions ``` ### Parâmetros da solicitação #### Obrigatório | Parâmetro | Tipo | Descrição | |-----------|------|-------------| | `model` | string | Deve ser `"gpt-6-luna-image-to-text"` | | `messages` | array | Mensagens ordenadas. Consulte LLM API e Anexos de mensagens. | | `stream` | boolean | `true` para SSE, `false` para uma única resposta JSON. | #### Conteúdos de mensagem compatíveis | Campo | Texto | Arquivo | Imagem | |-------|------|------|-------| | `messages` | Opcional | Não compatível ❌ | Opcional | #### Opcional | Parâmetro | Tipo | Intervalo | Descrição | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de saída. Sem máximo padrão. | ### Exemplo de solicitação ```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 ### Ponto de acesso ```http POST /api/v1/chat/completions ``` ### Parâmetros da solicitação #### Obrigatório | Parâmetro | Tipo | Descrição | |-----------|------|-------------| | `model` | string | Deve ser `"gpt-6-luna-web-search"` | | `messages` | array | Mensagens ordenadas. Consulte LLM API e Anexos de mensagens. | | `stream` | boolean | `true` para SSE, `false` para uma única resposta JSON. | #### Conteúdos de mensagem compatíveis | Campo | Texto | Arquivo | Imagem | |-------|------|------|-------| | `messages` | Obrigatório ✅ | Opcional | Opcional | #### Opcional | Parâmetro | Tipo | Intervalo | Descrição | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de saída. Sem máximo padrão. | ### Exemplo de solicitação ```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 ### Ponto de acesso ```http POST /api/v1/chat/completions ``` ### Parâmetros da solicitação #### Obrigatório | Parâmetro | Tipo | Descrição | |-----------|------|-------------| | `model` | string | Deve ser `"gpt-6-luna-file-analysis"` | | `messages` | array | Mensagens ordenadas. Consulte LLM API e Anexos de mensagens. | | `stream` | boolean | `true` para SSE, `false` para uma única resposta JSON. | #### Conteúdos de mensagem compatíveis | Campo | Texto | Arquivo | Imagem | |-------|------|------|-------| | `messages` | Opcional | Opcional | Opcional | #### Opcional | Parâmetro | Tipo | Intervalo | Descrição | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | Número máximo de tokens de saída. Sem máximo padrão. | ### Exemplo de solicitação ```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 da resposta Os modelos LLM GPT 6 Luna retornam respostas de conclusão compatíveis com a OpenAI. Com `stream: true`, a resposta usa Server-Sent Events; com `stream: false`, é um único objeto JSON. ### Resposta bem-sucedida ```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] ``` ### Resposta de erro ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## Boas práticas 1. **Mantenha as mensagens estruturadas:** Use `messages[]` para o histórico da conversa em vez de condensar o contexto em um único prompt. 2. **Anexe arquivos e imagens às mensagens:** Coloque as partes `image_url` e `file` na mensagem que as introduz. 3. **Analise os eventos SSE:** Acrescente `choices[0].delta.content` para exibir o conteúdo de forma incremental e considere `data: [DONE]` uma conclusão bem-sucedida. 4. **Envie apenas entradas compatíveis:** Ajuste as partes de texto, imagem e arquivo à variante do modelo selecionada. 5. **Armazene o estado da solicitação localmente:** Os blocos incluem um `id` da conclusão, mas os clientes ainda devem encaminhá-los pelo estado da solicitação ativa.