इसे छोड़कर कंटेंट पर जाएं
मुफ़्त साइन अप करें
API संदर्भ

Gemini API: BetterToken से टेक्स्ट और वीडियो का उपयोग

BetterToken पर OpenAI Chat Completions या Gemini के नेटिव API से Gemini कॉल करें। प्रमाणीकरण, SDK, स्ट्रीमिंग, टूल, वीडियो इनपुट और त्रुटि समाधान के उदाहरण।

अपनी BetterToken API Key से gemini-3.8-flash और gemini-4-argon कॉल करें। दोनों इंटरफ़ेस टेक्स्ट, वीडियो, स्ट्रीमिंग और टूल कॉल के साथ उनके परिणाम वापस भेजने का समर्थन करते हैं।

इंटरफ़ेस चुनें

इंटरफ़ेसBase URLकब उपयोग करें
OpenAI-संगतhttps://bettertoken.ai/v1आपका ऐप Chat Completions या OpenAI SDK का उपयोग करता है।
Gemini नेटिवhttps://bettertoken.aiआपका ऐप Gemini के अनुरोध फ़ील्ड या Google GenAI SDK का उपयोग करता है।

सभी उदाहरण gemini-3.8-flash का उपयोग करते हैं। दूसरा मॉडल उपयोग करने के लिए इसे gemini-4-argon से बदलें। मौजूदा कीमतें मॉडल प्लाज़ा में देखें। इमेज बनाने के लिए अलग Nano Banana गाइड देखें।

प्रमाणीकरण

BetterToken API Key बनाएँ, फिर नीचे YOUR_API_KEY बदलें। इसे उसी टर्मिनल में चलाएँ जिसमें उदाहरण चलाएँगे।

टर्मिनल विंडो
export BETTERTOKEN_API_KEY="YOUR_API_KEY"
इंटरफ़ेसप्रमाणीकरण
OpenAI-संगतAuthorization: Bearer $BETTERTOKEN_API_KEY
Gemini नेटिवx-goog-api-key: $BETTERTOKEN_API_KEY (अनुशंसित), या Authorization: Bearer $BETTERTOKEN_API_KEY

Google AI Studio की कुंजी यहाँ काम नहीं करती। अपनी BetterToken API Key उपयोग करें। नेटिव इंटरफ़ेस ?key= भी स्वीकार करता है, लेकिन इससे बचें क्योंकि URL लॉग में दर्ज हो सकते हैं।

OpenAI-संगत इंटरफ़ेस

अनुरोध POST https://bettertoken.ai/v1/chat/completions पर भेजें। SDK में Base URL https://bettertoken.ai/v1 रखें; SDK स्वयं /chat/completions जोड़ता है।

curl: सामान्य अनुरोध

टर्मिनल विंडो
curl --fail-with-body "https://bettertoken.ai/v1/chat/completions" \
-H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "gemini-3.8-flash",
"messages": [{"role": "user", "content": "Explain why the sky is blue."}]
}'

टेक्स्ट choices[0].message.content से पढ़ें। curl से स्ट्रीमिंग के लिए JSON बॉडी में "stream": true जोड़ें और curl --no-buffer उपयोग करें।

Python: सामान्य अनुरोध और स्ट्रीमिंग

अपने Python परिवेश में OpenAI SDK इंस्टॉल करें, फिर Python उदाहरण चलाएँ।

टर्मिनल विंडो
python -m pip install openai

स्ट्रीमिंग अनुरोध stream=True उपयोग करता है। हर खंड के choices[0].delta.content से टेक्स्ट पढ़ें।

import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["BETTERTOKEN_API_KEY"],
base_url="https://bettertoken.ai/v1",
)
messages = [{"role": "user", "content": "Explain why the sky is blue."}]
response = client.chat.completions.create(
model="gemini-3.8-flash",
messages=messages,
)
print(response.choices[0].message.content)
stream = client.chat.completions.create(
model="gemini-3.8-flash",
messages=messages,
stream=True,
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="", flush=True)
print()

टूल कॉल

