Fluxio

डेवलपर दस्तावेज़

Fluxio तीन स्ट्रीमिंग प्रारूपों में काम करता है। अपने कोड का प्रोटोकॉल चुनें, देखें कि उसे कौन-कौन से इवेंट मिलेंगे, फिर अपने क्लाइंट को API होस्ट से कनेक्ट करें।

Fluxio API होस्टhttps://api.fluxioapi.com

अपनी कुंजी Authorization: Bearer (OpenAI प्रारूप), x-api-key (Anthropic प्रारूप) या x-goog-api-key (Gemini) के रूप में भेजें। तीनों प्रोटोकॉल का होस्ट एक ही है।

OpenAI प्रारूप: SSE पर चैट कम्प्लीशन

"stream": true के साथ POST /v1/chat/completions भेजें। जवाब data: लाइनों की text/event-stream होता है, जिसमें हर लाइन में एक JSON चंक होता है।

curl https://api.fluxioapi.com/v1/chat/completions --no-buffer \
  -H "Authorization: Bearer fio_your_key_here" -H "Content-Type: application/json" \
  -d '{"model":"gpt-6.1-sol","stream":true,"messages":[{"role":"user","content":"Hello from the river bank"}]}'

हर चंक में टेक्स्ट का अगला हिस्सा choices[0].delta.content में आता है; [DONE] से पहले वाले अंतिम चंक में टोकन संख्या होती है:

data: {"choices":[{"index":0,"delta":{"content":"Rivers"}}]}
data: {"choices":[{"index":0,"delta":{"content":" bend"}}]}
data: {"choices":[],"usage":{"prompt_tokens":14,"completion_tokens":2,"prompt_tokens_details":{"cached_tokens":0}}}
data: [DONE]

Fluxio हमेशा उपयोग की जानकारी वाला अंतिम चंक माँगता है, भले ही आपके अनुरोध में include_usage न दिया गया हो या false पर सेट हो।

Responses API (/v1/responses), response.output_text.delta जैसे टाइप किए गए इवेंट स्ट्रीम करता है और response.completed में उपयोग की जानकारी देता है।

Anthropic प्रारूप: Messages इवेंट

"stream": true और anthropic-version हेडर के साथ POST /v1/messages भेजें (हेडर न होने पर Fluxio 2023-06-01 जोड़ देता है)। इवेंट इस क्रम में आते हैं:

event: message_start
data: {"type":"message_start","message":{"usage":{"input_tokens":25,"cache_read_input_tokens":0,"output_tokens":1}}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Current"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":31}}
event: message_stop

इनपुट और कैश की संख्या message_start से मिलती है; आउटपुट की अंतिम संख्या message_delta से मिलती है।

Claude मॉडल केवल आधिकारिक Claude Code और Claude Desktop क्लाइंट, संस्करण 2.1.285 या उसके बाद, पर उपलब्ध हैं — यह upstream नियम है। GPT, Gemini और अन्य मॉडल परिवार किसी भी OpenAI-फ़ॉर्मैट क्लाइंट या SDK से काम करते हैं।

Gemini प्रारूप: नेटिव streamGenerateContent

Gemini मॉडल अपने अलग रूट से स्ट्रीम करते हैं। सर्वर-सेंट इवेंट पाने के लिए alt=sse जोड़ें; इसके बिना जवाब हिस्सों में भेजा गया JSON ऐरे होता है।

curl "https://api.fluxioapi.com/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" --no-buffer \
  -H "x-goog-api-key: fio_your_key_here" -H "Content-Type: application/json" \
  -d '{"contents":[{"role":"user","parts":[{"text":"Name one river that crosses three countries"}]}]}'

हर चंक में usageMetadata का अब तक का कुल मान होता है; अंतिम चंक के आधार पर शुल्क तय होता है और थिंकिंग टोकन को आउटपुट में गिना जाता है।

Gemini मॉडल केवल अपने नेटिव प्रोटोकॉल में बात करते हैं। स्ट्रीमिंग के लिए :streamGenerateContent?alt=sse कॉल करें; /v1/chat/completions Gemini ids को स्वीकार नहीं करता।

क्या गिना जाता है और कैसे

  • हर अनुरोध का बिल upstream द्वारा रिपोर्ट किए गए टोकन पर बनता है: इनपुट, आउटपुट, कैश लेखन और कैश रीड, प्रत्येक की अपनी दर पर।
  • यदि upstream कोई usage रिपोर्ट नहीं करता, तो कॉल का बिल 2,000 इनपुट और 2,000 आउटपुट टोकन के आधार पर बनाया जाता है और उसे अनुमानित चिह्नित किया जाता है।
  • स्ट्रीम को बीच में बंद करने पर भी उस क्षण तक बनाए गए टोकन का बिल लिया जाता है।
  • टोकन गिनने वाली कॉल (count_tokens और countTokens) मुफ़्त हैं।
  • HTTP 402 का अर्थ है कि कुंजी के पीछे का बैलेंस या मासिक प्लान समाप्त हो गया है — फिर से शुरू करने के लिए रिचार्ज करें।

क्लाइंट सेटअप

Claude Code · Claude Desktop

बेस URL को सीधे API होस्ट पर सेट करें (/v1 न जोड़ें), अपनी कुंजी को ऑथ टोकन के रूप में इस्तेमाल करें, फिर claude लॉन्च करें।

export ANTHROPIC_BASE_URL=https://api.fluxioapi.com
export ANTHROPIC_AUTH_TOKEN=fio_your_key_here
claude

Codex · OpenAI SDK

OpenAI-फ़ॉर्मैट क्लाइंट API होस्ट के साथ /v1 को बेस URL और आपकी कुंजी को API कुंजी के रूप में लेते हैं। चैट अनुरोध /v1/chat/completions पर जाते हैं।

export OPENAI_BASE_URL=https://api.fluxioapi.com/v1
export OPENAI_API_KEY=fio_your_key_here
codex
import os, openai

river = openai.OpenAI(base_url="https://api.fluxioapi.com/v1", api_key=os.environ["FLUXIO_KEY"])
reply = river.chat.completions.create(model="gpt-6.1-sol", stream=True,
    messages=[{"role": "user", "content": "Describe a waterfall in three lines"}])
for piece in reply:
    print(piece.choices[0].delta.content or "", end="", flush=True)

शुरुआत के लिए GPT ids: gpt-6.1-sol · gpt-6-astra · gpt-5.6-sol

Gemini CLI

Gemini CLI सीधे API होस्ट और आपकी कुंजी लेता है (/v1beta न जोड़ें):

export GOOGLE_GEMINI_BASE_URL=https://api.fluxioapi.com
export GEMINI_API_KEY=fio_your_key_here
gemini

Gemini ids: gemini-3.1-pro · gemini-4-argon · gemini-3.8-flash · gemini-2.5-flash