Live API - WebSockets API reference

API-ja e transmetimit të drejtpërdrejtë është një API me gjendje që përdor WebSockets. Në këtë seksion, do të gjesh detaje shtesë në lidhje me API-në e WebSockets.

Seancat

Një lidhje WebSocket krijon një seancë midis klientit dhe serverit të Gemini. Pasi një klient të nisë një lidhje të re, seanca mund të shkëmbejë mesazhe me serverin për të:

  • Dërgo tekst, audio ose video te serveri i Gemini.
  • Të marrë kërkesa për audio, tekst ose telefonata funksioni nga serveri i Gemini.

Lidhja e WebSocket

Për të nisur një seancë, lidhu me këtë pikë fundore të uebsocket:

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

Konfigurimi i seancës

Mesazhi fillestar i dërguar pas krijimit të lidhjes së WebSocket përcakton konfigurimin e seancës, i cili përfshin modelin, parametrat e gjenerimit, udhëzimet e sistemit dhe veglat.

Nuk mund ta përditësosh konfigurimin ndërkohë që lidhja është e hapur. Megjithatë, mund t'i ndryshosh parametrat e konfigurimit, përveç modelit, kur vendos në pauzë dhe vazhdon nëpërmjet mekanizmit të vazhdimit të seancës.

Shiko shembullin e mëposhtëm të konfigurimit. Ki parasysh se shkronjat e mëdha dhe të vogla në SDK mund të ndryshojnë. Mund të shikosh opsionet e konfigurimit të Python SDK këtu.


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

Për më shumë informacione për fushën e API-së, shiko generationConfig.

Dërgo mesazhe

Për të shkëmbyer mesazhe nëpërmjet lidhjes WebSocket, klienti duhet të dërgojë një objekt JSON nëpërmjet një lidhjeje të hapur WebSocket. Objekti JSON duhet të ketë pikërisht një nga fushat nga grupi i mëposhtëm i objekteve:


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

Mesazhet e klientit që mbështeten

Shiko mesazhet e mbështetura të klientëve në tabelën e mëposhtme:

Dërgo mesazh Përshkrimi
BidiGenerateContentSetup Konfigurimi i seancës që do të dërgohet në mesazhin e parë
BidiGenerateContentClientContent Përditësimi i përmbajtjes rritëse i bisedës aktuale i dërguar nga klienti
BidiGenerateContentRealtimeInput Hyrje në kohë reale të audios, videos ose tekstit
BidiGenerateContentToolResponse Përgjigje për një ToolCallMessage të marrë nga serveri

Merr mesazhe

Për të marrë mesazhe nga Gemini, dëgjo për ngjarjen e "mesazhit" të WebSocket dhe më pas analizo rezultatin sipas përcaktimit të mesazheve të serverit të mbështetur.

Shiko sa më poshtë:

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)

Mesazhet e serverit mund të kenë një fushë usageMetadata, por në rast të kundërt do të përfshijnë pikërisht një nga fushat e tjera nga mesazhi BidiGenerateContentServerMessage. (Unioni messageType nuk shprehet në JSON, prandaj fusha do të shfaqet në nivelin e sipërm të mesazhit.)

Mesazhet dhe ngjarjet

ActivityEnd

Ky lloj nuk ka fusha.

Shënon fundin e aktivitetit të përdoruesit.

ActivityHandling

Mënyrat e ndryshme për trajtimin e aktivitetit të përdoruesit.

Enumeracionet
ACTIVITY_HANDLING_UNSPECIFIED Nëse nuk specifikohet, sjellja e parazgjedhur është START_OF_ACTIVITY_INTERRUPTS.
START_OF_ACTIVITY_INTERRUPTS Nëse është e vërtetë, fillimi i aktivitetit do të ndërpresë përgjigjen e modelit (quhet edhe "ndërhyrje"). Përgjigjja aktuale e modelit do të ndërpritet në momentin e ndërprerjes. Kjo është sjellja e parazgjedhur.
NO_INTERRUPTION Përgjigjja e modelit nuk do të ndërpritet.

ActivityStart

Ky lloj nuk ka fusha.

Shënon fillimin e aktivitetit të përdoruesit.

AudioTranscriptionConfig

Konfigurimi i transkriptimit të audios.

Fushat
languageCodes[]

string

Opsionale. Kodet e gjuhës BCP-47 që japin sugjerime për gjuhët e pranishme në audio. Nëse hiqet ose është bosh, si parazgjedhje përdoret zbulimi automatik i gjuhës.

customVocabulary[]

string

Opsionale. Një listë me fraza të personalizuara të fjalorit për të orientuar modelin e njohjes së ligjërimit drejt njohjes së termave specifikë (emrat e produkteve, emrat e përveçëm, zhargon).

