Live API - WebSockets API reference

Live API یک API با قابلیت Stateful است که از WebSockets استفاده می‌کند. در این بخش، جزئیات بیشتری در مورد WebSockets API خواهید یافت.

جلسات

یک اتصال WebSocket یک جلسه بین کلاینت و سرور Gemini برقرار می‌کند. پس از اینکه کلاینت یک اتصال جدید را آغاز می‌کند، جلسه می‌تواند پیام‌هایی را با سرور رد و بدل کند تا:

  • متن، صدا یا ویدیو را به سرور جمینی ارسال کنید.
  • درخواست‌های صوتی، متنی یا تماس عملکردی را از سرور Gemini دریافت کنید.

اتصال وب‌سوکت

برای شروع یک جلسه، به این نقطه پایانی وب سوکت متصل شوید:

wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent

پیکربندی جلسه

پیام اولیه‌ای که پس از برقراری اتصال WebSocket ارسال می‌شود، پیکربندی جلسه را تنظیم می‌کند که شامل مدل، پارامترهای تولید، دستورالعمل‌های سیستم و ابزارها می‌شود.

شما نمی‌توانید پیکربندی را در حالی که اتصال باز است، به‌روزرسانی کنید. با این حال، می‌توانید پارامترهای پیکربندی، به جز مدل، را هنگام مکث و از سرگیری از طریق مکانیسم از سرگیری جلسه تغییر دهید.

به مثال پیکربندی زیر توجه کنید. توجه داشته باشید که نحوه‌ی نام‌گذاری در SDKها ممکن است متفاوت باشد. می‌توانید گزینه‌های پیکربندی SDK پایتون را اینجا جستجو کنید.


{
  "model": string,
  "generationConfig": {
    "candidateCount": integer,
    "maxOutputTokens": integer,
    "temperature": number,
    "topP": number,
    "topK": integer,
    "presencePenalty": number,
    "frequencyPenalty": number,
    "responseModalities": [string],
    "speechConfig": object,
    "mediaResolution": object
  },
  "systemInstruction": string,
  "tools": [object]
}

برای اطلاعات بیشتر در مورد فیلد API، به generationConfig مراجعه کنید.

ارسال پیام

برای تبادل پیام از طریق اتصال WebSocket، کلاینت باید یک شیء JSON را از طریق یک اتصال WebSocket باز ارسال کند. شیء JSON باید دقیقاً یکی از فیلدهای مجموعه شیء زیر را داشته باشد:


{
  "setup": BidiGenerateContentSetup,
  "clientContent": BidiGenerateContentClientContent,
  "realtimeInput": BidiGenerateContentRealtimeInput,
  "toolResponse": BidiGenerateContentToolResponse
}

پیام‌های کلاینت پشتیبانی‌شده

پیام‌های کلاینت پشتیبانی‌شده را در جدول زیر مشاهده کنید:

پیام توضیحات
BidiGenerateContentSetup پیکربندی جلسه که باید در اولین پیام ارسال شود
BidiGenerateContentClientContent به‌روزرسانی تدریجی محتوای مکالمه فعلی ارائه شده از طرف کلاینت
BidiGenerateContentRealtimeInput ورودی صوتی، تصویری یا متنی بلادرنگ
BidiGenerateContentToolResponse پاسخ به یک ToolCallMessage دریافت شده از سرور

دریافت پیام‌ها

برای دریافت پیام‌ها از Gemini، به رویداد 'message' در WebSocket گوش دهید و سپس نتیجه را طبق تعریف پیام‌های سرور پشتیبانی‌شده تجزیه کنید.

موارد زیر را ببینید:

async with client.aio.live.connect(model='...', config=config) as session:
    await session.send(input='Hello world!', end_of_turn=True)
    async for message in session.receive():
        print(message)

پیام‌های سرور ممکن است دارای فیلد usageMetadata باشند، اما در غیر این صورت دقیقاً یکی از فیلدهای دیگر پیام BidiGenerateContentServerMessage را شامل می‌شوند. (اتحادیه messageType در JSON بیان نشده است، بنابراین این فیلد در سطح بالای پیام ظاهر می‌شود.)

