# GPT 6 Luna API 由 OpenAI 提供支持的 GPT 6 Luna LLM 模型完整 API 参考文档。 ## 模型变体 此 API 支持四种模型变体: | 模型 | ID | 说明 | |-------|----|-------------| | **GPT 6 Luna Text to Text** | `gpt-6-luna-text-to-text` | 通用文本推理与写作 | | **GPT 6 Luna Image to Text** | `gpt-6-luna-image-to-text` | 根据文本指令理解图像 | | **GPT 6 Luna Web Search** | `gpt-6-luna-web-search` | 具备网页搜索能力的文本 LLM 工作流 | | **GPT 6 Luna File Analysis** | `gpt-6-luna-file-analysis` | 根据文本指令分析文件 | ## 快速对比 | 功能 | 文本转文本 | 图像转文本 | 网页搜索 | 文件分析 | |---------|--------------|---------------|------------|---------------| | 文本输入 | 必填 ✅ | 可选 | 必填 ✅ | 可选 | | 图像输入 | 不支持 ❌ | 可选 | 可选 | 可选 | | 文件输入 | 不支持 ❌ | 不支持 ❌ | 可选 | 可选 | | 流式响应 | SSE | SSE | SSE | SSE | | `max_tokens` | 可选 | 可选 | 可选 | 可选 | ## GPT 6 Luna Text to Text ### 端点 ```http POST /api/v1/chat/completions ``` ### 请求参数 #### 必填 | 参数 | 类型 | 说明 | |-----------|------|-------------| | `model` | string | 必须为 `"gpt-6-luna-text-to-text"`。 | | `messages` | array | 按顺序排列的消息。消息结构请参阅 LLM API。 | | `stream` | boolean | `true` 表示 SSE,`false` 表示单个 JSON 响应。 | #### 消息支持情况 | 字段 | 文本 | 文件 | 图像 | |-------|------|------|-------| | `messages` | 必填 ✅ | 不支持 ❌ | 不支持 ❌ | #### 可选 | 参数 | 类型 | 范围 | 说明 | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | 最大输出 token 数。无默认上限。 | ### 请求示例 ```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 ### 端点 ```http POST /api/v1/chat/completions ``` ### 请求参数 #### 必填 | 参数 | 类型 | 说明 | |-----------|------|-------------| | `model` | string | 必须为 `"gpt-6-luna-image-to-text"`。 | | `messages` | array | 按顺序排列的消息。请参阅 LLM API 和消息附件。 | | `stream` | boolean | `true` 表示 SSE,`false` 表示单个 JSON 响应。 | #### 消息支持情况 | 字段 | 文本 | 文件 | 图像 | |-------|------|------|-------| | `messages` | 可选 | 不支持 ❌ | 可选 | #### 可选 | 参数 | 类型 | 范围 | 说明 | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | 最大输出 token 数。无默认上限。 | ### 请求示例 ```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 ### 端点 ```http POST /api/v1/chat/completions ``` ### 请求参数 #### 必填 | 参数 | 类型 | 说明 | |-----------|------|-------------| | `model` | string | 必须为 `"gpt-6-luna-web-search"`。 | | `messages` | array | 按顺序排列的消息。请参阅 LLM API 和消息附件。 | | `stream` | boolean | `true` 表示 SSE,`false` 表示单个 JSON 响应。 | #### 消息支持情况 | 字段 | 文本 | 文件 | 图像 | |-------|------|------|-------| | `messages` | 必填 ✅ | 可选 | 可选 | #### 可选 | 参数 | 类型 | 范围 | 说明 | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | 最大输出 token 数。无默认上限。 | ### 请求示例 ```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 ### 端点 ```http POST /api/v1/chat/completions ``` ### 请求参数 #### 必填 | 参数 | 类型 | 说明 | |-----------|------|-------------| | `model` | string | 必须为 `"gpt-6-luna-file-analysis"`。 | | `messages` | array | 按顺序排列的消息。请参阅 LLM API 和消息附件。 | | `stream` | boolean | `true` 表示 SSE,`false` 表示单个 JSON 响应。 | #### 消息支持情况 | 字段 | 文本 | 文件 | 图像 | |-------|------|------|-------| | `messages` | 可选 | 可选 | 可选 | #### 可选 | 参数 | 类型 | 范围 | 说明 | |-----------|------|-------|-------------| | `max_tokens` | integer | `> 1` | 最大输出 token 数。无默认上限。 | ### 请求示例 ```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 }) }); ``` ## 响应格式 GPT 6 Luna LLM 模型返回与 OpenAI 兼容的补全响应。设置 `stream: true` 时,响应为服务器发送事件(SSE);设置 `stream: false` 时,响应为单个 JSON 对象。 ### 成功响应 ```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] ``` ### 错误响应 ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## 最佳实践 1. **保持消息结构:** 使用 `messages[]` 表示对话历史,而不是将上下文合并为一个提示词。 2. **将文件和图像附加到消息:** 将 `image_url` 和 `file` 内容部分放入引入它们的那条消息中。 3. **使用 SSE 解析:** 追加 `choices[0].delta.content` 以增量显示内容,并将 `data: [DONE]` 视为成功完成。 4. **仅发送支持的输入:** 确保文本、图像和文件内容部分符合所选模型变体的要求。 5. **在本地保存请求状态:** 数据块包含补全响应的 `id`,但客户端仍应通过当前活动请求的状态来分发数据块。