wordTimestamp

bool

Opsionale. Konfiguron gjenerimin e vulës kohore në nivel fjale.

diarization

bool

Opsionale. Konfiguron identifikimin e folësit.

mode

Mode

Opsionale. Konfiguron modalitetin e transkriptimit. Vlerat e mbështetura: VERBATIM, SMART. Nëse nuk specifikohet, parazgjedhja është transkriptimi në VERBATIM. Në modalitetin SMART, modeli kryen heqjen e gabimeve gjuhësore (eliminimin e fjalëve mbushëse, përsëritjeve dhe fillimeve të pasakta), pastrimin e lehtë gramatikor, formatimin automatik (paragrafët, pikat e listës, listat e numëruara) dhe modifikimet e vogla të përdoruesit (vetëkorrigjimet e integruara). Vulët kohore dhe diarizimi nuk përputhen me modalitetin SMART.

Modaliteti

Modaliteti i transkriptimit.

Enumeracionet
MODE_UNSPECIFIED Modaliteti i paspecifikuar i transkriptimit.
VERBATIM Modaliteti i transkriptimit fjalë për fjalë.
SMART Modaliteti i transkriptimit inteligjent.

AutomaticActivityDetection

Konfiguron zbulimin automatik të aktivitetit.

Fushat
disabled

bool

Opsionale. Nëse aktivizohet (parazgjedhja), zëri i zbuluar dhe numri i hyrjeve me tekst llogariten si aktivitet. Nëse çaktivizohet, klienti duhet të dërgojë sinjale të aktivitetit.

startOfSpeechSensitivity

StartSensitivity

Opsionale. Përcakton se sa ka gjasa të zbulohet ligjërimi.

prefixPaddingMs

int32

Opsionale. Kohëzgjatja e kërkuar e ligjërimit të zbuluar para se të angazhohet fillimi i ligjërimit. Sa më e ulët të jetë kjo vlerë, aq më i ndjeshëm është zbulimi i fillimit të ligjërimit dhe aq më i shkurtër mund të njihet ligjërimi. Megjithatë, kjo rrit gjithashtu probabilitetin e rezultateve pozitive të rreme.

endOfSpeechSensitivity

EndSensitivity

Opsionale. Përcakton se sa ka gjasa që ligjërimi i zbuluar të ketë përfunduar.

silenceDurationMs

int32

Opsionale. Kohëzgjatja e kërkuar e ligjërimit të zbuluar jo të ligjërimit (p.sh. heshtje) para se të kryhet fundi i ligjërimit. Sa më e madhe të jetë kjo vlerë, aq më të gjata mund të jenë boshllëqet e të folurit pa ndërprerë aktivitetin e përdoruesit, por kjo do të rritë vonesën e modelit.

BidiGenerateContentClientContent

Përditësimi rritës i bisedës aktuale i dërguar nga klienti. Të gjitha përmbajtjet këtu i shtohen pa kushte historikut të bisedave dhe përdoren si pjesë e kërkesës për modelin për të gjeneruar përmbajtje.

Një mesazh këtu do të ndërpresë çdo gjenerim aktual të modelit.

Fushat
turns[]

Content

Opsionale. Përmbajtja e shtuar në bisedën aktuale me modelin.

Për pyetjet me një kthesë, kjo është një rast i vetëm. Për kërkesat me shumë kthesa, ky është një fushë e përsëritur që përmban historikun e bisedave dhe kërkesën më të fundit.

turnComplete

bool

Opsionale. Nëse është e vërtetë, tregon se gjenerimi i përmbajtjes së serverit duhet të fillojë me kërkesën e akumuluar aktualisht. Në rast të kundërt, serveri pret mesazhe shtesë para se të fillojë gjenerimin.

BidiGenerateContentRealtimeInput

Hyrja e përdoruesit që dërgohet në kohë reale.

Modalitetet e ndryshme (audio, video dhe tekst) trajtohen si transmetime të njëkohshme. Renditja nëpër këto transmetime nuk garantohet.

Kjo është e ndryshme nga BidiGenerateContentClientContent në disa mënyra:

  • Mund të dërgohen në mënyrë të vazhdueshme pa ndërprerje për gjenerimin e modelit.
  • Nëse ka nevojë për të përzier të dhënat e ndërthurura në BidiGenerateContentClientContent dhe BidiGenerateContentRealtimeInput, serveri përpiqet të optimizojë për përgjigjen më të mirë, por nuk ka garanci.
  • Fundi i radhës nuk është specifikuar në mënyrë të qartë, por është nxjerrë nga aktiviteti i përdoruesit (p.sh. fundi i të folurit).
  • Edhe para përfundimit të radhës, të dhënat përpunohen në mënyrë shtesë për të optimizuar për një nisje të shpejtë të përgjigjes nga modeli.