پیام‌ها و رویدادها

پایان فعالیت

این نوع هیچ فیلدی ندارد.

پایان فعالیت کاربر را نشان می‌دهد.

مدیریت فعالیت

روش‌های مختلف مدیریت فعالیت کاربران

انوم‌ها
ACTIVITY_HANDLING_UNSPECIFIED اگر مشخص نشده باشد، رفتار پیش‌فرض START_OF_ACTIVITY_INTERRUPTS است.
START_OF_ACTIVITY_INTERRUPTS اگر درست باشد، شروع فعالیت، پاسخ مدل را قطع می‌کند (که به آن "barge in" نیز می‌گویند). پاسخ فعلی مدل در لحظه وقفه قطع می‌شود. این رفتار پیش‌فرض است.
NO_INTERRUPTION پاسخ مدل قطع نخواهد شد.

شروع فعالیت

این نوع هیچ فیلدی ندارد.

شروع فعالیت کاربر را نشان می‌دهد.

پیکربندی رونویسی صوتی

این نوع هیچ فیلدی ندارد.

پیکربندی رونویسی صوتی.

تشخیص خودکار فعالیت

تشخیص خودکار فعالیت را پیکربندی می‌کند.

فیلدها
disabled

bool

اختیاری. در صورت فعال بودن (پیش‌فرض)، ورودی‌های صوتی و متنی شناسایی‌شده به عنوان فعالیت شمارش می‌شوند. در صورت غیرفعال بودن، کلاینت باید سیگنال‌های فعالیت ارسال کند.

startOfSpeechSensitivity

StartSensitivity

اختیاری. تعیین می‌کند که احتمال تشخیص گفتار چقدر است.

prefixPaddingMs

int32

اختیاری. مدت زمان مورد نیاز برای تشخیص گفتار قبل از شروع گفتار. هرچه این مقدار کمتر باشد، تشخیص شروع گفتار حساس‌تر است و گفتار کوتاه‌تر قابل تشخیص است. با این حال، این امر احتمال تشخیص‌های مثبت کاذب را نیز افزایش می‌دهد.

endOfSpeechSensitivity

EndSensitivity

اختیاری. تعیین می‌کند که احتمال پایان یافتن گفتار شناسایی‌شده چقدر است.

silenceDurationMs

int32

اختیاری. مدت زمان مورد نیاز برای تشخیص عدم گفتار (مثلاً سکوت) قبل از پایان گفتار. هرچه این مقدار بزرگتر باشد، می‌توان فواصل گفتاری را بدون ایجاد وقفه در فعالیت کاربر طولانی‌تر کرد، اما این امر تأخیر مدل را افزایش می‌دهد.

BidiGenerateContentClientContent

به‌روزرسانی افزایشی مکالمه فعلی ارائه شده از کلاینت. تمام محتوای اینجا بدون قید و شرط به تاریخچه مکالمه اضافه می‌شود و به عنوان بخشی از اعلان مدل برای تولید محتوا استفاده می‌شود.

یک پیام در اینجا هرگونه تولید مدل فعلی را قطع می‌کند.

فیلدها
turns[]

Content

اختیاری. محتوایی که به مکالمه فعلی با مدل اضافه شده است.

برای پرس‌وجوهای تک نوبتی، این یک نمونه واحد است. برای پرس‌وجوهای چند نوبتی، این یک فیلد تکراری است که شامل سابقه مکالمه و آخرین درخواست است.

turnComplete

bool

اختیاری. اگر درست باشد، نشان می‌دهد که تولید محتوای سرور باید با اعلان انباشته‌شده‌ی فعلی شروع شود. در غیر این صورت، سرور قبل از شروع تولید منتظر پیام‌های اضافی می‌ماند.

BidiGenerateContentRealtimeInput

ورودی کاربر که به صورت بلادرنگ ارسال می‌شود.

روش‌های مختلف (صوت، تصویر و متن) به صورت جریان‌های همزمان مدیریت می‌شوند. ترتیب قرارگیری در بین این جریان‌ها تضمین شده نیست.

