Claude Code Guide
Set up Flaq AI Claude models and explore Claude Code skills
Try GPT 6 Luna API by OpenAI for image understanding, image descriptions, and visual questions through Flaq AI's stable, affordable API with streaming.
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
})
});
if (!response.ok) {
const errorBody = await response.json().catch(() => null);
throw new Error(errorBody?.error?.message ?? errorBody?.message ?? `HTTP ${response.status}`);
}
const reader = response.body.getReader();
const decoder = new TextDecoder();
let buffer = '';
let assistantText = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
const frames = buffer.split(/\r?\n\r?\n/);
buffer = frames.pop() || '';
for (const frame of frames) {
const lines = frame.split(/\r?\n/).filter(Boolean);
let eventName = 'message';
const dataLines = [];
for (const line of lines) {
if (line.startsWith('event:')) {
eventName = line.slice(6).trim();
} else if (line.startsWith('data:')) {
dataLines.push(line.replace(/^data:\s*/, ''));
}
}
const raw = dataLines.join('\n').trim();
if (raw === '[DONE]') {
console.log('\nFinal text:', assistantText);
continue;
}
let payload;
try {
payload = JSON.parse(raw);
} catch {
continue;
}
if (eventName === 'error' || payload.error) {
const msg = payload.error?.message ?? payload.message ?? 'Chat request failed';
throw new Error(msg);
}
const delta = payload.choices?.[0]?.delta;
if (delta?.content) {
assistantText += delta.content;
console.log(assistantText);
}
}
}
import json
import requests
response = requests.post(
'https://api.flaq.ai/api/v1/chat/completions',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'text/event-stream',
'Content-Type': 'application/json',
},
json={
'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,
},
stream=True,
)
response.raise_for_status()
event_name = 'message'
assistant_text = ''
for raw_line in response.iter_lines(decode_unicode=True):
if not raw_line:
event_name = 'message'
continue
if raw_line.startswith('event:'):
event_name = raw_line.replace('event:', '', 1).strip()
continue
if raw_line.startswith('data:'):
raw_data = raw_line.replace('data:', '', 1).strip()
if raw_data == '[DONE]':
print('\nFinal text:', assistant_text)
continue
payload = json.loads(raw_data)
if event_name == 'error' or payload.get('error'):
error = payload.get('error') or payload
raise RuntimeError(error.get('message', 'Chat request failed'))
choices = payload.get('choices') or []
if choices:
delta = choices[0].get('delta') or {}
content = delta.get('content')
if content:
assistant_text += content
print(content, end='', flush=True)
curl -N -X POST "https://api.flaq.ai/api/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: text/event-stream" \
-H "Content-Type: application/json" \
-d '{
"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
}'
| Parameters | Price | Original Price | Discount |
|---|
GPT 6 Luna Image-to-Text API on Flaq AI provides a cost-efficient GPT-6 option for image inspection, visual question answering, and OCR-assisted data extraction. Developers can analyze supported images with accompanying questions in high-volume visual workflows and interactive applications.
Note Please ensure your visual inputs and prompt messages adhere to OpenAI's safety and usage policies and Flaq AI terms. If an error occurs, inspect the image for unsupported attributes or restricted elements, refine the prompt, and try again.
GPT 6 Luna Image-to-Text vs. GPT 6 Sol Image-to-Text
GPT 6 Sol Image-to-Text is engineered for deep diagram interpretation, complex architectural schematics, and intensive multi-step visual reasoning. GPT 6 Luna Image-to-Text focuses on rapid turnaround times and economical processing for high-volume visual tagging and real-time user queries.
GPT 6 Luna Image-to-Text vs. GPT 5.6 Luna Image-to-Text
GPT 5.6 Luna Image-to-Text is an earlier option for efficient visual workflows. GPT 6 Luna Image-to-Text brings the newer GPT-6 family to high-volume image questions; test visual accuracy and cost on your own images before migrating.
GPT 6 Luna Image-to-Text vs. Dedicated OCR Engines
Dedicated OCR tools can be useful when transcription is the primary task. GPT 6 Luna Image-to-Text can also answer questions about the surrounding visual context and organize requested details in text.
GPT 6 Luna Image-to-Text vs. Gemini Flash Vision
Gemini Flash models are tightly integrated into Google Cloud infrastructure. GPT 6 Luna Image-to-Text provides a flexible, OpenAI-native vision solution that fits standard chat completions formats on Flaq AI with predictable, cost-effective pricing.
Set up Flaq AI Claude models and explore Claude Code skills

Set up Flaq AI GPT models and explore Codex skills
Use Flaq AI LLM models in Hermes Agent
Use GLM 5.2, Kimi K3, and DeepSeek v4 in ZCode
Run DeepSeek Harness with Flaq AI DeepSeek models
Connect AI agents to Flaq image and video generation tools
Use GPT 6 Astra and Claude Fable 5.1 in WorkBuddy