Fushat
mediaChunks[]

Blob

Opsionale. Të dhënat e bajteve të integruara për hyrjen e medias. mediaChunks të shumta nuk mbështeten, të gjitha përveç të parës do të shpërfillen.

E ZHVLERËSUAR: Përdor një nga audio, video ose text më mirë.

audio

Blob

Opsionale. Këto formojnë transmetimin e hyrjes audio në kohë reale.

video

Blob

Opsionale. Këto formojnë transmetimin e hyrjes së videos në kohë reale.

activityStart

ActivityStart

Opsionale. Shënon fillimin e aktivitetit të përdoruesit. Kjo mund të dërgohet vetëm nëse zbulimi automatik i aktivitetit (d.m.th. nga ana e serverit) është i çaktivizuar.

activityEnd

ActivityEnd

Opsionale. Shënon fundin e aktivitetit të përdoruesit. Kjo mund të dërgohet vetëm nëse zbulimi automatik i aktivitetit (d.m.th. nga ana e serverit) është i çaktivizuar.

mediaResolution

MediaResolution

Opsionale. Rezolucioni i medias për t'u përdorur. Nëse nuk specifikohet, përdoret setup.generationConfig.mediaResolution ose një parazgjedhje nëse nuk ofrohet konfigurimi.

audioStreamEnd

bool

Opsionale. Tregon se transmetimi i audios ka përfunduar, p.sh. sepse mikrofoni është fikur.

Kjo duhet të dërgohet vetëm kur është i aktivizuar zbulimi automatik i aktivitetit (që është parazgjedhja).

Klienti mund ta rihapë transmetimin duke dërguar një mesazh audio.

text

string

Opsionale. Këto formojnë transmetimin e hyrjes së tekstit në kohë reale.

BidiGenerateContentServerContent

Përditësimi shtesë i serverit i gjeneruar nga modeli në përgjigje të mesazheve të klientit.

Përmbajtja gjenerohet sa më shpejt që të jetë e mundur dhe jo në kohë reale. Klientët mund të zgjedhin ta ruajnë në memorien specifike dhe ta luajnë në kohë reale.

Fushat
generationComplete

bool

Vetëm rezultat. Nëse është e vërtetë, tregon që modeli ka përfunduar gjenerimin.

Kur modeli ndërpritet gjatë gjenerimit, nuk do të ketë mesazh "generation_complete" në kthesën e ndërprerë, ai do të kalojë nëpër "interrupted > turn_complete".

Kur modeli supozon luajtjen në kohë reale, do të ketë vonesë midis përfundimit të gjenerimit dhe përfundimit të radhës që shkaktohet nga modeli që pret që luajtja të përfundojë.

turnComplete

bool

Vetëm rezultat. Nëse është e vërtetë, tregon që modeli ka përfunduar radhën e tij. Gjenerimi do të fillojë vetëm në përgjigje të mesazheve shtesë të klientit. Ki parasysh se kur raportimi i statusit të luajtjes është i aktivizuar, kjo lëshohet vetëm kur statusi i luajtjes tregon se luajtja ka përfunduar. Statusi i luajtjes së ardhshme të të njëjtit brez do të shpërfillet.

interrupted

bool

Vetëm rezultat. Nëse është e vërtetë, tregon që një mesazh klienti ka ndërprerë gjenerimin aktual të modelit. Nëse klienti po luan përmbajtjen në kohë reale, ky është një sinjal i mirë për të ndaluar dhe për të zbrazur radhën aktuale të luajtjes.

groundingMetadata

GroundingMetadata

Vetëm rezultat. Metadatat e themelimit për përmbajtjen e gjeneruar.

inputTranscription

BidiGenerateContentTranscription

Vetëm rezultat. Hyrja e transkriptimit të audios. Transkriptimi dërgohet në mënyrë të pavarur nga mesazhet e tjera të serverit dhe nuk ka një renditje të garantuar.

interimInputTranscription

BidiGenerateContentTranscription

Vetëm rezultat. Transkriptimi me vonesë të ulët përditësohet ndërkohë që përdoruesi flet. Kjo fushë është objekt i përditësimeve të shpeshta.

outputTranscription

BidiGenerateContentTranscription

Vetëm rezultat. Transkriptimi i audios së daljes. Këto transkriptime janë pjesë e rezultatit të "Gjenerimit" të serverit. Transkriptimi i daljes së fundit të këtij radhe dërgohet para generationComplete ose interrupted, të cilat nga ana tjetër ndiqen nga turnComplete. Nuk ka një renditje të saktë të garantuar midis transkriptimeve dhe daljes tjetër të modelTurn, por serveri përpiqet t'i dërgojë transkriptet afër daljes përkatëse audio.