این از چند جهت با BidiGenerateContentClientContent متفاوت است:

  • می‌تواند به طور مداوم و بدون وقفه برای تولید مدل ارسال شود.
  • اگر نیاز به ترکیب داده‌های موجود در بین BidiGenerateContentClientContent و BidiGenerateContentRealtimeInput باشد، سرور تلاش می‌کند تا بهترین پاسخ را بهینه‌سازی کند، اما هیچ تضمینی وجود ندارد.
  • پایان نوبت به صراحت مشخص نشده است، بلکه از فعالیت کاربر (مثلاً پایان سخنرانی) استنباط می‌شود.
  • حتی قبل از پایان نوبت، داده‌ها به صورت تدریجی پردازش می‌شوند تا برای شروع سریع پاسخ از مدل بهینه شوند.
فیلدها
mediaChunks[]

Blob

اختیاری. داده‌های بایت درون‌خطی برای ورودی رسانه. چندین mediaChunks پشتیبانی نمی‌شوند، همه به جز اولی نادیده گرفته می‌شوند.

منسوخ شده: به جای آن از یکی از audio ، video یا text استفاده کنید.

audio

Blob

اختیاری. اینها جریان ورودی صوتی بلادرنگ را تشکیل می‌دهند.

video

Blob

اختیاری. اینها جریان ورودی ویدیوی بلادرنگ را تشکیل می‌دهند.

activityStart

ActivityStart

اختیاری. شروع فعالیت کاربر را نشان می‌دهد. این فقط در صورتی قابل ارسال است که تشخیص خودکار فعالیت (یعنی سمت سرور) غیرفعال باشد.

activityEnd

ActivityEnd

اختیاری. پایان فعالیت کاربر را نشان می‌دهد. این فقط در صورتی قابل ارسال است که تشخیص خودکار فعالیت (یعنی سمت سرور) غیرفعال باشد.

audioStreamEnd

bool

اختیاری. نشان می‌دهد که جریان صوتی پایان یافته است، مثلاً به دلیل خاموش شدن میکروفون.

این فقط باید زمانی ارسال شود که تشخیص خودکار فعالیت فعال باشد (که پیش‌فرض است).

کلاینت می‌تواند با ارسال یک پیام صوتی، استریم را دوباره باز کند.

text

string

اختیاری. اینها جریان ورودی متن بلادرنگ را تشکیل می‌دهند.

BidiGenerateContentServerContent

به‌روزرسانی افزایشی سرور که توسط مدل در پاسخ به پیام‌های کلاینت ایجاد می‌شود.

محتوا در سریع‌ترین زمان ممکن تولید می‌شود و نه به صورت بلادرنگ. مشتریان می‌توانند آن را ذخیره کرده و به صورت بلادرنگ پخش کنند.

فیلدها
generationComplete

bool

فقط خروجی. اگر درست باشد، نشان می‌دهد که مدل تولید را تمام کرده است.

وقتی مدل هنگام تولید دچار وقفه شود، هیچ پیام «generation_complete» در نوبت وقفه‌دار وجود نخواهد داشت، و از طریق «interrupted > turn_complete» اجرا می‌شود.

وقتی مدل فرض می‌کند که پخش در زمان واقعی انجام می‌شود، بین generation_complete و turn_complete تأخیری وجود خواهد داشت که ناشی از انتظار مدل برای پایان پخش است.

turnComplete

bool

فقط خروجی. اگر درست باشد، نشان می‌دهد که مدل نوبت خود را تکمیل کرده است. تولید فقط در پاسخ به پیام‌های اضافی کلاینت شروع می‌شود.

interrupted

bool

فقط خروجی. اگر درست باشد، نشان می‌دهد که یک پیام کلاینت، تولید مدل فعلی را متوقف کرده است. اگر کلاینت در حال پخش محتوا به صورت بلادرنگ است، این سیگنال خوبی برای توقف و خالی کردن صف پخش فعلی است.

groundingMetadata

GroundingMetadata

