گفتگو و متن
تولید محتوا (قالب Google)
قالب generateContent شرکت Google برای هر مدل گفتگو. Gemini CLI و SDKهای Google با آن به 1ai وصل میشوند، با استریم و فراخوانی تابع.
/v1beta/models/{model}:generateContentاین مسیر قالب generateContent شرکت Google را برای هر مدل گفتگوی 1ai میپذیرد. Gemini CLI با آن کار میکند. آدرس پایه https://1ai.ir است و مسیرها زیر /v1beta قرار دارند.
احراز هویت
کلید را در هدر x-goog-api-key بدهید. Authorization: Bearer و x-api-key هم پذیرفته میشوند. پارامتر ?key= هم کار میکند، ولی کلید در آدرس ممکن است در لاگ شبکهها و CDNها بماند؛ هدر را ترجیح دهید.
نام مدل
در مسیر، نام مدل Gemini را بدون صاحب بنویسید: gemini-3.8-flash همان google/gemini-3.8-flash است. برای مدل دیگر نام کامل را بدهید، مثل /v1beta/models/openai/gpt-5.4-mini:generateContent. مسیر روی آخرین : تقسیم میشود.
استریم
برای استریم همان بدنه را به /v1beta/models/{model}:streamGenerateContent بفرستید. با ?alt=sse پاسخ رویدادهای SSE است (هر رویداد یک data:) و بدون آن یک آرایهٔ JSON است که همانطور که جلو میرود نوشته میشود. نمونهٔ استریم زیر از این مسیر استفاده میکند؛ در جدول نمونهها فقط کد پایتون و Node آن مسیر را دارند. مسیر :countTokens هم هست و { "totalTokens": ... } برمیگرداند. رایگان است و در محدودیت نرخ حساب نمیشود.
ابزارها و تنظیمات
- فقط ابزار
functionDeclarationsپذیرفته میشود. ابزارهای میزبانیشدهٔ Google (googleSearch،codeExecution،urlContext) با400 tool_unsupportedرد میشوند. - در
generationConfigاین فیلدها اثر دارند:maxOutputTokens،temperature،topP،stopSequences،thinkingConfig.thinkingBudget،responseMimeType: "application/json"همراهresponseSchemaیاresponseJsonSchema. فیلدهایcandidateCount،responseModalitiesوspeechConfigوcachedContentبدون خطا کنار گذاشته میشوند و همیشه یک کاندیدا میگیرید. thoughtSignatureرا در نوبت بعد همانطور که گرفتید پس بفرستید؛ فقط برای همان مدل معتبر است.
خطاها قالب Google دارند: { "error": { "code": 400, "message": "...", "status": "INVALID_ARGUMENT" } }. هزینهٔ درخواست غیر استریم در هدر x-1ai-credits میآید.
نمونهها
curl https://1ai.ir/v1beta/models/gemini-3.8-flash:generateContent \
-H "x-goog-api-key: $ONEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"systemInstruction": {
"parts": [
{
"text": "You are a concise assistant."
}
]
},
"contents": [
{
"role": "user",
"parts": [
{
"text": "What is the capital of Japan?"
}
]
}
],
"generationConfig": {
"maxOutputTokens": 100,
"temperature": 0.2
}
}'{
"candidates": [
{
"index": 0,
"content": {
"role": "model",
"parts": [
{
"text": "The capital of Japan is Tokyo."
}
]
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 15,
"candidatesTokenCount": 8,
"totalTokenCount": 23
},
"modelVersion": "google/gemini-3.8-flash",
"responseId": "5f2a8c1d9e3b4a7c8d0e6f1b3a2c4d95"
}هدرها
x-goog-api-keystringالزامیکلید API شما.
Authorization: Bearerوx-api-keyهم پذیرفته میشوند.
پارامترهای مسیر
modelstringالزامینام مدل بدون صاحب برای Gemini (
gemini-3.8-flash)، یا نام کامل برای مدل دیگر. پسوند:generateContent،:streamGenerateContentیا:countTokensبخشی از مسیر است.
پارامترهای کوئری
altstringفقط برای
:streamGenerateContent: باsseپاسخ رویدادهای SSE است، وگرنه یک آرایهٔ JSON.keystringکلید API در آدرس؛ هدر
x-goog-api-keyامنتر است.
بدنهی درخواست
contentsarrayالزامیگفتگو تا اینجا، از 1 تا 8192 مورد.
ویژگیهای داخلی
rolestringuserیاmodel.partsarrayبخشهای پیام:
text،inlineData(mimeTypeوdataبه base64)،fileData(fileUri)،functionCallوfunctionResponse.
systemInstructionobjectدستور سیستمی به شکل
{ "parts": [{ "text": "..." }] }. نامsystem_instructionهم پذیرفته میشود.toolsarrayابزارها، حداکثر 128 مورد. فقط
functionDeclarationsپذیرفته میشود.ویژگیهای داخلی
functionDeclarationsarrayآرایهای از
{ name, description, parameters }کهparametersطرح JSON با نوعهای Gemini است.
toolConfigobjectتنظیم فراخوانی ابزار.
ویژگیهای داخلی
functionCallingConfigobject{ "mode": "AUTO" }،ANYیاNONE.
generationConfigobjectتنظیم تولید.
ویژگیهای داخلی
maxOutputTokensintegerسقف توکن خروجی.
temperaturenumberبه مدل میرسد.
topPnumberبه مدل میرسد.
stopSequencesarrayرشتههایی که تولید را متوقف میکنند.
thinkingConfigobject{ "thinkingBudget": 2048 }. بودجهٔ مثبت استدلال را روشن میکند: از 16,000 زیاد، از 4000 متوسط، پایینتر کم.responseMimeTypestringapplication/jsonبرای خروجی JSON.responseSchemaobjectطرح JSON خروجی، همراه
responseMimeType.responseJsonSchemaهم پذیرفته میشود.
خطاها
INVALID_ARGUMENT400بدنه نادرست است یا ابزار پشتیبانینشده (
googleSearchو مانند آن) فرستادهاید.UNAUTHENTICATED401کلید نادرست، غیرفعال یا منقضی است.
RESOURCE_EXHAUSTED402اعتبار کافی نیست.
PERMISSION_DENIED403این کلید اجازهٔ استفاده از این مدل را ندارد.
NOT_FOUND404مدل یا متد وجود ندارد. متدهای پذیرفته:
generateContent،streamGenerateContent،countTokens.RESOURCE_EXHAUSTED429به سقف نرخ رسیدهاید.
UNAVAILABLE503مدل موقتاً در دسترس نیست.
صفحههای مرتبط
- فهرست مدلها در قالب Geminiفهرست مدلهای چت در قالب Google (models.list) برای کتابخانهها و ابزارهایی که با Gemini API کار میکنند، با صفحهبندی pageSize و pageToken.
- دریافت یک مدل در قالب Geminiمشخصات یک مدل چت در قالب Google (models.get): نام، محدودیت توکن ورودی و خروجی و متدهای پشتیبانیشده.
- تکمیل گفتگوپاسخ یک مدل گفتگو را به قالب OpenAI میگیرید: متن ساده، استریم، فراخوانی ابزار و ورودی تصویر، با همان SDK رسمی OpenAI.
- استریمقالب SSE در چت، پایان استریم، قطعهی usage با مقدار اعتبار، خطای میانهی راه و رفتار هنگام قطع شدن اتصال.