urlContextMetadata

UrlContextMetadata

waitingForInput

bool

Vetëm rezultat. Nëse është e vërtetë, tregon se modeli nuk po gjeneron përmbajtje sepse po pret më shumë hyrje nga përdoruesi, p.sh. sepse pret që përdoruesi të vazhdojë të flasë.

interactionStatus

InteractionStatus

Vetëm rezultat. Statusi aktual i aktivitetit të sesionit të drejtpërdrejtë. Dërgohet gjithmonë së bashku me turnComplete.

modelTurn

Content

Vetëm rezultat. Përmbajtja që ka gjeneruar modeli si pjesë e bisedës aktuale me përdoruesin.

BidiGenerateContentServerMessage

Mesazhi i përgjigjes për thirrjen BidiGenerateContent.

Fushat
usageMetadata

UsageMetadata

Vetëm rezultat. Metadatat e përdorimit për përgjigjet.

voiceActivity

VoiceActivity

Vetëm rezultat. U zbulua aktivitet zanor në transmetimin audio.

Fusha e bashkimit messageType. Lloji i mesazhit. messageType mund të jetë vetëm një nga sa më poshtë:
setupComplete

BidiGenerateContentSetupComplete

Vetëm rezultat. Dërguar në përgjigje të një mesazhi BidiGenerateContentSetup nga klienti kur konfigurimi të jetë përfunduar.

serverContent

BidiGenerateContentServerContent

Vetëm rezultat. Përmbajtja e gjeneruar nga modeli në përgjigje të mesazheve të klientit.

toolCall

BidiGenerateContentToolCall

Vetëm rezultat. Kërkesë për klientin që të ekzekutojë functionCalls dhe të kthejë përgjigjet me id që përputhen.

toolCallCancellation

BidiGenerateContentToolCallCancellation

Vetëm rezultat. Njoftim për klientin që një ToolCallMessage i lëshuar më parë me id të specifikuara duhet të anulohet.

goAway

GoAway

Vetëm rezultat. Një njoftim që serveri do të shkëputet së shpejti.

sessionResumptionUpdate

SessionResumptionUpdate

Vetëm rezultat. Përditësimi i gjendjes së vazhdimit të seancës.

BidiGenerateContentSetup

Mesazhi që do të dërgohet në BidiGenerateContentClientMessage e parë (dhe vetëm në të parën). Përmban konfigurimin që do të zbatohet për kohëzgjatjen e RPC-së së transmetimit.

Klientët duhet të presin për një mesazh BidiGenerateContentSetupComplete para se të dërgojnë mesazhe të tjera.

Fushat
model

string

Kërkohet. Emri i burimit të modelit. Kjo shërben si një ID për t'u përdorur nga modeli.

Formati: models/{model}

generationConfig

GenerationConfig

Opsionale. Konfigurimi i gjenerimit.

Fushat e mëposhtme nuk mbështeten:

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

Content

Opsionale. Përdoruesi ka dhënë udhëzime të sistemit për modelin.

Shënim. Vetëm teksti duhet të përdoret në pjesë dhe përmbajtja në çdo pjesë do të jetë në një paragraf të veçantë.

tools[]

Tool

Opsionale. Një listë e Tools që mund të përdorë modeli për të gjeneruar përgjigjen e radhës.

Një Tool është një pjesë kodi që e bën të mundur që sistemi të ndërveprojë me sisteme të jashtme për të kryer një veprim ose një grup veprimesh jashtë njohurive dhe fushëveprimit të modelit.

realtimeInputConfig

RealtimeInputConfig

Opsionale. Konfiguron trajtimin e hyrjes në kohë reale.

sessionResumption

SessionResumptionConfig

Opsionale. Konfiguron mekanizmin e vazhdimit të seancës.

Nëse përfshihen, serveri do të dërgojë SessionResumptionUpdate mesazhe.

contextWindowCompression

ContextWindowCompressionConfig

Opsionale. Konfiguron një mekanizëm ngjeshjeje të dritares kontekstuale.

Nëse përfshihet, serveri do të zvogëlojë automatikisht madhësinë e kontekstit kur ai tejkalon gjatësinë e konfiguruar.

inputAudioTranscription

AudioTranscriptionConfig

Opsionale. Nëse është caktuar, aktivizon transkriptimin e hyrjes zanore. Transkriptimi përputhet me gjuhën e audios hyrëse, nëse është konfiguruar.

outputAudioTranscription

AudioTranscriptionConfig

Opsionale. Nëse caktohet, aktivizon transkriptimin e daljes audio të modelit. Transkriptimi përputhet me kodin e gjuhës të specifikuar për audion e daljes, nëse është konfiguruar.