فقط خروجی. فراداده‌های زمینه‌ای برای محتوای تولید شده.

inputTranscription

BidiGenerateContentTranscription

فقط خروجی. رونویسی صوتی ورودی. رونویسی مستقل از سایر پیام‌های سرور ارسال می‌شود و هیچ ترتیب تضمین‌شده‌ای وجود ندارد.

outputTranscription

BidiGenerateContentTranscription

فقط خروجی. رونویسی صوتی خروجی. رونویسی مستقل از سایر پیام‌های سرور ارسال می‌شود و هیچ ترتیب تضمین‌شده‌ای وجود ندارد، به‌ویژه بین serverContent و این outputTranscription .

urlContextMetadata

UrlContextMetadata

modelTurn

Content

فقط خروجی. محتوایی که مدل به عنوان بخشی از مکالمه فعلی با کاربر تولید کرده است.

BidiGenerateContentServerMessage

پیام پاسخ برای فراخوانی BidiGenerateContent.

فیلدها
usageMetadata

UsageMetadata

فقط خروجی. استفاده از فراداده در مورد پاسخ(ها).

فیلد union messageType . نوع پیام. messageType فقط می‌تواند یکی از موارد زیر باشد:
setupComplete

BidiGenerateContentSetupComplete

فقط خروجی. در پاسخ به پیام BidiGenerateContentSetup از کلاینت، پس از اتمام راه‌اندازی، ارسال می‌شود.

serverContent

BidiGenerateContentServerContent

فقط خروجی. محتوایی که توسط مدل در پاسخ به پیام‌های کلاینت تولید می‌شود.

toolCall

BidiGenerateContentToolCall

فقط خروجی. از کلاینت درخواست کنید تا functionCalls را اجرا کند و پاسخ‌ها را با id منطبق برگرداند.

toolCallCancellation

BidiGenerateContentToolCallCancellation

فقط خروجی. اعلانی برای کلاینت مبنی بر اینکه ToolCallMessage قبلاً صادر شده با id مشخص شده باید لغو شود.

goAway

GoAway

فقط خروجی. اخطاری مبنی بر اینکه سرور به زودی قطع خواهد شد.

sessionResumptionUpdate

SessionResumptionUpdate

فقط خروجی. به‌روزرسانی وضعیت از سرگیری جلسه.

تنظیمات محتوای BidiGenerate

پیامی که قرار است در اولین (و فقط در اولین) BidiGenerateContentClientMessage ارسال شود. حاوی پیکربندی است که در طول مدت RPC استریمینگ اعمال خواهد شد.

کلاینت‌ها باید قبل از ارسال هرگونه پیام اضافی، منتظر پیام BidiGenerateContentSetupComplete باشند.

فیلدها
model

string

الزامی. نام منبع مدل. این به عنوان شناسه‌ای برای استفاده مدل عمل می‌کند.

قالب: models/{model}

generationConfig

GenerationConfig

اختیاری. پیکربندی نسل.

فیلدهای زیر پشتیبانی نمی‌شوند:

  • responseLogprobs
  • responseMimeType
  • logprobs
  • responseSchema
  • stopSequence
  • routingConfig
  • audioTimestamp
systemInstruction

Content

اختیاری. کاربر دستورالعمل‌های سیستمی را برای مدل ارائه داده است.

توجه: فقط متن باید در بخش‌ها استفاده شود و محتوای هر بخش در یک پاراگراف جداگانه قرار گیرد.

tools[]

Tool

اختیاری. فهرستی از Tools مدل ممکن است برای تولید پاسخ بعدی استفاده کند.

Tool ، قطعه کدی است که سیستم را قادر می‌سازد تا با سیستم‌های خارجی تعامل داشته باشد تا یک یا مجموعه‌ای از اقدامات را خارج از دانش و محدوده مدل انجام دهد.

realtimeInputConfig

RealtimeInputConfig

اختیاری. نحوه‌ی مدیریت ورودی‌های بی‌درنگ را پیکربندی می‌کند.

sessionResumption

SessionResumptionConfig