tools में type: "function", फ़ंक्शन का name और parameters में JSON Schema देकर फ़ंक्शन घोषित करें। assistant से tool_calls मिलने पर अपने ऐप में अनुरोधित फ़ंक्शन चलाएँ।

tool_calls सहित assistant का पूरा संदेश बातचीत में रखें। हर परिणाम के लिए role: "tool" संदेश जोड़ें। tool_call_id में संबंधित कॉल ID और content में परिणाम रखें। अपडेट किए गए messages और tools फिर से Chat Completions को भेजें।

इस इंटरफ़ेस पर इमेज इनपुट के लिए अन्य मॉडल की तरह HTTP URL या data URL वाला image_url कंटेंट भाग उपयोग करें।

Gemini नेटिव इंटरफ़ेस

Google GenAI SDK के लिए Base URL https://bettertoken.ai रखें। /v1beta न जोड़ें: SDK इसे जोड़ता है। सीधे HTTP अनुरोधों के लिए नीचे दिए पूरे पथ उपयोग करें।

curl: generateContent

टर्मिनल विंडो
curl --fail-with-body \
"https://bettertoken.ai/v1beta/models/gemini-3.8-flash:generateContent" \
-H "x-goog-api-key: $BETTERTOKEN_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"contents": [{"role": "user", "parts": [{"text": "Explain why the sky is blue."}]}]
}'

टेक्स्ट candidates[].content.parts[].text से पढ़ें।

curl: स्ट्रीमिंग

streamGenerateContent?alt=sse से Server-Sent Events (SSE) मिलते हैं। --no-buffer इवेंट आते ही दिखाता है।

टर्मिनल विंडो
curl --fail-with-body --no-buffer \
"https://bettertoken.ai/v1beta/models/gemini-3.8-flash:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: $BETTERTOKEN_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"contents": [{"role": "user", "parts": [{"text": "Explain why the sky is blue."}]}]
}'

Python: Google GenAI SDK

अपने Python परिवेश में google-genai इंस्टॉल करें। उदाहरण पहले सामान्य अनुरोध और फिर स्ट्रीमिंग अनुरोध भेजता है।

टर्मिनल विंडो
python -m pip install google-genai
import os
from google import genai
from google.genai import types
client = genai.Client(
api_key=os.environ["BETTERTOKEN_API_KEY"],
http_options=types.HttpOptions(base_url="https://bettertoken.ai"),
)
response = client.models.generate_content(
model="gemini-3.8-flash",
contents="Explain why the sky is blue.",
)
print(response.text)
for chunk in client.models.generate_content_stream(
model="gemini-3.8-flash",
contents="Explain why the sky is blue.",
):
print(chunk.text or "", end="", flush=True)
print()

Node.js: Google GenAI SDK

@google/genai इंस्टॉल करें। JavaScript उदाहरण को gemini.mjs में सहेजें, फिर node gemini.mjs चलाएँ।

टर्मिनल विंडो
npm install @google/genai
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({
apiKey: process.env.BETTERTOKEN_API_KEY,
httpOptions: { baseUrl: "https://bettertoken.ai" },
});
const response = await client.models.generateContent({
model: "gemini-3.8-flash",
contents: "Explain why the sky is blue.",
});
console.log(response.text);
const stream = await client.models.generateContentStream({
model: "gemini-3.8-flash",
contents: "Explain why the sky is blue.",
});
for await (const chunk of stream) {
process.stdout.write(chunk.text ?? "");
}
console.log();

टूल कॉल

tools[].functionDeclarations में फ़ंक्शन घोषित करें। मॉडल के उत्तर के भागों में functionCall से फ़ंक्शन और आर्ग्युमेंट पढ़ें, फिर अपने ऐप में फ़ंक्शन चलाएँ।

मॉडल का पूरा कंटेंट contents में रखें। role: "user" प्रविष्टि जोड़ें, जिसके parts में functionResponse हो। इसमें संबंधित फ़ंक्शन का name और परिणाम वाला response ऑब्जेक्ट रखें। अपडेट किए गए contents और tools फिर से generateContent को भेजें।

मॉडल सूची