proactivity

ProactivityConfig

Opsionale. Konfiguron proaktivitetin e modelit.

Kjo lejon që modeli t'i përgjigjet në mënyrë proaktive hyrjes dhe të shpërfillë hyrjen e parëndësishme.

historyConfig

HistoryConfig

Opsionale. Konfiguron shkëmbimin e historikut midis klientit dhe serverit.

labels

map<string, string>

Opsionale. Etiketat me metadata të përcaktuara nga përdoruesi për kërkesën.

Opsionale. Etiketat duhet të ndjekin kërkesat standarde të unifikuara të etiketave të Cloud: - Çelësat e etiketave duhet të fillojnë me një shkronjë. - Çelësat dhe vlerat e etiketave nuk mund të jenë më të gjata se 63 karaktere (pika kodi Unicode) dhe mund të përmbajnë vetëm shkronja të vogla, karaktere numerike, vija të poshtme dhe viza ndarëse. - Lejohen karakteret ndërkombëtare.

Përdorimi: - Identifikuesit e sigurisë nga grumbulluesit: Përdor çelësin safety_identifier (p.sh. {"safety_identifier": "user_session_123"})

BidiGenerateContentSetupComplete

Ky lloj nuk ka fusha.

Dërguar në përgjigje të një mesazhi BidiGenerateContentSetup nga klienti.

BidiGenerateContentToolCall

Kërkesë për klientin që të ekzekutojë functionCalls dhe të kthejë përgjigjet me id që përputhen.

Fushat
functionCalls[]

FunctionCall

Vetëm rezultat. Thirrja e funksionit që do të ekzekutohet.

BidiGenerateContentToolCallCancellation

Njoftim për klientin që një ToolCallMessage i lëshuar më parë me id të specifikuara nuk duhet të jetë ekzekutuar dhe duhet të anulohet. Nëse ka pasur efekte anësore në ato thirrje të veglave, klientët mund të përpiqen t'i zhbëjnë thirrjet e veglave. Ky mesazh ndodh vetëm në rastet kur klientët ndërpresin radhët e serverit.

Fushat
ids[]

string

Vetëm rezultat. ID-të e telefonatave të veglave që do të anulohen.

BidiGenerateContentToolResponse

Klienti gjeneroi përgjigjen për një ToolCall të marrë nga serveri. FunctionResponse objekte individuale përputhen me objektet përkatëse FunctionCall nga fusha id.

Ki parasysh se në API-të GenerateContent me thirrje unare dhe të transmetimit në server, thirrja e funksionit ndodh duke shkëmbyer pjesët e Content, ndërsa në API-të GenerateContent me thirrje bidireksionale të funksionit, kjo ndodh nëpërmjet këtij grupi të posaçëm mesazhesh.

Fushat
functionResponses[]

FunctionResponse

Opsionale. Përgjigjja ndaj thirrjeve të funksionit.

BidiGenerateContentTranscription

Transkriptimi i audios (hyrja ose dalja).

Fushat
text

string

Teksti i transkriptimit.

languageCode

string

Kodi i gjuhës BCP-47 i transkriptimit.

startOffset

Duration

Opsionale. Kompensimi i fillimit në kohë i transkriptimit në lidhje me fillimin e audios.

endOffset

Duration

Opsionale. Zhvendosja e fundit në kohë e transkriptimit në lidhje me fillimin e audios.

ContextWindowCompressionConfig

Aktivizon ngjeshjen e dritares së kontekstit - një mekanizëm për menaxhimin e dritares së kontekstit të modelit në mënyrë që të mos kalojë një gjatësi të caktuar.

Fushat
Fusha e bashkimit compressionMechanism. Mekanizmi i përdorur për ngjeshjen e dritares kontekstuale. compressionMechanism mund të jetë vetëm një nga sa më poshtë:
slidingWindow

SlidingWindow

Një mekanizëm me dritare rrëshqitëse.

triggerTokens

int64

Numri i kodeve (para ekzekutimit të një ndërveprimi) që nevojiten për të aktivizuar një ngjeshje të dritares së kontekstit.

Kjo mund të përdoret për të balancuar cilësinë me vonesën pasi dritaret më të shkurtra të kontekstit mund të rezultojnë në përgjigje më të shpejta të modelit. Megjithatë, çdo veprim kompresimi do të shkaktojë një rritje të përkohshme të vonesës, kështu që ato nuk duhet të aktivizohen shpesh.

Nëse nuk caktohet, parazgjedhja është 80% e kufirit të dritares së kontekstit të modelit. Kjo lë 20% për kërkesën e përdoruesit/përgjigjen e modelit.

EndSensitivity