اختیاری. مکانیزم از سرگیری جلسه را پیکربندی می‌کند.

در صورت وجود، سرور پیام‌های SessionResumptionUpdate را ارسال خواهد کرد.

contextWindowCompression

ContextWindowCompressionConfig

اختیاری. مکانیزم فشرده‌سازی پنجره زمینه را پیکربندی می‌کند.

در صورت وجود، سرور به طور خودکار اندازه context را هنگامی که از طول پیکربندی شده تجاوز کند، کاهش می‌دهد.

inputAudioTranscription

AudioTranscriptionConfig

اختیاری. در صورت تنظیم، رونویسی ورودی صوتی را فعال می‌کند. در صورت پیکربندی، رونویسی با زبان صوتی ورودی هم‌تراز می‌شود.

outputAudioTranscription

AudioTranscriptionConfig

اختیاری. در صورت تنظیم، رونویسی خروجی صدای مدل را فعال می‌کند. در صورت پیکربندی، رونویسی با کد زبان مشخص شده برای صدای خروجی هم‌تراز می‌شود.

proactivity

ProactivityConfig

اختیاری. میزان فعالیت مدل را پیکربندی می‌کند.

این به مدل اجازه می‌دهد تا به ورودی‌ها به صورت پیشگیرانه پاسخ دهد و ورودی‌های نامربوط را نادیده بگیرد.

BidiGenerateContentSetupComplete

این نوع هیچ فیلدی ندارد.

در پاسخ به پیام BidiGenerateContentSetup از کلاینت ارسال شده است.

تماس با ابزار تولید محتوا (BidiGenerateContentToolCall)

از کلاینت درخواست کنید تا functionCalls را اجرا کند و پاسخ‌ها را با id منطبق s برگرداند.

فیلدها
functionCalls[]

FunctionCall

فقط خروجی. فراخوانی تابعی که قرار است اجرا شود.

BidiGenerateContentToolCallCancellation

اعلانی برای کلاینت مبنی بر اینکه ToolCallMessage قبلاً صادر شده با id مشخص شده نباید اجرا می‌شد و باید لغو شود. اگر عوارض جانبی در آن فراخوانی‌های ابزار وجود داشته باشد، کلاینت‌ها می‌توانند سعی کنند فراخوانی‌های ابزار را لغو کنند. این پیام فقط در مواردی رخ می‌دهد که کلاینت‌ها چرخش‌های سرور را قطع می‌کنند.

فیلدها
ids[]

string

فقط خروجی. شناسه‌های فراخوانی‌های ابزار باید لغو شوند.

BidiGenerateContentToolResponse

پاسخ تولید شده توسط کلاینت به یک ToolCall دریافتی از سرور. اشیاء FunctionResponse به صورت جداگانه توسط فیلد id با اشیاء FunctionCall مربوطه تطبیق داده می‌شوند.

توجه داشته باشید که در APIهای GenerateContent تکی و جریانی سرور، فراخوانی تابع با تبادل بخش‌های Content انجام می‌شود، در حالی که در APIهای GenerateContent بیدی، فراخوانی تابع روی این مجموعه اختصاصی از پیام‌ها انجام می‌شود.

فیلدها
functionResponses[]

FunctionResponse

اختیاری. پاسخ به فراخوانی‌های تابع.

BidiGenerateContentTranscription

رونویسی صدا (ورودی یا خروجی).

فیلدها
text

string

متن رونویسی.

پیکربندی ContextWindowCompression

فشرده‌سازی پنجره زمینه را فعال می‌کند - مکانیزمی برای مدیریت پنجره زمینه مدل به طوری که از طول مشخصی تجاوز نکند.

فیلدها
compressionMechanism فیلد یونیون. مکانیسم فشرده‌سازی پنجره زمینه مورد استفاده. compressionMechanism می‌تواند فقط یکی از موارد زیر باشد:
slidingWindow

SlidingWindow

مکانیزم پنجره کشویی.

triggerTokens

int64

تعداد توکن‌هایی (قبل از اجرای یک نوبت) که برای فشرده‌سازی پنجره‌ی زمینه لازم است.