मॉडल की सूची के लिए GET https://bettertoken.ai/v1beta/models उपयोग करें।

टर्मिनल विंडो
curl --fail-with-body "https://bettertoken.ai/v1beta/models" \
-H "x-goog-api-key: $BETTERTOKEN_API_KEY"

वीडियो इनपुट

कोई भी उदाहरण भेजने से पहले REPLACE_WITH_VIDEO_BASE64 को अपने वीडियो के एक पंक्ति वाले base64 से बदलें। उदाहरण MP4 क्लिप उपयोग करते हैं। दूसरे फ़ॉर्मैट के लिए MIME प्रकार और फ़ाइल नाम भी बदलें।

स्वीकृत MIME प्रकार: video/mp4, video/mpeg, video/mpg, video/mov, video/avi, video/wmv, video/flv, video/mpegps।

वीडियो को अनुरोध की बॉडी में इनलाइन base64 के रूप में भेजें। Base64 से आकार फ़ाइल की तुलना में लगभग एक तिहाई बढ़ता है। छोटी या संपीड़ित क्लिप उपयोग करें; बहुत बड़े अनुरोध HTTP 413 लौटा सकते हैं।

OpenAI-संगत file.file_data में data:video/mp4;base64, प्रीफ़िक्स शामिल होता है। नेटिव inlineData.data में इस प्रीफ़िक्स के बिना केवल base64 रखें।

Chat Completions: इनलाइन फ़ाइल

टर्मिनल विंडो
curl --fail-with-body "https://bettertoken.ai/v1/chat/completions" \
-H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"model": "gemini-3.8-flash",
"messages": [{
"role": "user",
"content": [
{"type": "file", "file": {
"filename": "clip.mp4",
"file_data": "data:video/mp4;base64,REPLACE_WITH_VIDEO_BASE64"
}},
{"type": "text", "text": "Describe what happens in this video."}
]
}]
}
JSON

Gemini नेटिव: inlineData

टर्मिनल विंडो
curl --fail-with-body \
"https://bettertoken.ai/v1beta/models/gemini-3.8-flash:generateContent" \
-H "x-goog-api-key: $BETTERTOKEN_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"contents": [{
"role": "user",
"parts": [
{"inlineData": {"mimeType": "video/mp4", "data": "REPLACE_WITH_VIDEO_BASE64"}},
{"text": "Describe what happens in this video."}
]
}]
}
JSON

उपयोग और बिलिंग

Chat Completions: तर्क/सोच के टोकन completion_tokens में शामिल हैं और आउटपुट के रूप में बिल किए जाते हैं।

Gemini नेटिव: usageMetadata.thoughtsTokenCount का बिल आउटपुट के रूप में बनता है। cachedContentTokenCount कैश किए गए इनपुट को दिखाता है। वीडियो इनपुट टोकन में गिना जाता है; promptTokensDetails इसे मोडैलिटी VIDEO से पहचानता है।

सीमाएँ

  • POST /v1/responses इन Gemini मॉडल का समर्थन नहीं करता। Codex CLI और केवल Responses API उपयोग करने वाले अन्य क्लाइंट इन्हें कॉल नहीं कर सकते। Chat Completions या नेटिव इंटरफ़ेस उपयोग करें।
  • file_id संदर्भ और fileData.fileUri वाले Google File API अपलोड समर्थित नहीं हैं। वीडियो इनलाइन base64 में भेजें।

त्रुटि समाधान

त्रुटिक्या करें
401BetterToken API Key और प्रमाणीकरण हेडर जाँचें। गायब कुंजी जोड़ें या गलत कुंजी बदलें।
413अनुरोध की बॉडी बहुत बड़ी है। वीडियो छोटा या संपीड़ित करें।
429रेट लिमिट या अपस्ट्रीम क्षमता की अस्थायी कमी। बढ़ते अंतराल के साथ दोबारा कोशिश करें।
503 और कोड model_not_foundअभी क्षमता उपलब्ध नहीं है। बाद में दोबारा कोशिश करें।

अन्य त्रुटियों के लिए API त्रुटियाँ देखें।