Përcakton se si zbulohet fundi i ligjërimit.

Enumeracionet
END_SENSITIVITY_UNSPECIFIED Parazgjedhja është END_SENSITIVITY_HIGH.
END_SENSITIVITY_HIGH Zbulimi automatik e përfundon ligjërimin më shpesh.
END_SENSITIVITY_LOW Zbulimi automatik e ndërpret ligjërimin më rrallë.

GoAway

Një njoftim që serveri do të shkëputet së shpejti.

Fushat
timeLeft

Duration

Koha e mbetur para se lidhja të përfundojë si E ANULUAR.

Kjo kohëzgjatje nuk do të jetë asnjëherë më e vogël se një minimum specifik për modelin, i cili do të specifikohet së bashku me kufijtë e normës për modelin.

HistoryConfig

Konfigurimi i historikut.

Ky mesazh është i përfshirë në konfigurimin e seancës si BidiGenerateContentSetup.historyConfig. Konfiguron shkëmbimin e mesazheve të historikut.

Fushat
initialHistoryInClientContent

bool

Opsionale. Nëse është e vërtetë, pas dërgimit të setupComplete, serveri do të presë dhe në fillim do të përpunojë clientContent mesazhe derisa turnComplete të jetë true. Ky historik fillestar nuk do të aktivizojë një telefonatë të modelit dhe mund të përfundojë me rolin MODEL. Pasi turnComplete të jetë true, klienti mund të fillojë bisedën në kohë reale nëpërmjet realtimeInput.

InteractionStatus

Gjendjet e ndryshme të aktivitetit të sesionit të drejtpërdrejtë. Kjo fushë dërgohet gjithmonë së bashku me turnComplete për të treguar nëse serveri ka përfunduar të gjithë përpunimin.

Enumeracionet
INTERACTION_STATUS_UNSPECIFIED Statusi i paspecifikuar i ndërveprimit.
IN_PROGRESS Serveri po përpunon ende në mënyrë aktive hyrjen e përdoruesit ose po ekzekuton arsyetimin në sfond. Mund të vijë më shumë rezultat nga modeli.
REQUIRES_ACTION

I zhvlerësuar: Përdor IDLE më mirë.

IDLE Serveri ka përfunduar të gjithë përpunimin dhe arsyetimin në sfond.

ProactivityConfig

Konfigurimi për veçoritë proaktive.

Fushat
proactiveAudio

bool

Opsionale. Nëse aktivizohet, modeli mund të refuzojë t'i përgjigjet kërkesës së fundit. Për shembull, kjo e lejon modelin të shpërfillë të folurit jashtë kontekstit ose të qëndrojë në heshtje nëse përdoruesi nuk ka bërë ende një kërkesë.

RealtimeInputConfig

Konfiguron sjelljen e hyrjes në kohë reale në BidiGenerateContent.

Fushat
automaticActivityDetection

AutomaticActivityDetection

Opsionale. Nëse nuk caktohet, zbulimi automatik i aktivitetit është i aktivizuar si parazgjedhje. Nëse zbulimi automatik i zërit është i çaktivizuar, klienti duhet të dërgojë sinjale aktiviteti.

activityHandling

ActivityHandling

Opsionale. Përcakton se çfarë efekti ka aktiviteti.

turnCoverage

TurnCoverage

Opsionale. Përcakton se cila hyrje përfshihet në radhën e përdoruesit.

interimTranscriptTimestampEnabled

bool

Opsionale. Konfiguron vulat kohore të transkriptit të ndërmjetëm.

SessionResumptionConfig

Konfigurimi i vazhdimit të seancës.

Ky mesazh është i përfshirë në konfigurimin e seancës si BidiGenerateContentSetup.sessionResumption. Nëse konfigurohet, serveri do të dërgojë mesazhe SessionResumptionUpdate.

Fushat
handle

string

Emërtimi i një seance të mëparshme. Nëse nuk është i pranishëm, atëherë krijohet një seancë e re.

Emërtimet e seancës vijnë nga SessionResumptionUpdate.token vlera në lidhjet e mëparshme.

SessionResumptionUpdate

Përditësimi i gjendjes së vazhdimit të seancës.

Dërgohet vetëm nëse është caktuar BidiGenerateContentSetup.sessionResumption.

Fushat
newHandle

string

Emërtimi i ri që përfaqëson një gjendje që mund të vazhdohet. Bosh nëse resumable=false.

resumable

bool

E vërtetë nëse seanca aktuale mund të vazhdohet në këtë pikë.