این می‌تواند برای ایجاد تعادل بین کیفیت و تأخیر استفاده شود، زیرا پنجره‌های متنی کوتاه‌تر ممکن است منجر به پاسخ‌های سریع‌تر مدل شوند. با این حال، هرگونه عملیات فشرده‌سازی باعث افزایش موقت تأخیر می‌شود، بنابراین نباید مرتباً فعال شوند.

اگر تنظیم نشود، پیش‌فرض ۸۰٪ از محدودیت پنجره‌ی زمینه‌ی مدل است. این مقدار ۲۰٪ را برای درخواست/پاسخ مدل بعدی کاربر باقی می‌گذارد.

پایان حساسیت

نحوه تشخیص پایان گفتار را تعیین می‌کند.

انوم‌ها
END_SENSITIVITY_UNSPECIFIED مقدار پیش‌فرض END_SENSITIVITY_HIGH است.
END_SENSITIVITY_HIGH تشخیص خودکار، گفتار را بیشتر قطع می‌کند.
END_SENSITIVITY_LOW تشخیص خودکار، گفتار را کمتر قطع می‌کند.

برو کنار

اخطاری مبنی بر اینکه سرور به زودی قطع خواهد شد.

فیلدها
timeLeft

Duration

زمان باقی مانده قبل از اتصال به عنوان لغو شده (ABORTED) خاتمه خواهد یافت.

این مدت هرگز کمتر از حداقل مشخص شده برای مدل نخواهد بود، که همراه با محدودیت‌های نرخ برای مدل مشخص می‌شود.

پرواکتیویته کانفیگ

پیکربندی برای ویژگی‌های پیشگیرانه.

فیلدها
proactiveAudio

bool

اختیاری. در صورت فعال بودن، مدل می‌تواند از پاسخ دادن به آخرین درخواست خودداری کند. برای مثال، این به مدل اجازه می‌دهد تا سخنان خارج از متن را نادیده بگیرد یا اگر کاربر هنوز درخواستی نداده است، سکوت کند.

پیکربندی ورودی بلادرنگ

رفتار ورودی بی‌درنگ را در BidiGenerateContent پیکربندی می‌کند.

فیلدها
automaticActivityDetection

AutomaticActivityDetection

اختیاری. اگر تنظیم نشود، تشخیص خودکار فعالیت به طور پیش‌فرض فعال است. اگر تشخیص خودکار صدا غیرفعال باشد، کلاینت باید سیگنال‌های فعالیت ارسال کند.

activityHandling

ActivityHandling

اختیاری. تعریف می‌کند که فعالیت چه تأثیری دارد.

turnCoverage

TurnCoverage

اختیاری. مشخص می‌کند که کدام ورودی در نوبت کاربر لحاظ شود.

پیکربندی SessionResum

پیکربندی از سرگیری جلسه.

این پیام در پیکربندی جلسه با عنوان BidiGenerateContentSetup.sessionResumption گنجانده شده است. در صورت پیکربندی، سرور پیام‌های SessionResumptionUpdate ارسال خواهد کرد.

فیلدها
handle

string

شناسه‌ی جلسه‌ی قبلی. اگر موجود نباشد، یک جلسه‌ی جدید ایجاد می‌شود.

شناسه‌های نشست (Session Handles) از مقادیر SessionResumptionUpdate.token در اتصالات قبلی می‌آیند.

به‌روزرسانی از سرگیری جلسه

به‌روزرسانی وضعیت از سرگیری جلسه.

فقط در صورتی ارسال می‌شود که BidiGenerateContentSetup.sessionResumption تنظیم شده باشد.

فیلدها
newHandle

string

یک شناسه جدید که نشان‌دهنده وضعیتی است که می‌تواند از سر گرفته شود. در صورت resumable =false بودن، خالی است.

resumable

bool

اگر بتوان نشست فعلی را در این مرحله از سر گرفت، صحیح است.

در برخی از نقاط session، از سرگیری امکان‌پذیر نیست. برای مثال، هنگامی که مدل در حال اجرای فراخوانی‌های تابع یا تولید است. از سرگیری session (با استفاده از توکن session قبلی) در چنین حالتی منجر به از دست رفتن مقداری از داده‌ها خواهد شد. در این موارد، newHandle خالی و resumable نادرست خواهد بود.

پنجره کشویی

متد SlidingWindow با حذف محتوا در ابتدای پنجره context عمل می‌کند. context حاصل همیشه از ابتدای چرخش نقش USER شروع می‌شود. دستورالعمل‌های سیستم و هرگونه BidiGenerateContentSetup.prefixTurns همیشه در ابتدای نتیجه باقی می‌مانند.

فیلدها
targetTokens

int64

تعداد هدف توکن‌هایی که باید نگه داشته شوند. مقدار پیش‌فرض trigger_tokens/2 است.

حذف بخش‌هایی از پنجره زمینه باعث افزایش موقت تأخیر می‌شود، بنابراین این مقدار باید کالیبره شود تا از عملیات فشرده‌سازی مکرر جلوگیری شود.

حساسیت شروع

نحوه تشخیص شروع گفتار را تعیین می‌کند.

انوم‌ها
START_SENSITIVITY_UNSPECIFIED مقدار پیش‌فرض START_SENSITIVITY_HIGH است.
START_SENSITIVITY_HIGH تشخیص خودکار، شروع گفتار را بیشتر تشخیص می‌دهد.
START_SENSITIVITY_LOW تشخیص خودکار، شروع گفتار را کمتر تشخیص می‌دهد.

پوشش نوبتی

گزینه‌هایی در مورد اینکه کدام ورودی‌ها در نوبت کاربر لحاظ شوند.

انوم‌ها
TURN_COVERAGE_UNSPECIFIED اگر مشخص نشده باشد، رفتار پیش‌فرض TURN_INCLUDES_ONLY_ACTIVITY است.
TURN_INCLUDES_ONLY_ACTIVITY نوبت کاربر فقط شامل فعالیت‌های انجام شده از آخرین نوبت به بعد می‌شود و عدم فعالیت (مثلاً سکوت در پخش صدا) را شامل نمی‌شود. این رفتار پیش‌فرض است.
TURN_INCLUDES_ALL_INPUT نوبت کاربر شامل تمام ورودی‌های بلادرنگ از آخرین نوبت، از جمله عدم فعالیت (مثلاً سکوت در جریان صوتی) می‌شود.

فراداده‌ی UrlContext

فراداده مربوط به ابزار بازیابی متن url.

فیلدها
urlMetadata[]

UrlMetadata

فهرست زمینه آدرس اینترنتی.

کاربردفراداده

فراداده‌های مربوط به پاسخ(ها).

فیلدها
promptTokenCount

int32

فقط خروجی. تعداد توکن‌های موجود در اعلان. وقتی cachedContent تنظیم شده باشد، این همچنان اندازه کل مؤثر اعلان است، به این معنی که شامل تعداد توکن‌های موجود در محتوای ذخیره شده نیز می‌شود.

cachedContentTokenCount

int32

تعداد توکن‌ها در بخش ذخیره‌شده‌ی اعلان (محتوای ذخیره‌شده)

responseTokenCount

int32

فقط خروجی. تعداد کل توکن‌ها در بین تمام کاندیدهای پاسخ تولید شده.

toolUsePromptTokenCount

int32

فقط خروجی. تعداد توکن‌های موجود در اعلان(های) استفاده از ابزار.

thoughtsTokenCount

int32

فقط خروجی. تعداد توکن‌های افکار برای مدل‌های تفکر.

totalTokenCount

int32

فقط خروجی. تعداد کل توکن‌ها برای درخواست تولید (نامزدهای اعلان + پاسخ).

promptTokensDetails[]

ModalityTokenCount

فقط خروجی. فهرست روش‌هایی که در ورودی درخواست پردازش شده‌اند.

cacheTokensDetails[]

ModalityTokenCount

فقط خروجی. فهرستی از روش‌های محتوای ذخیره‌شده در ورودی درخواست.