Vazhdimi nuk është i mundur në disa pika në sesion. Për shembull, kur modeli po ekzekuton thirrjet e funksioneve ose po gjeneron. Vazhdimi i seancës (duke përdorur një kod të seancës së mëparshme) në një gjendje të tillë do të rezultojë në humbje të disa të dhënave. Në këto raste, newHandle do të jetë bosh dhe resumable do të jetë i pavërtetë.

SlidingWindow

Metoda SlidingWindow funksionon duke hequr përmbajtjen në fillim të dritares kontekstuale. Konteksti që rezulton do të fillojë gjithmonë në fillim të një radhe të rolit të PËRDORUESIT. Udhëzimet e sistemit dhe çdo BidiGenerateContentSetup.prefixTurns do të qëndrojnë gjithmonë në fillim të rezultatit.

Fushat
targetTokens

int64

Numri i synuar i tokenëve për t'i mbajtur. Vlera e parazgjedhur është trigger_tokens/2.

Heqja e pjesëve të dritares së kontekstit shkakton një rritje të përkohshme të vonesës, prandaj kjo vlerë duhet të kalibrohet për të shmangur operacionet e shpeshta të ngjeshjes.

StartSensitivity

Përcakton se si zbulohet fillimi i ligjërimit.

Enumeracionet
START_SENSITIVITY_UNSPECIFIED Parazgjedhja është START_SENSITIVITY_HIGH.
START_SENSITIVITY_HIGH Zbulimi automatik do të zbulojë fillimin e ligjërimit më shpesh.
START_SENSITIVITY_LOW Zbulimi automatik do të zbulojë fillimin e ligjërimit më rrallë.

TurnCoverage

Opsionet për atë se cila hyrje përfshihet në radhën e përdoruesit.

Enumeracionet
TURN_COVERAGE_UNSPECIFIED Nëse nuk specifikohet, zgjidhet një sjellje e parazgjedhur bazuar në model. P.sh. për Gemini 2.5, parazgjedhja është TURN_INCLUDES_ONLY_ACTIVITY, ndërsa për Gemini 3.1 e lart, është TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO.
TURN_INCLUDES_ONLY_ACTIVITY Përfshin aktivitetin që nga kthesa e fundit, duke përjashtuar joaktivitetin (p.sh. heshtjen në transmetimin audio).
TURN_INCLUDES_ALL_INPUT Përfshin të gjitha hyrjet në kohë reale që nga radha e fundit, duke përfshirë mungesën e aktivitetit (p.sh. heshtjen në transmetimin audio).
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO Përfshin aktivitetin e audios dhe të gjithë videon që nga rradha e fundit. Me zbulimin automatik të aktivitetit, aktiviteti i audios do të thotë ligjërim dhe përjashton heshtjen.

TranslationConfig

Konfigurimi për veçoritë e përkthimit.

Fushat
targetLanguageCode

string

Kërkohet. Gjuha e synuar për përkthimin. Vlerat e mbështetura janë kodet e gjuhës BCP-47 (p.sh. "en", "es", "fr").

echoTargetLanguage

bool

Opsionale. Nëse është e vërtetë, modeli do të gjenerojë audio kur të flitet gjuha e synuar, në thelb do të përsëritë hyrjen. Nëse është e pavërtetë, ne nuk do të prodhojmë audio për gjuhën e synuar.

UrlContextMetadata

Metadatat në lidhje me veglën e marrjes së kontekstit të URL-së.

Fushat
urlMetadata[]

UrlMetadata

Lista e kontekstit të URL-së.

UsageMetadata

Metadatat e përdorimit për përgjigjet.

Fushat
promptTokenCount

int32

Vetëm rezultat. Numri i kodeve në kërkesë. Kur caktohet cachedContent, kjo është përsëri madhësia totale efektive e kërkesës, që do të thotë se kjo përfshin numrin e kodeve në përmbajtjen e ruajtur në memorien specifike.

cachedContentTokenCount

int32

Numri i kodeve në pjesën e ruajtur në memorien specifike të kërkesës (përmbajtja e ruajtur në memorien specifike)

responseTokenCount

int32

Vetëm rezultat. Numri total i kodeve në të gjithë kandidatët e gjeneruar të përgjigjeve.

toolUsePromptTokenCount

int32

Vetëm rezultat. Numri i kodeve të pranishme në kërkesat për përdorimin e veglave.

thoughtsTokenCount

int32

Vetëm rezultat. Numri i kodeve të mendimeve për modelet arsyetuese.

totalTokenCount

int32

Vetëm rezultat. Numri total i kodeve për kërkesën e gjenerimit (kërkesa + kandidatët e përgjigjes).

promptTokensDetails[]

ModalityTokenCount

Vetëm rezultat. Lista e modaliteteve që u përpunuan në hyrjen e kërkesës.

cacheTokensDetails[]

ModalityTokenCount

Vetëm rezultat. Lista e modaliteteve të përmbajtjes së ruajtur në memorien specifike në hyrjen e kërkesës.

responseTokensDetails[]

ModalityTokenCount

Vetëm rezultat. Lista e modaliteteve që u kthyen në përgjigje.

toolUsePromptTokensDetails[]

ModalityTokenCount

Vetëm rezultat. Lista e modaliteteve që u përpunuan për hyrjet e kërkesës për përdorimin e veglës.

VoiceActivity

U zbulua aktivitet zanor në transmetimin audio.

Fushat
type

Type

Vetëm rezultat. Lloji i sinjalit VAD(zbulimi i aktivitetit zanor).

audioOffset

Duration

Vetëm rezultat. Koha kur u zbulua aktiviteti zanor në kohën e audios, në lidhje me fillimin e transmetimit të audios.

Lloji

Lloji i sinjalit VAD.

Enumeracionet
TYPE_UNSPECIFIED Parazgjedhja është UNSPECIFIED.
ACTIVITY_START Sinjali i fillimit të fjalisë.
ACTIVITY_END Sinjali i fundit të fjalisë.

Kodet e vërtetimit efemer

Kodet e vërtetimit efemeral mund të merren duke telefonuar AuthTokenService.CreateToken dhe më pas të përdoren me GenerativeService.BidiGenerateContentConstrained, ose duke kaluar kodin në një parametër kërkese access_token ose në një kokë Authorization HTTP me "Token" të vendosur para tij.

CreateAuthTokenRequest

Krijo një kod të vërtetimit efemer.

Fushat
authToken

AuthToken

Kërkohet. Kodi për t'u krijuar.

AuthToken

Një kërkesë për të krijuar një kod të përkohshëm vërtetimi.

Fushat
name

string

Vetëm rezultat. Identifikuesi. Vetë tokeni.

expireTime

Timestamp

Opsionale. Vetëm hyrje. E pandryshueshme. Një kohë opsionale pas së cilës, kur përdoret kodi rezultues, mesazhet në sesionet e BidiGenerateContent do të refuzohen. (Gemini mund ta mbyllë paraprakisht seancën pas kësaj kohe.)

Nëse nuk caktohet, kjo kalon si parazgjedhje në 30 minuta në të ardhmen. Nëse caktohet, kjo vlerë duhet të jetë më pak se 20 orë në të ardhmen.

newSessionExpireTime

Timestamp

Opsionale. Vetëm hyrje. E pandryshueshme. Koha pas së cilës do të refuzohen seancat e reja të API-së së transmetimit të drejtpërdrejtë duke përdorur kodin që rezulton nga kjo kërkesë.

Nëse nuk caktohet, kjo kalon si parazgjedhje në 60 sekonda në të ardhmen. Nëse caktohet, kjo vlerë duhet të jetë më pak se 20 orë në të ardhmen.

fieldMask

FieldMask

Opsionale. Vetëm hyrje. E pandryshueshme. Nëse field_mask është bosh dhe bidiGenerateContentSetup nuk është i pranishëm, atëherë mesazhi efektiv BidiGenerateContentSetup merret nga lidhja e API-së së drejtpërdrejtë.

Nëse field_mask është bosh dhe bidiGenerateContentSetup është i pranishëm, atëherë mesazhi efektiv BidiGenerateContentSetup merret tërësisht nga bidiGenerateContentSetup në këtë kërkesë. Mesazhi i konfigurimit nga lidhja e API-së së drejtpërdrejtë injorohet.

Nëse field_mask nuk është bosh, atëherë fushat përkatëse nga bidiGenerateContentSetup do të mbishkruajnë fushat nga mesazhi i konfigurimit në lidhjen e API-së së drejtpërdrejtë.

Fusha e bashkimit config. Konfigurimi specifik për metodën për tokenin që rezulton. config mund të jetë vetëm një nga sa më poshtë:
bidiGenerateContentSetup

BidiGenerateContentSetup

Opsionale. Vetëm hyrje. E pandryshueshme. Konfigurimi specifik për BidiGenerateContent.

uses

int32

Opsionale. Vetëm hyrje. E pandryshueshme. Numri i herëve që mund të përdoret tokeni. Nëse kjo vlerë është zero, atëherë nuk zbatohet asnjë kufi. Vazhdimi i një seance të Live API nuk llogaritet si përdorim. Nëse nuk specifikohet, parazgjedhja është 1.

Më shumë informacione për llojet e zakonshme

Për më shumë informacion mbi llojet e burimeve të API-së që përdoren zakonisht Blob, Content, FunctionCall, FunctionResponse, GenerationConfig, GroundingMetadata, ModalityTokenCount dhe Tool, shiko Gjenerimi i përmbajtjes.