responseTokensDetails[]

ModalityTokenCount

فقط خروجی. فهرست روش‌هایی که در پاسخ برگردانده شده‌اند.

toolUsePromptTokensDetails[]

ModalityTokenCount

فقط خروجی. فهرست روش‌هایی که برای ورودی‌های درخواست استفاده از ابزار پردازش شده‌اند.

توکن‌های احراز هویت موقت

توکن‌های احراز هویت موقت را می‌توان با فراخوانی AuthTokenService.CreateToken به دست آورد و سپس با GenerativeService.BidiGenerateContentConstrained استفاده کرد، یا با ارسال توکن در یک پارامتر پرس‌وجوی access_token ، یا در یک هدر HTTP Authorization با پیشوند " Token " به آن.

درخواست ایجاد توکن احراز هویت

یک توکن احراز هویت موقت ایجاد کنید.

فیلدها
authToken

AuthToken

الزامی. توکنی که باید ایجاد شود.

توکن احراز هویت

درخواستی برای ایجاد یک توکن احراز هویت موقت.

فیلدها
name

string

فقط خروجی. شناسه. خود توکن.

expireTime

Timestamp

اختیاری. فقط ورودی. تغییرناپذیر. یک زمان اختیاری که پس از آن، هنگام استفاده از توکن حاصل، پیام‌های موجود در جلسات BidiGenerateContent رد می‌شوند. (Gemini ممکن است پس از این زمان، جلسه را به صورت پیشگیرانه ببندد.)

اگر تنظیم نشده باشد، این مقدار به صورت پیش‌فرض روی ۳۰ دقیقه در آینده تنظیم می‌شود. در صورت تنظیم، این مقدار باید کمتر از ۲۰ ساعت در آینده باشد.

newSessionExpireTime

Timestamp

اختیاری. فقط ورودی. تغییرناپذیر. زمانی که پس از آن، جلسات جدید Live API با استفاده از توکن حاصل از این درخواست رد می‌شوند.

اگر تنظیم نشود، پیش‌فرض‌ها روی ۶۰ ثانیه در آینده تنظیم می‌شوند. اگر تنظیم شود، این مقدار باید کمتر از ۲۰ ساعت در آینده باشد.

fieldMask

FieldMask

اختیاری. فقط ورودی. تغییرناپذیر. اگر field_mask خالی باشد و bidiGenerateContentSetup وجود نداشته باشد، پیام مؤثر BidiGenerateContentSetup از اتصال Live API گرفته می‌شود.

اگر field_mask خالی باشد و bidiGenerateContentSetup موجود باشد ، پیام مؤثر BidiGenerateContentSetup به طور کامل از bidiGenerateContentSetup در این درخواست گرفته می‌شود. پیام راه‌اندازی از اتصال Live API نادیده گرفته می‌شود.

اگر field_mask خالی نباشد، فیلدهای مربوطه از bidiGenerateContentSetup فیلدهای پیام راه‌اندازی در اتصال Live API را بازنویسی می‌کنند.

config فیلد Union. پیکربندی مختص متد برای token.config config می‌تواند فقط یکی از موارد زیر باشد:
bidiGenerateContentSetup

BidiGenerateContentSetup

اختیاری. فقط ورودی. تغییرناپذیر. پیکربندی مختص BidiGenerateContent .

uses

int32

اختیاری. فقط ورودی. تغییرناپذیر. تعداد دفعاتی که می‌توان از توکن استفاده کرد. اگر این مقدار صفر باشد، هیچ محدودیتی اعمال نمی‌شود. از سرگیری یک جلسه Live API به عنوان یک استفاده حساب نمی‌شود. اگر مشخص نشود، پیش‌فرض ۱ است.

اطلاعات بیشتر در مورد انواع رایج

برای اطلاعات بیشتر در مورد انواع منابع API رایج Blob ، Content ، FunctionCall ، FunctionResponse ، GenerationConfig ، GroundingMetadata ، ModalityTokenCount و Tool ، به بخش تولید محتوا مراجعه کنید.