[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-gemini-gemini-live-api-dev":3,"mdc-mvdhif-key":41,"related-repo-google-gemini-gemini-live-api-dev":3788,"related-org-google-gemini-gemini-live-api-dev":3839},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":36,"sourceUrl":39,"mdContent":40},"gemini-live-api-dev","build real-time streaming apps with Gemini Live API","Use this skill when building real-time, bidirectional streaming applications with the Gemini Live API. Covers WebSocket-based audio\u002Fvideo\u002Ftext streaming, voice activity detection (VAD), native audio features, function calling, session management, ephemeral tokens for client-side auth, live translation, and all Live API configuration options. SDKs covered - google-genai (Python), @google\u002Fgenai (JavaScript\u002FTypeScript).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"google-gemini","Google Gemini","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-gemini.jpg",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"LLM","llm","tag",{"name":17,"slug":18,"type":15},"WebSockets","websockets",{"name":20,"slug":21,"type":15},"Audio","audio",{"name":23,"slug":24,"type":15},"Gemini","gemini",{"name":26,"slug":27,"type":15},"Video","video",3850,"https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-skills","2026-04-06T18:24:48.861661",null,389,[24,34,35],"gemini-api","skills",{"repoUrl":29,"stars":28,"forks":32,"topics":37,"description":38},[24,34,35],"Skills for the Gemini API, SDK and model\u002Fagent interactions","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fgemini-live-api-dev","---\nname: gemini-live-api-dev\ndescription: Use this skill when building real-time, bidirectional streaming applications with the Gemini Live API. Covers WebSocket-based audio\u002Fvideo\u002Ftext streaming, voice activity detection (VAD), native audio features, function calling, session management, ephemeral tokens for client-side auth, live translation, and all Live API configuration options. SDKs covered - google-genai (Python), @google\u002Fgenai (JavaScript\u002FTypeScript).\n---\n\n# Gemini Live API Development Skill\n\n## Overview\n\nThe Live API enables **low-latency, real-time voice and video interactions** with Gemini over WebSockets. It processes continuous streams of audio, video, or text to deliver immediate, human-like spoken responses.\n\nKey capabilities:\n- **Bidirectional audio streaming** — real-time mic-to-speaker conversations\n- **Video streaming** — send camera\u002Fscreen frames alongside audio\n- **Text input\u002Foutput** — send and receive text within a live session\n- **Audio transcriptions** — get text transcripts of both input and output audio\n- **Voice Activity Detection (VAD)** — automatic interruption handling\n- **Native audio** — thinking (with configurable `thinkingLevel`)\n- **Function calling** — synchronous tool use\n- **Google Search grounding** — ground responses in real-time search results\n- **Session management** — context compression, session resumption, GoAway signals\n- **Ephemeral tokens** — secure client-side authentication\n\n> [!NOTE]\n> The Live API currently **only supports WebSockets**. For WebRTC support or simplified integration, use a [partner integration](#partner-integrations).\n\n## Models\n\n- `gemini-3.1-flash-live-preview` — Optimized for low-latency, real-time dialogue. Native audio output, thinking (via `thinkingLevel`). 128k context window. **This is the recommended model for all Live API use cases.**\n- `gemini-3.5-live-translate-preview` — Real-time streaming translation model.\n\n> [!WARNING]\n> The following Live API models are **deprecated** and will be shut down. Migrate to `gemini-3.1-flash-live-preview`.\n> - `gemini-2.5-flash-native-audio-preview-12-2025` — Migrate to `gemini-3.1-flash-live-preview`.\n> - `gemini-live-2.5-flash-preview` — Released June 17, 2025. Shutdown: December 9, 2025.\n> - `gemini-2.0-flash-live-001` — Released April 9, 2025. Shutdown: December 9, 2025.\n\n## SDKs\n\n- **Python**: `google-genai` — `pip install google-genai`\n- **JavaScript\u002FTypeScript**: `@google\u002Fgenai` — `npm install @google\u002Fgenai`\n\n> [!WARNING]\n> Legacy SDKs `google-generativeai` (Python) and `@google\u002Fgenerative-ai` (JS) are deprecated. Use the new SDKs above.\n\n## Partner Integrations\n\nTo streamline real-time audio\u002Fvideo app development, use a third-party integration supporting the Gemini Live API over **WebRTC** or **WebSockets**:\n\n- [LiveKit](https:\u002F\u002Fdocs.livekit.io\u002Fagents\u002Fmodels\u002Frealtime\u002Fplugins\u002Fgemini\u002F) — Use the Gemini Live API with LiveKit Agents.\n- [Pipecat by Daily](https:\u002F\u002Fdocs.pipecat.ai\u002Fguides\u002Ffeatures\u002Fgemini-live) — Create a real-time AI chatbot using Gemini Live and Pipecat.\n- [Fishjam by Software Mansion](https:\u002F\u002Fdocs.fishjam.io\u002Ftutorials\u002Fgemini-live-integration) — Create live video and audio streaming applications with Fishjam.\n- [Vision Agents by Stream](https:\u002F\u002Fvisionagents.ai\u002Fintegrations\u002Fgemini) — Build real-time voice and video AI applications with Vision Agents.\n- [Voximplant](https:\u002F\u002Fvoximplant.com\u002Fproducts\u002Fgemini-client) — Connect inbound and outbound calls to Live API with Voximplant.\n- [Firebase AI SDK](https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fai-logic\u002Flive-api?api=dev) — Get started with the Gemini Live API using Firebase AI Logic.\n\n## Audio Formats\n\n- **Input**: Raw PCM, little-endian, 16-bit, mono. 16kHz native (will resample others). MIME type: `audio\u002Fpcm;rate=16000`\n- **Output**: Raw PCM, little-endian, 16-bit, mono. 24kHz sample rate.\n\n> [!IMPORTANT]\n> Use `send_realtime_input` \u002F `sendRealtimeInput` for all real-time user input (audio, video, **and text**). `send_client_content` \u002F `sendClientContent` is **only** supported for seeding initial context history (requires setting `initial_history_in_client_content` in `history_config`). Do **not** use it to send new user messages during the conversation.\n\n> [!WARNING]\n> Do **not** use `media` in `sendRealtimeInput`. Use the specific keys: `audio` for audio data, `video` for images\u002Fvideo frames, and `text` for text input.\n\n---\n\n## Quick Start\n\n### Authentication\n\n#### Python\n\n```python\nfrom google import genai\n\nclient = genai.Client(api_key=\"YOUR_API_KEY\")\n```\n\n#### JavaScript\n\n```js\nimport { GoogleGenAI } from '@google\u002Fgenai';\n\nconst ai = new GoogleGenAI({ apiKey: 'YOUR_API_KEY' });\n```\n\n### Connecting to the Live API\n\n#### Python\n```python\nfrom google.genai import types\n\nconfig = types.LiveConnectConfig(\n    response_modalities=[types.Modality.AUDIO],\n    system_instruction=types.Content(\n        parts=[types.Part(text=\"You are a helpful assistant.\")]\n    )\n)\n\nasync with client.aio.live.connect(model=\"gemini-3.1-flash-live-preview\", config=config) as session:\n    pass  # Session is active\n```\n\n#### JavaScript\n```js\nconst session = await ai.live.connect({\n  model: 'gemini-3.1-flash-live-preview',\n  config: {\n    responseModalities: ['audio'],\n    systemInstruction: { parts: [{ text: 'You are a helpful assistant.' }] }\n  },\n  callbacks: {\n    onopen: () => console.log('Connected'),\n    onmessage: (response) => console.log('Message:', response),\n    onerror: (error) => console.error('Error:', error),\n    onclose: () => console.log('Closed')\n  }\n});\n```\n\n### Sending Text\n\n#### Python\n```python\nawait session.send_realtime_input(text=\"Hello, how are you?\")\n```\n\n#### JavaScript\n```js\nsession.sendRealtimeInput({ text: 'Hello, how are you?' });\n```\n\n### Sending Audio\n\n#### Python\n```python\nawait session.send_realtime_input(\n    audio=types.Blob(data=chunk, mime_type=\"audio\u002Fpcm;rate=16000\")\n)\n```\n\n#### JavaScript\n```js\nsession.sendRealtimeInput({\n  audio: { data: chunk.toString('base64'), mimeType: 'audio\u002Fpcm;rate=16000' }\n});\n```\n\n### Sending Video\n\n#### Python\n```python\n# frame: raw JPEG-encoded bytes\nawait session.send_realtime_input(\n    video=types.Blob(data=frame, mime_type=\"image\u002Fjpeg\")\n)\n```\n\n#### JavaScript\n```js\nsession.sendRealtimeInput({\n  video: { data: frame.toString('base64'), mimeType: 'image\u002Fjpeg' }\n});\n```\n\n### Receiving Audio and Text\n\n> [!IMPORTANT]\n> A single server event can contain **multiple content parts simultaneously** (e.g., audio chunks and transcript). Always process **all** parts in each event to avoid missing content.\n\n#### Python\n```python\nasync for response in session.receive():\n    content = response.server_content\n    if content:\n        # Audio — process ALL parts in each event\n        if content.model_turn:\n            for part in content.model_turn.parts:\n                if part.inline_data:\n                    audio_data = part.inline_data.data\n        # Transcription\n        if content.input_transcription:\n            print(f\"User: {content.input_transcription.text}\")\n        if content.output_transcription:\n            print(f\"Gemini: {content.output_transcription.text}\")\n        # Interruption\n        if content.interrupted is True:\n            pass  # Stop playback, clear audio queue\n```\n\n#### JavaScript\n```js\n\u002F\u002F Inside the onmessage callback\nconst content = response.serverContent;\nif (content?.modelTurn?.parts) {\n  for (const part of content.modelTurn.parts) {\n    if (part.inlineData) {\n      const audioData = part.inlineData.data; \u002F\u002F Base64 encoded\n    }\n  }\n}\nif (content?.inputTranscription) console.log('User:', content.inputTranscription.text);\nif (content?.outputTranscription) console.log('Gemini:', content.outputTranscription.text);\nif (content?.interrupted) { \u002F* Stop playback, clear audio queue *\u002F }\n```\n\n---\n\n## Live Translation (Gemini Live Translate)\n\nThe Live API supports real-time, low-latency streaming translation of speech (audio) across 70+ languages. For full details on options and capabilities, see the [Live Translate Guide](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-api\u002Flive-translate.md.txt).\n\n### Model\n- `gemini-3.5-live-translate-preview` — The recommended translation model for all Live Translate use cases.\n\n### Configuration (`TranslationConfig`)\n\nTo enable translation, specify a `TranslationConfig` object inside your live session setup:\n\n- **Python SDK**: Configure the connection using `translation_config` on `LiveConnectConfig`:\n  ```python\n  config = types.LiveConnectConfig(\n      response_modalities=[types.Modality.AUDIO],\n      translation_config=types.TranslationConfig(\n          target_language_code=\"es\",  # Target language code (e.g. es, fr, pl)\n          echo_target_language=True,\n      ),\n      input_audio_transcription=types.AudioTranscriptionConfig(),\n      output_audio_transcription=types.AudioTranscriptionConfig(),\n  )\n  ```\n- **Raw WebSockets**: Place `translationConfig` inside `generationConfig`:\n  ```json\n  {\n    \"setup\": {\n      \"model\": \"models\u002Fgemini-3.5-live-translate-preview\",\n      \"generationConfig\": {\n        \"responseModalities\": [\"AUDIO\"],\n        \"translationConfig\": {\n          \"targetLanguageCode\": \"es\",\n          \"echoTargetLanguage\": true\n        }\n      }\n    }\n  }\n  ```\n\n---\n\n## Limitations\n\n- **Response modality** — Only `TEXT` **or** `AUDIO` per session, not both. Native audio models only support audio.\n- **Audio-only session** — 15 min without compression\n- **Audio+video session** — 2 min without compression\n- **Connection lifetime** — ~10 min (use session resumption)\n- **Context window** — 128k tokens (native audio) \u002F 32k tokens (standard)\n- **Async function calling** — Not yet supported; function calling is synchronous only. The model will not start responding until you've sent the tool response.\n- **Proactive audio** — Not yet supported in Gemini 3.1 Flash Live. Remove any configuration for this feature.\n- **Affective dialogue** — Not yet supported in Gemini 3.1 Flash Live. Remove any configuration for this feature.\n- **Code execution** — Not supported\n- **URL context** — Not supported\n\n## Migrating from Gemini 2.5 Flash Live\n\nWhen migrating from `gemini-2.5-flash-native-audio-preview-12-2025` to `gemini-3.1-flash-live-preview`:\n\n1. **Model string** — Update from `gemini-2.5-flash-native-audio-preview-12-2025` to `gemini-3.1-flash-live-preview`.\n2. **Thinking configuration** — Use `thinkingLevel` (`minimal`, `low`, `medium`, `high`) instead of `thinkingBudget`. Default is `minimal` for lowest latency.\n3. **Server events** — A single event can contain multiple content parts simultaneously (audio + transcript). Process **all** parts in each event.\n4. **Client content** — `send_client_content` is only for seeding initial context history (set `initial_history_in_client_content` in `history_config`). Use `send_realtime_input` for text during conversation.\n5. **Turn coverage** — Defaults to `TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO` instead of `TURN_INCLUDES_ONLY_ACTIVITY`. If sending constant video frames, consider sending only during audio activity to reduce costs.\n6. **Async function calling** — Not yet supported. Function calling is synchronous only.\n7. **Proactive audio & affective dialogue** — Not yet supported. Remove any configuration for these features.\n\n## Best Practices\n\n1. **Use headphones** when testing mic audio to prevent echo\u002Fself-interruption\n2. **Enable context window compression** for sessions longer than 15 minutes\n3. **Implement session resumption** to handle connection resets gracefully\n4. **Use ephemeral tokens** for client-side deployments — never expose API keys in browsers\n5. **Use `send_realtime_input`** for all real-time user input (audio, video, text). Reserve `send_client_content` only for seeding initial context history\n6. **Send `audioStreamEnd`** when the mic is paused to flush cached audio\n7. **Clear audio playback queues** on interruption signals\n8. **Process all parts** in each server event — events can contain multiple content parts\n\n## Documentation Lookup\n\n### When MCP is Installed (Preferred)\n\nIf the **`search_docs`** tool (from the Google MCP server) is available, use it as your **only** documentation source:\n\n1. Call `search_docs` with your query\n2. Read the returned documentation\n3. **Trust MCP results** as source of truth for API details — they are always up-to-date.\n\n> [!IMPORTANT]\n> When MCP tools are present, **never** fetch URLs manually. MCP provides up-to-date, indexed documentation that is more accurate and token-efficient than URL fetching.\n\n### When MCP is NOT Installed (Fallback Only)\n\nIf no MCP documentation tools are available, fetch from the official docs index:\n\n**llms.txt URL**: `https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fllms.txt`\n\nThis index contains links to all documentation pages in `.md.txt` format. Use web fetch tools to:\n\n1. Fetch `llms.txt` to discover available documentation pages\n2. Fetch specific pages (e.g., `https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-session.md.txt`)\n\n### Key Documentation Pages \n\n> [!IMPORTANT]\n> Those are not all the documentation pages. Use the `llms.txt` index to discover available documentation pages\n\n- [Live API Overview](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive.md.txt) — getting started, raw WebSocket usage\n- [Live Translate](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-api\u002Flive-translate.md.txt) — configuration options and capabilities for translation\n- [Live API Capabilities Guide](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-guide.md.txt) — voice config, transcription config, native audio (thinking), VAD configuration, media resolution\n- [Live API Tool Use](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-tools.md.txt) — function calling (sync and async), Google Search grounding\n- [Session Management](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-session.md.txt) — context window compression, session resumption, GoAway signals\n- [Ephemeral Tokens](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fephemeral-tokens.md.txt) — secure client-side authentication for browser\u002Fmobile\n- [WebSockets API Reference](https:\u002F\u002Fai.google.dev\u002Fapi\u002Flive.md.txt) — raw WebSocket protocol details\n\n## Supported Languages\n\nThe Live API supports 70 languages including: English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Hindi, Arabic, Russian, and many more. Native audio models automatically detect and switch languages.\n",{"data":42,"body":43},{"name":4,"description":6},{"type":44,"children":45},"root",[46,55,62,76,81,195,226,232,269,337,343,392,420,426,444,520,526,555,636,689,693,699,706,712,751,757,898,904,909,1010,1015,1537,1543,1548,1562,1567,1631,1637,1642,1672,1677,1812,1818,1823,1860,1865,1996,2002,2028,2033,2171,2176,2606,2609,2615,2628,2634,2647,2660,2672,3065,3068,3074,3196,3202,3220,3404,3410,3511,3517,3523,3545,3575,3594,3600,3605,3620,3633,3661,3667,3686,3771,3777,3782],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"gemini-live-api-development-skill",[52],{"type":53,"value":54},"text","Gemini Live API Development Skill",{"type":47,"tag":56,"props":57,"children":59},"h2",{"id":58},"overview",[60],{"type":53,"value":61},"Overview",{"type":47,"tag":63,"props":64,"children":65},"p",{},[66,68,74],{"type":53,"value":67},"The Live API enables ",{"type":47,"tag":69,"props":70,"children":71},"strong",{},[72],{"type":53,"value":73},"low-latency, real-time voice and video interactions",{"type":53,"value":75}," with Gemini over WebSockets. It processes continuous streams of audio, video, or text to deliver immediate, human-like spoken responses.",{"type":47,"tag":63,"props":77,"children":78},{},[79],{"type":53,"value":80},"Key capabilities:",{"type":47,"tag":82,"props":83,"children":84},"ul",{},[85,96,106,116,126,136,155,165,175,185],{"type":47,"tag":86,"props":87,"children":88},"li",{},[89,94],{"type":47,"tag":69,"props":90,"children":91},{},[92],{"type":53,"value":93},"Bidirectional audio streaming",{"type":53,"value":95}," — real-time mic-to-speaker conversations",{"type":47,"tag":86,"props":97,"children":98},{},[99,104],{"type":47,"tag":69,"props":100,"children":101},{},[102],{"type":53,"value":103},"Video streaming",{"type":53,"value":105}," — send camera\u002Fscreen frames alongside audio",{"type":47,"tag":86,"props":107,"children":108},{},[109,114],{"type":47,"tag":69,"props":110,"children":111},{},[112],{"type":53,"value":113},"Text input\u002Foutput",{"type":53,"value":115}," — send and receive text within a live session",{"type":47,"tag":86,"props":117,"children":118},{},[119,124],{"type":47,"tag":69,"props":120,"children":121},{},[122],{"type":53,"value":123},"Audio transcriptions",{"type":53,"value":125}," — get text transcripts of both input and output audio",{"type":47,"tag":86,"props":127,"children":128},{},[129,134],{"type":47,"tag":69,"props":130,"children":131},{},[132],{"type":53,"value":133},"Voice Activity Detection (VAD)",{"type":53,"value":135}," — automatic interruption handling",{"type":47,"tag":86,"props":137,"children":138},{},[139,144,146,153],{"type":47,"tag":69,"props":140,"children":141},{},[142],{"type":53,"value":143},"Native audio",{"type":53,"value":145}," — thinking (with configurable ",{"type":47,"tag":147,"props":148,"children":150},"code",{"className":149},[],[151],{"type":53,"value":152},"thinkingLevel",{"type":53,"value":154},")",{"type":47,"tag":86,"props":156,"children":157},{},[158,163],{"type":47,"tag":69,"props":159,"children":160},{},[161],{"type":53,"value":162},"Function calling",{"type":53,"value":164}," — synchronous tool use",{"type":47,"tag":86,"props":166,"children":167},{},[168,173],{"type":47,"tag":69,"props":169,"children":170},{},[171],{"type":53,"value":172},"Google Search grounding",{"type":53,"value":174}," — ground responses in real-time search results",{"type":47,"tag":86,"props":176,"children":177},{},[178,183],{"type":47,"tag":69,"props":179,"children":180},{},[181],{"type":53,"value":182},"Session management",{"type":53,"value":184}," — context compression, session resumption, GoAway signals",{"type":47,"tag":86,"props":186,"children":187},{},[188,193],{"type":47,"tag":69,"props":189,"children":190},{},[191],{"type":53,"value":192},"Ephemeral tokens",{"type":53,"value":194}," — secure client-side authentication",{"type":47,"tag":196,"props":197,"children":198},"blockquote",{},[199],{"type":47,"tag":63,"props":200,"children":201},{},[202,208,210,215,217,224],{"type":47,"tag":203,"props":204,"children":205},"span",{},[206],{"type":53,"value":207},"!NOTE",{"type":53,"value":209},"\nThe Live API currently ",{"type":47,"tag":69,"props":211,"children":212},{},[213],{"type":53,"value":214},"only supports WebSockets",{"type":53,"value":216},". For WebRTC support or simplified integration, use a ",{"type":47,"tag":218,"props":219,"children":221},"a",{"href":220},"#partner-integrations",[222],{"type":53,"value":223},"partner integration",{"type":53,"value":225},".",{"type":47,"tag":56,"props":227,"children":229},{"id":228},"models",[230],{"type":53,"value":231},"Models",{"type":47,"tag":82,"props":233,"children":234},{},[235,258],{"type":47,"tag":86,"props":236,"children":237},{},[238,244,246,251,253],{"type":47,"tag":147,"props":239,"children":241},{"className":240},[],[242],{"type":53,"value":243},"gemini-3.1-flash-live-preview",{"type":53,"value":245}," — Optimized for low-latency, real-time dialogue. Native audio output, thinking (via ",{"type":47,"tag":147,"props":247,"children":249},{"className":248},[],[250],{"type":53,"value":152},{"type":53,"value":252},"). 128k context window. ",{"type":47,"tag":69,"props":254,"children":255},{},[256],{"type":53,"value":257},"This is the recommended model for all Live API use cases.",{"type":47,"tag":86,"props":259,"children":260},{},[261,267],{"type":47,"tag":147,"props":262,"children":264},{"className":263},[],[265],{"type":53,"value":266},"gemini-3.5-live-translate-preview",{"type":53,"value":268}," — Real-time streaming translation model.",{"type":47,"tag":196,"props":270,"children":271},{},[272,295],{"type":47,"tag":63,"props":273,"children":274},{},[275,280,282,287,289,294],{"type":47,"tag":203,"props":276,"children":277},{},[278],{"type":53,"value":279},"!WARNING",{"type":53,"value":281},"\nThe following Live API models are ",{"type":47,"tag":69,"props":283,"children":284},{},[285],{"type":53,"value":286},"deprecated",{"type":53,"value":288}," and will be shut down. Migrate to ",{"type":47,"tag":147,"props":290,"children":292},{"className":291},[],[293],{"type":53,"value":243},{"type":53,"value":225},{"type":47,"tag":82,"props":296,"children":297},{},[298,315,326],{"type":47,"tag":86,"props":299,"children":300},{},[301,307,309,314],{"type":47,"tag":147,"props":302,"children":304},{"className":303},[],[305],{"type":53,"value":306},"gemini-2.5-flash-native-audio-preview-12-2025",{"type":53,"value":308}," — Migrate to ",{"type":47,"tag":147,"props":310,"children":312},{"className":311},[],[313],{"type":53,"value":243},{"type":53,"value":225},{"type":47,"tag":86,"props":316,"children":317},{},[318,324],{"type":47,"tag":147,"props":319,"children":321},{"className":320},[],[322],{"type":53,"value":323},"gemini-live-2.5-flash-preview",{"type":53,"value":325}," — Released June 17, 2025. Shutdown: December 9, 2025.",{"type":47,"tag":86,"props":327,"children":328},{},[329,335],{"type":47,"tag":147,"props":330,"children":332},{"className":331},[],[333],{"type":53,"value":334},"gemini-2.0-flash-live-001",{"type":53,"value":336}," — Released April 9, 2025. Shutdown: December 9, 2025.",{"type":47,"tag":56,"props":338,"children":340},{"id":339},"sdks",[341],{"type":53,"value":342},"SDKs",{"type":47,"tag":82,"props":344,"children":345},{},[346,370],{"type":47,"tag":86,"props":347,"children":348},{},[349,354,356,362,364],{"type":47,"tag":69,"props":350,"children":351},{},[352],{"type":53,"value":353},"Python",{"type":53,"value":355},": ",{"type":47,"tag":147,"props":357,"children":359},{"className":358},[],[360],{"type":53,"value":361},"google-genai",{"type":53,"value":363}," — ",{"type":47,"tag":147,"props":365,"children":367},{"className":366},[],[368],{"type":53,"value":369},"pip install google-genai",{"type":47,"tag":86,"props":371,"children":372},{},[373,378,379,385,386],{"type":47,"tag":69,"props":374,"children":375},{},[376],{"type":53,"value":377},"JavaScript\u002FTypeScript",{"type":53,"value":355},{"type":47,"tag":147,"props":380,"children":382},{"className":381},[],[383],{"type":53,"value":384},"@google\u002Fgenai",{"type":53,"value":363},{"type":47,"tag":147,"props":387,"children":389},{"className":388},[],[390],{"type":53,"value":391},"npm install @google\u002Fgenai",{"type":47,"tag":196,"props":393,"children":394},{},[395],{"type":47,"tag":63,"props":396,"children":397},{},[398,402,404,410,412,418],{"type":47,"tag":203,"props":399,"children":400},{},[401],{"type":53,"value":279},{"type":53,"value":403},"\nLegacy SDKs ",{"type":47,"tag":147,"props":405,"children":407},{"className":406},[],[408],{"type":53,"value":409},"google-generativeai",{"type":53,"value":411}," (Python) and ",{"type":47,"tag":147,"props":413,"children":415},{"className":414},[],[416],{"type":53,"value":417},"@google\u002Fgenerative-ai",{"type":53,"value":419}," (JS) are deprecated. Use the new SDKs above.",{"type":47,"tag":56,"props":421,"children":423},{"id":422},"partner-integrations",[424],{"type":53,"value":425},"Partner Integrations",{"type":47,"tag":63,"props":427,"children":428},{},[429,431,436,438,442],{"type":53,"value":430},"To streamline real-time audio\u002Fvideo app development, use a third-party integration supporting the Gemini Live API over ",{"type":47,"tag":69,"props":432,"children":433},{},[434],{"type":53,"value":435},"WebRTC",{"type":53,"value":437}," or ",{"type":47,"tag":69,"props":439,"children":440},{},[441],{"type":53,"value":17},{"type":53,"value":443},":",{"type":47,"tag":82,"props":445,"children":446},{},[447,460,472,484,496,508],{"type":47,"tag":86,"props":448,"children":449},{},[450,458],{"type":47,"tag":218,"props":451,"children":455},{"href":452,"rel":453},"https:\u002F\u002Fdocs.livekit.io\u002Fagents\u002Fmodels\u002Frealtime\u002Fplugins\u002Fgemini\u002F",[454],"nofollow",[456],{"type":53,"value":457},"LiveKit",{"type":53,"value":459}," — Use the Gemini Live API with LiveKit Agents.",{"type":47,"tag":86,"props":461,"children":462},{},[463,470],{"type":47,"tag":218,"props":464,"children":467},{"href":465,"rel":466},"https:\u002F\u002Fdocs.pipecat.ai\u002Fguides\u002Ffeatures\u002Fgemini-live",[454],[468],{"type":53,"value":469},"Pipecat by Daily",{"type":53,"value":471}," — Create a real-time AI chatbot using Gemini Live and Pipecat.",{"type":47,"tag":86,"props":473,"children":474},{},[475,482],{"type":47,"tag":218,"props":476,"children":479},{"href":477,"rel":478},"https:\u002F\u002Fdocs.fishjam.io\u002Ftutorials\u002Fgemini-live-integration",[454],[480],{"type":53,"value":481},"Fishjam by Software Mansion",{"type":53,"value":483}," — Create live video and audio streaming applications with Fishjam.",{"type":47,"tag":86,"props":485,"children":486},{},[487,494],{"type":47,"tag":218,"props":488,"children":491},{"href":489,"rel":490},"https:\u002F\u002Fvisionagents.ai\u002Fintegrations\u002Fgemini",[454],[492],{"type":53,"value":493},"Vision Agents by Stream",{"type":53,"value":495}," — Build real-time voice and video AI applications with Vision Agents.",{"type":47,"tag":86,"props":497,"children":498},{},[499,506],{"type":47,"tag":218,"props":500,"children":503},{"href":501,"rel":502},"https:\u002F\u002Fvoximplant.com\u002Fproducts\u002Fgemini-client",[454],[504],{"type":53,"value":505},"Voximplant",{"type":53,"value":507}," — Connect inbound and outbound calls to Live API with Voximplant.",{"type":47,"tag":86,"props":509,"children":510},{},[511,518],{"type":47,"tag":218,"props":512,"children":515},{"href":513,"rel":514},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fai-logic\u002Flive-api?api=dev",[454],[516],{"type":53,"value":517},"Firebase AI SDK",{"type":53,"value":519}," — Get started with the Gemini Live API using Firebase AI Logic.",{"type":47,"tag":56,"props":521,"children":523},{"id":522},"audio-formats",[524],{"type":53,"value":525},"Audio Formats",{"type":47,"tag":82,"props":527,"children":528},{},[529,545],{"type":47,"tag":86,"props":530,"children":531},{},[532,537,539],{"type":47,"tag":69,"props":533,"children":534},{},[535],{"type":53,"value":536},"Input",{"type":53,"value":538},": Raw PCM, little-endian, 16-bit, mono. 16kHz native (will resample others). MIME type: ",{"type":47,"tag":147,"props":540,"children":542},{"className":541},[],[543],{"type":53,"value":544},"audio\u002Fpcm;rate=16000",{"type":47,"tag":86,"props":546,"children":547},{},[548,553],{"type":47,"tag":69,"props":549,"children":550},{},[551],{"type":53,"value":552},"Output",{"type":53,"value":554},": Raw PCM, little-endian, 16-bit, mono. 24kHz sample rate.",{"type":47,"tag":196,"props":556,"children":557},{},[558],{"type":47,"tag":63,"props":559,"children":560},{},[561,566,568,574,576,582,584,589,591,597,598,604,606,611,613,619,621,627,629,634],{"type":47,"tag":203,"props":562,"children":563},{},[564],{"type":53,"value":565},"!IMPORTANT",{"type":53,"value":567},"\nUse ",{"type":47,"tag":147,"props":569,"children":571},{"className":570},[],[572],{"type":53,"value":573},"send_realtime_input",{"type":53,"value":575}," \u002F ",{"type":47,"tag":147,"props":577,"children":579},{"className":578},[],[580],{"type":53,"value":581},"sendRealtimeInput",{"type":53,"value":583}," for all real-time user input (audio, video, ",{"type":47,"tag":69,"props":585,"children":586},{},[587],{"type":53,"value":588},"and text",{"type":53,"value":590},"). ",{"type":47,"tag":147,"props":592,"children":594},{"className":593},[],[595],{"type":53,"value":596},"send_client_content",{"type":53,"value":575},{"type":47,"tag":147,"props":599,"children":601},{"className":600},[],[602],{"type":53,"value":603},"sendClientContent",{"type":53,"value":605}," is ",{"type":47,"tag":69,"props":607,"children":608},{},[609],{"type":53,"value":610},"only",{"type":53,"value":612}," supported for seeding initial context history (requires setting ",{"type":47,"tag":147,"props":614,"children":616},{"className":615},[],[617],{"type":53,"value":618},"initial_history_in_client_content",{"type":53,"value":620}," in ",{"type":47,"tag":147,"props":622,"children":624},{"className":623},[],[625],{"type":53,"value":626},"history_config",{"type":53,"value":628},"). Do ",{"type":47,"tag":69,"props":630,"children":631},{},[632],{"type":53,"value":633},"not",{"type":53,"value":635}," use it to send new user messages during the conversation.",{"type":47,"tag":196,"props":637,"children":638},{},[639],{"type":47,"tag":63,"props":640,"children":641},{},[642,646,648,652,654,660,661,666,668,673,675,680,682,687],{"type":47,"tag":203,"props":643,"children":644},{},[645],{"type":53,"value":279},{"type":53,"value":647},"\nDo ",{"type":47,"tag":69,"props":649,"children":650},{},[651],{"type":53,"value":633},{"type":53,"value":653}," use ",{"type":47,"tag":147,"props":655,"children":657},{"className":656},[],[658],{"type":53,"value":659},"media",{"type":53,"value":620},{"type":47,"tag":147,"props":662,"children":664},{"className":663},[],[665],{"type":53,"value":581},{"type":53,"value":667},". Use the specific keys: ",{"type":47,"tag":147,"props":669,"children":671},{"className":670},[],[672],{"type":53,"value":21},{"type":53,"value":674}," for audio data, ",{"type":47,"tag":147,"props":676,"children":678},{"className":677},[],[679],{"type":53,"value":27},{"type":53,"value":681}," for images\u002Fvideo frames, and ",{"type":47,"tag":147,"props":683,"children":685},{"className":684},[],[686],{"type":53,"value":53},{"type":53,"value":688}," for text input.",{"type":47,"tag":690,"props":691,"children":692},"hr",{},[],{"type":47,"tag":56,"props":694,"children":696},{"id":695},"quick-start",[697],{"type":53,"value":698},"Quick Start",{"type":47,"tag":700,"props":701,"children":703},"h3",{"id":702},"authentication",[704],{"type":53,"value":705},"Authentication",{"type":47,"tag":707,"props":708,"children":710},"h4",{"id":709},"python",[711],{"type":53,"value":353},{"type":47,"tag":713,"props":714,"children":718},"pre",{"className":715,"code":716,"language":709,"meta":717,"style":717},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from google import genai\n\nclient = genai.Client(api_key=\"YOUR_API_KEY\")\n","",[719],{"type":47,"tag":147,"props":720,"children":721},{"__ignoreMap":717},[722,732,742],{"type":47,"tag":203,"props":723,"children":726},{"class":724,"line":725},"line",1,[727],{"type":47,"tag":203,"props":728,"children":729},{},[730],{"type":53,"value":731},"from google import genai\n",{"type":47,"tag":203,"props":733,"children":735},{"class":724,"line":734},2,[736],{"type":47,"tag":203,"props":737,"children":739},{"emptyLinePlaceholder":738},true,[740],{"type":53,"value":741},"\n",{"type":47,"tag":203,"props":743,"children":745},{"class":724,"line":744},3,[746],{"type":47,"tag":203,"props":747,"children":748},{},[749],{"type":53,"value":750},"client = genai.Client(api_key=\"YOUR_API_KEY\")\n",{"type":47,"tag":707,"props":752,"children":754},{"id":753},"javascript",[755],{"type":53,"value":756},"JavaScript",{"type":47,"tag":713,"props":758,"children":762},{"className":759,"code":760,"language":761,"meta":717,"style":717},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { GoogleGenAI } from '@google\u002Fgenai';\n\nconst ai = new GoogleGenAI({ apiKey: 'YOUR_API_KEY' });\n","js",[763],{"type":47,"tag":147,"props":764,"children":765},{"__ignoreMap":717},[766,817,824],{"type":47,"tag":203,"props":767,"children":768},{"class":724,"line":725},[769,775,781,787,792,797,802,807,812],{"type":47,"tag":203,"props":770,"children":772},{"style":771},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[773],{"type":53,"value":774},"import",{"type":47,"tag":203,"props":776,"children":778},{"style":777},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[779],{"type":53,"value":780}," {",{"type":47,"tag":203,"props":782,"children":784},{"style":783},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[785],{"type":53,"value":786}," GoogleGenAI",{"type":47,"tag":203,"props":788,"children":789},{"style":777},[790],{"type":53,"value":791}," }",{"type":47,"tag":203,"props":793,"children":794},{"style":771},[795],{"type":53,"value":796}," from",{"type":47,"tag":203,"props":798,"children":799},{"style":777},[800],{"type":53,"value":801}," '",{"type":47,"tag":203,"props":803,"children":805},{"style":804},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[806],{"type":53,"value":384},{"type":47,"tag":203,"props":808,"children":809},{"style":777},[810],{"type":53,"value":811},"'",{"type":47,"tag":203,"props":813,"children":814},{"style":777},[815],{"type":53,"value":816},";\n",{"type":47,"tag":203,"props":818,"children":819},{"class":724,"line":734},[820],{"type":47,"tag":203,"props":821,"children":822},{"emptyLinePlaceholder":738},[823],{"type":53,"value":741},{"type":47,"tag":203,"props":825,"children":826},{"class":724,"line":744},[827,833,838,843,848,853,858,863,869,873,877,882,886,890,894],{"type":47,"tag":203,"props":828,"children":830},{"style":829},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[831],{"type":53,"value":832},"const",{"type":47,"tag":203,"props":834,"children":835},{"style":783},[836],{"type":53,"value":837}," ai ",{"type":47,"tag":203,"props":839,"children":840},{"style":777},[841],{"type":53,"value":842},"=",{"type":47,"tag":203,"props":844,"children":845},{"style":777},[846],{"type":53,"value":847}," new",{"type":47,"tag":203,"props":849,"children":851},{"style":850},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[852],{"type":53,"value":786},{"type":47,"tag":203,"props":854,"children":855},{"style":783},[856],{"type":53,"value":857},"(",{"type":47,"tag":203,"props":859,"children":860},{"style":777},[861],{"type":53,"value":862},"{",{"type":47,"tag":203,"props":864,"children":866},{"style":865},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[867],{"type":53,"value":868}," apiKey",{"type":47,"tag":203,"props":870,"children":871},{"style":777},[872],{"type":53,"value":443},{"type":47,"tag":203,"props":874,"children":875},{"style":777},[876],{"type":53,"value":801},{"type":47,"tag":203,"props":878,"children":879},{"style":804},[880],{"type":53,"value":881},"YOUR_API_KEY",{"type":47,"tag":203,"props":883,"children":884},{"style":777},[885],{"type":53,"value":811},{"type":47,"tag":203,"props":887,"children":888},{"style":777},[889],{"type":53,"value":791},{"type":47,"tag":203,"props":891,"children":892},{"style":783},[893],{"type":53,"value":154},{"type":47,"tag":203,"props":895,"children":896},{"style":777},[897],{"type":53,"value":816},{"type":47,"tag":700,"props":899,"children":901},{"id":900},"connecting-to-the-live-api",[902],{"type":53,"value":903},"Connecting to the Live API",{"type":47,"tag":707,"props":905,"children":907},{"id":906},"python-1",[908],{"type":53,"value":353},{"type":47,"tag":713,"props":910,"children":912},{"className":715,"code":911,"language":709,"meta":717,"style":717},"from google.genai import types\n\nconfig = types.LiveConnectConfig(\n    response_modalities=[types.Modality.AUDIO],\n    system_instruction=types.Content(\n        parts=[types.Part(text=\"You are a helpful assistant.\")]\n    )\n)\n\nasync with client.aio.live.connect(model=\"gemini-3.1-flash-live-preview\", config=config) as session:\n    pass  # Session is active\n",[913],{"type":47,"tag":147,"props":914,"children":915},{"__ignoreMap":717},[916,924,931,939,948,957,966,975,984,992,1001],{"type":47,"tag":203,"props":917,"children":918},{"class":724,"line":725},[919],{"type":47,"tag":203,"props":920,"children":921},{},[922],{"type":53,"value":923},"from google.genai import types\n",{"type":47,"tag":203,"props":925,"children":926},{"class":724,"line":734},[927],{"type":47,"tag":203,"props":928,"children":929},{"emptyLinePlaceholder":738},[930],{"type":53,"value":741},{"type":47,"tag":203,"props":932,"children":933},{"class":724,"line":744},[934],{"type":47,"tag":203,"props":935,"children":936},{},[937],{"type":53,"value":938},"config = types.LiveConnectConfig(\n",{"type":47,"tag":203,"props":940,"children":942},{"class":724,"line":941},4,[943],{"type":47,"tag":203,"props":944,"children":945},{},[946],{"type":53,"value":947},"    response_modalities=[types.Modality.AUDIO],\n",{"type":47,"tag":203,"props":949,"children":951},{"class":724,"line":950},5,[952],{"type":47,"tag":203,"props":953,"children":954},{},[955],{"type":53,"value":956},"    system_instruction=types.Content(\n",{"type":47,"tag":203,"props":958,"children":960},{"class":724,"line":959},6,[961],{"type":47,"tag":203,"props":962,"children":963},{},[964],{"type":53,"value":965},"        parts=[types.Part(text=\"You are a helpful assistant.\")]\n",{"type":47,"tag":203,"props":967,"children":969},{"class":724,"line":968},7,[970],{"type":47,"tag":203,"props":971,"children":972},{},[973],{"type":53,"value":974},"    )\n",{"type":47,"tag":203,"props":976,"children":978},{"class":724,"line":977},8,[979],{"type":47,"tag":203,"props":980,"children":981},{},[982],{"type":53,"value":983},")\n",{"type":47,"tag":203,"props":985,"children":987},{"class":724,"line":986},9,[988],{"type":47,"tag":203,"props":989,"children":990},{"emptyLinePlaceholder":738},[991],{"type":53,"value":741},{"type":47,"tag":203,"props":993,"children":995},{"class":724,"line":994},10,[996],{"type":47,"tag":203,"props":997,"children":998},{},[999],{"type":53,"value":1000},"async with client.aio.live.connect(model=\"gemini-3.1-flash-live-preview\", config=config) as session:\n",{"type":47,"tag":203,"props":1002,"children":1004},{"class":724,"line":1003},11,[1005],{"type":47,"tag":203,"props":1006,"children":1007},{},[1008],{"type":53,"value":1009},"    pass  # Session is active\n",{"type":47,"tag":707,"props":1011,"children":1013},{"id":1012},"javascript-1",[1014],{"type":53,"value":756},{"type":47,"tag":713,"props":1016,"children":1018},{"className":759,"code":1017,"language":761,"meta":717,"style":717},"const session = await ai.live.connect({\n  model: 'gemini-3.1-flash-live-preview',\n  config: {\n    responseModalities: ['audio'],\n    systemInstruction: { parts: [{ text: 'You are a helpful assistant.' }] }\n  },\n  callbacks: {\n    onopen: () => console.log('Connected'),\n    onmessage: (response) => console.log('Message:', response),\n    onerror: (error) => console.error('Error:', error),\n    onclose: () => console.log('Closed')\n  }\n});\n",[1019],{"type":47,"tag":147,"props":1020,"children":1021},{"__ignoreMap":717},[1022,1075,1104,1121,1159,1228,1236,1252,1313,1387,1458,1511,1520],{"type":47,"tag":203,"props":1023,"children":1024},{"class":724,"line":725},[1025,1029,1034,1038,1043,1048,1052,1057,1061,1066,1070],{"type":47,"tag":203,"props":1026,"children":1027},{"style":829},[1028],{"type":53,"value":832},{"type":47,"tag":203,"props":1030,"children":1031},{"style":783},[1032],{"type":53,"value":1033}," session ",{"type":47,"tag":203,"props":1035,"children":1036},{"style":777},[1037],{"type":53,"value":842},{"type":47,"tag":203,"props":1039,"children":1040},{"style":771},[1041],{"type":53,"value":1042}," await",{"type":47,"tag":203,"props":1044,"children":1045},{"style":783},[1046],{"type":53,"value":1047}," ai",{"type":47,"tag":203,"props":1049,"children":1050},{"style":777},[1051],{"type":53,"value":225},{"type":47,"tag":203,"props":1053,"children":1054},{"style":783},[1055],{"type":53,"value":1056},"live",{"type":47,"tag":203,"props":1058,"children":1059},{"style":777},[1060],{"type":53,"value":225},{"type":47,"tag":203,"props":1062,"children":1063},{"style":850},[1064],{"type":53,"value":1065},"connect",{"type":47,"tag":203,"props":1067,"children":1068},{"style":783},[1069],{"type":53,"value":857},{"type":47,"tag":203,"props":1071,"children":1072},{"style":777},[1073],{"type":53,"value":1074},"{\n",{"type":47,"tag":203,"props":1076,"children":1077},{"class":724,"line":734},[1078,1083,1087,1091,1095,1099],{"type":47,"tag":203,"props":1079,"children":1080},{"style":865},[1081],{"type":53,"value":1082},"  model",{"type":47,"tag":203,"props":1084,"children":1085},{"style":777},[1086],{"type":53,"value":443},{"type":47,"tag":203,"props":1088,"children":1089},{"style":777},[1090],{"type":53,"value":801},{"type":47,"tag":203,"props":1092,"children":1093},{"style":804},[1094],{"type":53,"value":243},{"type":47,"tag":203,"props":1096,"children":1097},{"style":777},[1098],{"type":53,"value":811},{"type":47,"tag":203,"props":1100,"children":1101},{"style":777},[1102],{"type":53,"value":1103},",\n",{"type":47,"tag":203,"props":1105,"children":1106},{"class":724,"line":744},[1107,1112,1116],{"type":47,"tag":203,"props":1108,"children":1109},{"style":865},[1110],{"type":53,"value":1111},"  config",{"type":47,"tag":203,"props":1113,"children":1114},{"style":777},[1115],{"type":53,"value":443},{"type":47,"tag":203,"props":1117,"children":1118},{"style":777},[1119],{"type":53,"value":1120}," {\n",{"type":47,"tag":203,"props":1122,"children":1123},{"class":724,"line":941},[1124,1129,1133,1138,1142,1146,1150,1155],{"type":47,"tag":203,"props":1125,"children":1126},{"style":865},[1127],{"type":53,"value":1128},"    responseModalities",{"type":47,"tag":203,"props":1130,"children":1131},{"style":777},[1132],{"type":53,"value":443},{"type":47,"tag":203,"props":1134,"children":1135},{"style":783},[1136],{"type":53,"value":1137}," [",{"type":47,"tag":203,"props":1139,"children":1140},{"style":777},[1141],{"type":53,"value":811},{"type":47,"tag":203,"props":1143,"children":1144},{"style":804},[1145],{"type":53,"value":21},{"type":47,"tag":203,"props":1147,"children":1148},{"style":777},[1149],{"type":53,"value":811},{"type":47,"tag":203,"props":1151,"children":1152},{"style":783},[1153],{"type":53,"value":1154},"]",{"type":47,"tag":203,"props":1156,"children":1157},{"style":777},[1158],{"type":53,"value":1103},{"type":47,"tag":203,"props":1160,"children":1161},{"class":724,"line":950},[1162,1167,1171,1175,1180,1184,1188,1192,1197,1201,1205,1210,1214,1218,1223],{"type":47,"tag":203,"props":1163,"children":1164},{"style":865},[1165],{"type":53,"value":1166},"    systemInstruction",{"type":47,"tag":203,"props":1168,"children":1169},{"style":777},[1170],{"type":53,"value":443},{"type":47,"tag":203,"props":1172,"children":1173},{"style":777},[1174],{"type":53,"value":780},{"type":47,"tag":203,"props":1176,"children":1177},{"style":865},[1178],{"type":53,"value":1179}," parts",{"type":47,"tag":203,"props":1181,"children":1182},{"style":777},[1183],{"type":53,"value":443},{"type":47,"tag":203,"props":1185,"children":1186},{"style":783},[1187],{"type":53,"value":1137},{"type":47,"tag":203,"props":1189,"children":1190},{"style":777},[1191],{"type":53,"value":862},{"type":47,"tag":203,"props":1193,"children":1194},{"style":865},[1195],{"type":53,"value":1196}," text",{"type":47,"tag":203,"props":1198,"children":1199},{"style":777},[1200],{"type":53,"value":443},{"type":47,"tag":203,"props":1202,"children":1203},{"style":777},[1204],{"type":53,"value":801},{"type":47,"tag":203,"props":1206,"children":1207},{"style":804},[1208],{"type":53,"value":1209},"You are a helpful assistant.",{"type":47,"tag":203,"props":1211,"children":1212},{"style":777},[1213],{"type":53,"value":811},{"type":47,"tag":203,"props":1215,"children":1216},{"style":777},[1217],{"type":53,"value":791},{"type":47,"tag":203,"props":1219,"children":1220},{"style":783},[1221],{"type":53,"value":1222},"] ",{"type":47,"tag":203,"props":1224,"children":1225},{"style":777},[1226],{"type":53,"value":1227},"}\n",{"type":47,"tag":203,"props":1229,"children":1230},{"class":724,"line":959},[1231],{"type":47,"tag":203,"props":1232,"children":1233},{"style":777},[1234],{"type":53,"value":1235},"  },\n",{"type":47,"tag":203,"props":1237,"children":1238},{"class":724,"line":968},[1239,1244,1248],{"type":47,"tag":203,"props":1240,"children":1241},{"style":865},[1242],{"type":53,"value":1243},"  callbacks",{"type":47,"tag":203,"props":1245,"children":1246},{"style":777},[1247],{"type":53,"value":443},{"type":47,"tag":203,"props":1249,"children":1250},{"style":777},[1251],{"type":53,"value":1120},{"type":47,"tag":203,"props":1253,"children":1254},{"class":724,"line":977},[1255,1260,1264,1269,1274,1279,1283,1288,1292,1296,1301,1305,1309],{"type":47,"tag":203,"props":1256,"children":1257},{"style":850},[1258],{"type":53,"value":1259},"    onopen",{"type":47,"tag":203,"props":1261,"children":1262},{"style":777},[1263],{"type":53,"value":443},{"type":47,"tag":203,"props":1265,"children":1266},{"style":777},[1267],{"type":53,"value":1268}," ()",{"type":47,"tag":203,"props":1270,"children":1271},{"style":829},[1272],{"type":53,"value":1273}," =>",{"type":47,"tag":203,"props":1275,"children":1276},{"style":783},[1277],{"type":53,"value":1278}," console",{"type":47,"tag":203,"props":1280,"children":1281},{"style":777},[1282],{"type":53,"value":225},{"type":47,"tag":203,"props":1284,"children":1285},{"style":850},[1286],{"type":53,"value":1287},"log",{"type":47,"tag":203,"props":1289,"children":1290},{"style":783},[1291],{"type":53,"value":857},{"type":47,"tag":203,"props":1293,"children":1294},{"style":777},[1295],{"type":53,"value":811},{"type":47,"tag":203,"props":1297,"children":1298},{"style":804},[1299],{"type":53,"value":1300},"Connected",{"type":47,"tag":203,"props":1302,"children":1303},{"style":777},[1304],{"type":53,"value":811},{"type":47,"tag":203,"props":1306,"children":1307},{"style":783},[1308],{"type":53,"value":154},{"type":47,"tag":203,"props":1310,"children":1311},{"style":777},[1312],{"type":53,"value":1103},{"type":47,"tag":203,"props":1314,"children":1315},{"class":724,"line":986},[1316,1321,1325,1330,1336,1340,1344,1348,1352,1356,1360,1364,1369,1373,1378,1383],{"type":47,"tag":203,"props":1317,"children":1318},{"style":850},[1319],{"type":53,"value":1320},"    onmessage",{"type":47,"tag":203,"props":1322,"children":1323},{"style":777},[1324],{"type":53,"value":443},{"type":47,"tag":203,"props":1326,"children":1327},{"style":777},[1328],{"type":53,"value":1329}," (",{"type":47,"tag":203,"props":1331,"children":1333},{"style":1332},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[1334],{"type":53,"value":1335},"response",{"type":47,"tag":203,"props":1337,"children":1338},{"style":777},[1339],{"type":53,"value":154},{"type":47,"tag":203,"props":1341,"children":1342},{"style":829},[1343],{"type":53,"value":1273},{"type":47,"tag":203,"props":1345,"children":1346},{"style":783},[1347],{"type":53,"value":1278},{"type":47,"tag":203,"props":1349,"children":1350},{"style":777},[1351],{"type":53,"value":225},{"type":47,"tag":203,"props":1353,"children":1354},{"style":850},[1355],{"type":53,"value":1287},{"type":47,"tag":203,"props":1357,"children":1358},{"style":783},[1359],{"type":53,"value":857},{"type":47,"tag":203,"props":1361,"children":1362},{"style":777},[1363],{"type":53,"value":811},{"type":47,"tag":203,"props":1365,"children":1366},{"style":804},[1367],{"type":53,"value":1368},"Message:",{"type":47,"tag":203,"props":1370,"children":1371},{"style":777},[1372],{"type":53,"value":811},{"type":47,"tag":203,"props":1374,"children":1375},{"style":777},[1376],{"type":53,"value":1377},",",{"type":47,"tag":203,"props":1379,"children":1380},{"style":783},[1381],{"type":53,"value":1382}," response)",{"type":47,"tag":203,"props":1384,"children":1385},{"style":777},[1386],{"type":53,"value":1103},{"type":47,"tag":203,"props":1388,"children":1389},{"class":724,"line":994},[1390,1395,1399,1403,1408,1412,1416,1420,1424,1428,1432,1436,1441,1445,1449,1454],{"type":47,"tag":203,"props":1391,"children":1392},{"style":850},[1393],{"type":53,"value":1394},"    onerror",{"type":47,"tag":203,"props":1396,"children":1397},{"style":777},[1398],{"type":53,"value":443},{"type":47,"tag":203,"props":1400,"children":1401},{"style":777},[1402],{"type":53,"value":1329},{"type":47,"tag":203,"props":1404,"children":1405},{"style":1332},[1406],{"type":53,"value":1407},"error",{"type":47,"tag":203,"props":1409,"children":1410},{"style":777},[1411],{"type":53,"value":154},{"type":47,"tag":203,"props":1413,"children":1414},{"style":829},[1415],{"type":53,"value":1273},{"type":47,"tag":203,"props":1417,"children":1418},{"style":783},[1419],{"type":53,"value":1278},{"type":47,"tag":203,"props":1421,"children":1422},{"style":777},[1423],{"type":53,"value":225},{"type":47,"tag":203,"props":1425,"children":1426},{"style":850},[1427],{"type":53,"value":1407},{"type":47,"tag":203,"props":1429,"children":1430},{"style":783},[1431],{"type":53,"value":857},{"type":47,"tag":203,"props":1433,"children":1434},{"style":777},[1435],{"type":53,"value":811},{"type":47,"tag":203,"props":1437,"children":1438},{"style":804},[1439],{"type":53,"value":1440},"Error:",{"type":47,"tag":203,"props":1442,"children":1443},{"style":777},[1444],{"type":53,"value":811},{"type":47,"tag":203,"props":1446,"children":1447},{"style":777},[1448],{"type":53,"value":1377},{"type":47,"tag":203,"props":1450,"children":1451},{"style":783},[1452],{"type":53,"value":1453}," error)",{"type":47,"tag":203,"props":1455,"children":1456},{"style":777},[1457],{"type":53,"value":1103},{"type":47,"tag":203,"props":1459,"children":1460},{"class":724,"line":1003},[1461,1466,1470,1474,1478,1482,1486,1490,1494,1498,1503,1507],{"type":47,"tag":203,"props":1462,"children":1463},{"style":850},[1464],{"type":53,"value":1465},"    onclose",{"type":47,"tag":203,"props":1467,"children":1468},{"style":777},[1469],{"type":53,"value":443},{"type":47,"tag":203,"props":1471,"children":1472},{"style":777},[1473],{"type":53,"value":1268},{"type":47,"tag":203,"props":1475,"children":1476},{"style":829},[1477],{"type":53,"value":1273},{"type":47,"tag":203,"props":1479,"children":1480},{"style":783},[1481],{"type":53,"value":1278},{"type":47,"tag":203,"props":1483,"children":1484},{"style":777},[1485],{"type":53,"value":225},{"type":47,"tag":203,"props":1487,"children":1488},{"style":850},[1489],{"type":53,"value":1287},{"type":47,"tag":203,"props":1491,"children":1492},{"style":783},[1493],{"type":53,"value":857},{"type":47,"tag":203,"props":1495,"children":1496},{"style":777},[1497],{"type":53,"value":811},{"type":47,"tag":203,"props":1499,"children":1500},{"style":804},[1501],{"type":53,"value":1502},"Closed",{"type":47,"tag":203,"props":1504,"children":1505},{"style":777},[1506],{"type":53,"value":811},{"type":47,"tag":203,"props":1508,"children":1509},{"style":783},[1510],{"type":53,"value":983},{"type":47,"tag":203,"props":1512,"children":1514},{"class":724,"line":1513},12,[1515],{"type":47,"tag":203,"props":1516,"children":1517},{"style":777},[1518],{"type":53,"value":1519},"  }\n",{"type":47,"tag":203,"props":1521,"children":1523},{"class":724,"line":1522},13,[1524,1529,1533],{"type":47,"tag":203,"props":1525,"children":1526},{"style":777},[1527],{"type":53,"value":1528},"}",{"type":47,"tag":203,"props":1530,"children":1531},{"style":783},[1532],{"type":53,"value":154},{"type":47,"tag":203,"props":1534,"children":1535},{"style":777},[1536],{"type":53,"value":816},{"type":47,"tag":700,"props":1538,"children":1540},{"id":1539},"sending-text",[1541],{"type":53,"value":1542},"Sending Text",{"type":47,"tag":707,"props":1544,"children":1546},{"id":1545},"python-2",[1547],{"type":53,"value":353},{"type":47,"tag":713,"props":1549,"children":1551},{"className":715,"code":1550,"language":709,"meta":717,"style":717},"await session.send_realtime_input(text=\"Hello, how are you?\")\n",[1552],{"type":47,"tag":147,"props":1553,"children":1554},{"__ignoreMap":717},[1555],{"type":47,"tag":203,"props":1556,"children":1557},{"class":724,"line":725},[1558],{"type":47,"tag":203,"props":1559,"children":1560},{},[1561],{"type":53,"value":1550},{"type":47,"tag":707,"props":1563,"children":1565},{"id":1564},"javascript-2",[1566],{"type":53,"value":756},{"type":47,"tag":713,"props":1568,"children":1570},{"className":759,"code":1569,"language":761,"meta":717,"style":717},"session.sendRealtimeInput({ text: 'Hello, how are you?' });\n",[1571],{"type":47,"tag":147,"props":1572,"children":1573},{"__ignoreMap":717},[1574],{"type":47,"tag":203,"props":1575,"children":1576},{"class":724,"line":725},[1577,1582,1586,1590,1594,1598,1602,1606,1610,1615,1619,1623,1627],{"type":47,"tag":203,"props":1578,"children":1579},{"style":783},[1580],{"type":53,"value":1581},"session",{"type":47,"tag":203,"props":1583,"children":1584},{"style":777},[1585],{"type":53,"value":225},{"type":47,"tag":203,"props":1587,"children":1588},{"style":850},[1589],{"type":53,"value":581},{"type":47,"tag":203,"props":1591,"children":1592},{"style":783},[1593],{"type":53,"value":857},{"type":47,"tag":203,"props":1595,"children":1596},{"style":777},[1597],{"type":53,"value":862},{"type":47,"tag":203,"props":1599,"children":1600},{"style":865},[1601],{"type":53,"value":1196},{"type":47,"tag":203,"props":1603,"children":1604},{"style":777},[1605],{"type":53,"value":443},{"type":47,"tag":203,"props":1607,"children":1608},{"style":777},[1609],{"type":53,"value":801},{"type":47,"tag":203,"props":1611,"children":1612},{"style":804},[1613],{"type":53,"value":1614},"Hello, how are you?",{"type":47,"tag":203,"props":1616,"children":1617},{"style":777},[1618],{"type":53,"value":811},{"type":47,"tag":203,"props":1620,"children":1621},{"style":777},[1622],{"type":53,"value":791},{"type":47,"tag":203,"props":1624,"children":1625},{"style":783},[1626],{"type":53,"value":154},{"type":47,"tag":203,"props":1628,"children":1629},{"style":777},[1630],{"type":53,"value":816},{"type":47,"tag":700,"props":1632,"children":1634},{"id":1633},"sending-audio",[1635],{"type":53,"value":1636},"Sending Audio",{"type":47,"tag":707,"props":1638,"children":1640},{"id":1639},"python-3",[1641],{"type":53,"value":353},{"type":47,"tag":713,"props":1643,"children":1645},{"className":715,"code":1644,"language":709,"meta":717,"style":717},"await session.send_realtime_input(\n    audio=types.Blob(data=chunk, mime_type=\"audio\u002Fpcm;rate=16000\")\n)\n",[1646],{"type":47,"tag":147,"props":1647,"children":1648},{"__ignoreMap":717},[1649,1657,1665],{"type":47,"tag":203,"props":1650,"children":1651},{"class":724,"line":725},[1652],{"type":47,"tag":203,"props":1653,"children":1654},{},[1655],{"type":53,"value":1656},"await session.send_realtime_input(\n",{"type":47,"tag":203,"props":1658,"children":1659},{"class":724,"line":734},[1660],{"type":47,"tag":203,"props":1661,"children":1662},{},[1663],{"type":53,"value":1664},"    audio=types.Blob(data=chunk, mime_type=\"audio\u002Fpcm;rate=16000\")\n",{"type":47,"tag":203,"props":1666,"children":1667},{"class":724,"line":744},[1668],{"type":47,"tag":203,"props":1669,"children":1670},{},[1671],{"type":53,"value":983},{"type":47,"tag":707,"props":1673,"children":1675},{"id":1674},"javascript-3",[1676],{"type":53,"value":756},{"type":47,"tag":713,"props":1678,"children":1680},{"className":759,"code":1679,"language":761,"meta":717,"style":717},"session.sendRealtimeInput({\n  audio: { data: chunk.toString('base64'), mimeType: 'audio\u002Fpcm;rate=16000' }\n});\n",[1681],{"type":47,"tag":147,"props":1682,"children":1683},{"__ignoreMap":717},[1684,1707,1797],{"type":47,"tag":203,"props":1685,"children":1686},{"class":724,"line":725},[1687,1691,1695,1699,1703],{"type":47,"tag":203,"props":1688,"children":1689},{"style":783},[1690],{"type":53,"value":1581},{"type":47,"tag":203,"props":1692,"children":1693},{"style":777},[1694],{"type":53,"value":225},{"type":47,"tag":203,"props":1696,"children":1697},{"style":850},[1698],{"type":53,"value":581},{"type":47,"tag":203,"props":1700,"children":1701},{"style":783},[1702],{"type":53,"value":857},{"type":47,"tag":203,"props":1704,"children":1705},{"style":777},[1706],{"type":53,"value":1074},{"type":47,"tag":203,"props":1708,"children":1709},{"class":724,"line":734},[1710,1715,1719,1723,1728,1732,1737,1741,1746,1750,1754,1759,1763,1767,1771,1776,1780,1784,1788,1792],{"type":47,"tag":203,"props":1711,"children":1712},{"style":865},[1713],{"type":53,"value":1714},"  audio",{"type":47,"tag":203,"props":1716,"children":1717},{"style":777},[1718],{"type":53,"value":443},{"type":47,"tag":203,"props":1720,"children":1721},{"style":777},[1722],{"type":53,"value":780},{"type":47,"tag":203,"props":1724,"children":1725},{"style":865},[1726],{"type":53,"value":1727}," data",{"type":47,"tag":203,"props":1729,"children":1730},{"style":777},[1731],{"type":53,"value":443},{"type":47,"tag":203,"props":1733,"children":1734},{"style":783},[1735],{"type":53,"value":1736}," chunk",{"type":47,"tag":203,"props":1738,"children":1739},{"style":777},[1740],{"type":53,"value":225},{"type":47,"tag":203,"props":1742,"children":1743},{"style":850},[1744],{"type":53,"value":1745},"toString",{"type":47,"tag":203,"props":1747,"children":1748},{"style":783},[1749],{"type":53,"value":857},{"type":47,"tag":203,"props":1751,"children":1752},{"style":777},[1753],{"type":53,"value":811},{"type":47,"tag":203,"props":1755,"children":1756},{"style":804},[1757],{"type":53,"value":1758},"base64",{"type":47,"tag":203,"props":1760,"children":1761},{"style":777},[1762],{"type":53,"value":811},{"type":47,"tag":203,"props":1764,"children":1765},{"style":783},[1766],{"type":53,"value":154},{"type":47,"tag":203,"props":1768,"children":1769},{"style":777},[1770],{"type":53,"value":1377},{"type":47,"tag":203,"props":1772,"children":1773},{"style":865},[1774],{"type":53,"value":1775}," mimeType",{"type":47,"tag":203,"props":1777,"children":1778},{"style":777},[1779],{"type":53,"value":443},{"type":47,"tag":203,"props":1781,"children":1782},{"style":777},[1783],{"type":53,"value":801},{"type":47,"tag":203,"props":1785,"children":1786},{"style":804},[1787],{"type":53,"value":544},{"type":47,"tag":203,"props":1789,"children":1790},{"style":777},[1791],{"type":53,"value":811},{"type":47,"tag":203,"props":1793,"children":1794},{"style":777},[1795],{"type":53,"value":1796}," }\n",{"type":47,"tag":203,"props":1798,"children":1799},{"class":724,"line":744},[1800,1804,1808],{"type":47,"tag":203,"props":1801,"children":1802},{"style":777},[1803],{"type":53,"value":1528},{"type":47,"tag":203,"props":1805,"children":1806},{"style":783},[1807],{"type":53,"value":154},{"type":47,"tag":203,"props":1809,"children":1810},{"style":777},[1811],{"type":53,"value":816},{"type":47,"tag":700,"props":1813,"children":1815},{"id":1814},"sending-video",[1816],{"type":53,"value":1817},"Sending Video",{"type":47,"tag":707,"props":1819,"children":1821},{"id":1820},"python-4",[1822],{"type":53,"value":353},{"type":47,"tag":713,"props":1824,"children":1826},{"className":715,"code":1825,"language":709,"meta":717,"style":717},"# frame: raw JPEG-encoded bytes\nawait session.send_realtime_input(\n    video=types.Blob(data=frame, mime_type=\"image\u002Fjpeg\")\n)\n",[1827],{"type":47,"tag":147,"props":1828,"children":1829},{"__ignoreMap":717},[1830,1838,1845,1853],{"type":47,"tag":203,"props":1831,"children":1832},{"class":724,"line":725},[1833],{"type":47,"tag":203,"props":1834,"children":1835},{},[1836],{"type":53,"value":1837},"# frame: raw JPEG-encoded bytes\n",{"type":47,"tag":203,"props":1839,"children":1840},{"class":724,"line":734},[1841],{"type":47,"tag":203,"props":1842,"children":1843},{},[1844],{"type":53,"value":1656},{"type":47,"tag":203,"props":1846,"children":1847},{"class":724,"line":744},[1848],{"type":47,"tag":203,"props":1849,"children":1850},{},[1851],{"type":53,"value":1852},"    video=types.Blob(data=frame, mime_type=\"image\u002Fjpeg\")\n",{"type":47,"tag":203,"props":1854,"children":1855},{"class":724,"line":941},[1856],{"type":47,"tag":203,"props":1857,"children":1858},{},[1859],{"type":53,"value":983},{"type":47,"tag":707,"props":1861,"children":1863},{"id":1862},"javascript-4",[1864],{"type":53,"value":756},{"type":47,"tag":713,"props":1866,"children":1868},{"className":759,"code":1867,"language":761,"meta":717,"style":717},"session.sendRealtimeInput({\n  video: { data: frame.toString('base64'), mimeType: 'image\u002Fjpeg' }\n});\n",[1869],{"type":47,"tag":147,"props":1870,"children":1871},{"__ignoreMap":717},[1872,1895,1981],{"type":47,"tag":203,"props":1873,"children":1874},{"class":724,"line":725},[1875,1879,1883,1887,1891],{"type":47,"tag":203,"props":1876,"children":1877},{"style":783},[1878],{"type":53,"value":1581},{"type":47,"tag":203,"props":1880,"children":1881},{"style":777},[1882],{"type":53,"value":225},{"type":47,"tag":203,"props":1884,"children":1885},{"style":850},[1886],{"type":53,"value":581},{"type":47,"tag":203,"props":1888,"children":1889},{"style":783},[1890],{"type":53,"value":857},{"type":47,"tag":203,"props":1892,"children":1893},{"style":777},[1894],{"type":53,"value":1074},{"type":47,"tag":203,"props":1896,"children":1897},{"class":724,"line":734},[1898,1903,1907,1911,1915,1919,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1973,1977],{"type":47,"tag":203,"props":1899,"children":1900},{"style":865},[1901],{"type":53,"value":1902},"  video",{"type":47,"tag":203,"props":1904,"children":1905},{"style":777},[1906],{"type":53,"value":443},{"type":47,"tag":203,"props":1908,"children":1909},{"style":777},[1910],{"type":53,"value":780},{"type":47,"tag":203,"props":1912,"children":1913},{"style":865},[1914],{"type":53,"value":1727},{"type":47,"tag":203,"props":1916,"children":1917},{"style":777},[1918],{"type":53,"value":443},{"type":47,"tag":203,"props":1920,"children":1921},{"style":783},[1922],{"type":53,"value":1923}," frame",{"type":47,"tag":203,"props":1925,"children":1926},{"style":777},[1927],{"type":53,"value":225},{"type":47,"tag":203,"props":1929,"children":1930},{"style":850},[1931],{"type":53,"value":1745},{"type":47,"tag":203,"props":1933,"children":1934},{"style":783},[1935],{"type":53,"value":857},{"type":47,"tag":203,"props":1937,"children":1938},{"style":777},[1939],{"type":53,"value":811},{"type":47,"tag":203,"props":1941,"children":1942},{"style":804},[1943],{"type":53,"value":1758},{"type":47,"tag":203,"props":1945,"children":1946},{"style":777},[1947],{"type":53,"value":811},{"type":47,"tag":203,"props":1949,"children":1950},{"style":783},[1951],{"type":53,"value":154},{"type":47,"tag":203,"props":1953,"children":1954},{"style":777},[1955],{"type":53,"value":1377},{"type":47,"tag":203,"props":1957,"children":1958},{"style":865},[1959],{"type":53,"value":1775},{"type":47,"tag":203,"props":1961,"children":1962},{"style":777},[1963],{"type":53,"value":443},{"type":47,"tag":203,"props":1965,"children":1966},{"style":777},[1967],{"type":53,"value":801},{"type":47,"tag":203,"props":1969,"children":1970},{"style":804},[1971],{"type":53,"value":1972},"image\u002Fjpeg",{"type":47,"tag":203,"props":1974,"children":1975},{"style":777},[1976],{"type":53,"value":811},{"type":47,"tag":203,"props":1978,"children":1979},{"style":777},[1980],{"type":53,"value":1796},{"type":47,"tag":203,"props":1982,"children":1983},{"class":724,"line":744},[1984,1988,1992],{"type":47,"tag":203,"props":1985,"children":1986},{"style":777},[1987],{"type":53,"value":1528},{"type":47,"tag":203,"props":1989,"children":1990},{"style":783},[1991],{"type":53,"value":154},{"type":47,"tag":203,"props":1993,"children":1994},{"style":777},[1995],{"type":53,"value":816},{"type":47,"tag":700,"props":1997,"children":1999},{"id":1998},"receiving-audio-and-text",[2000],{"type":53,"value":2001},"Receiving Audio and Text",{"type":47,"tag":196,"props":2003,"children":2004},{},[2005],{"type":47,"tag":63,"props":2006,"children":2007},{},[2008,2012,2014,2019,2021,2026],{"type":47,"tag":203,"props":2009,"children":2010},{},[2011],{"type":53,"value":565},{"type":53,"value":2013},"\nA single server event can contain ",{"type":47,"tag":69,"props":2015,"children":2016},{},[2017],{"type":53,"value":2018},"multiple content parts simultaneously",{"type":53,"value":2020}," (e.g., audio chunks and transcript). Always process ",{"type":47,"tag":69,"props":2022,"children":2023},{},[2024],{"type":53,"value":2025},"all",{"type":53,"value":2027}," parts in each event to avoid missing content.",{"type":47,"tag":707,"props":2029,"children":2031},{"id":2030},"python-5",[2032],{"type":53,"value":353},{"type":47,"tag":713,"props":2034,"children":2036},{"className":715,"code":2035,"language":709,"meta":717,"style":717},"async for response in session.receive():\n    content = response.server_content\n    if content:\n        # Audio — process ALL parts in each event\n        if content.model_turn:\n            for part in content.model_turn.parts:\n                if part.inline_data:\n                    audio_data = part.inline_data.data\n        # Transcription\n        if content.input_transcription:\n            print(f\"User: {content.input_transcription.text}\")\n        if content.output_transcription:\n            print(f\"Gemini: {content.output_transcription.text}\")\n        # Interruption\n        if content.interrupted is True:\n            pass  # Stop playback, clear audio queue\n",[2037],{"type":47,"tag":147,"props":2038,"children":2039},{"__ignoreMap":717},[2040,2048,2056,2064,2072,2080,2088,2096,2104,2112,2120,2128,2136,2144,2153,2162],{"type":47,"tag":203,"props":2041,"children":2042},{"class":724,"line":725},[2043],{"type":47,"tag":203,"props":2044,"children":2045},{},[2046],{"type":53,"value":2047},"async for response in session.receive():\n",{"type":47,"tag":203,"props":2049,"children":2050},{"class":724,"line":734},[2051],{"type":47,"tag":203,"props":2052,"children":2053},{},[2054],{"type":53,"value":2055},"    content = response.server_content\n",{"type":47,"tag":203,"props":2057,"children":2058},{"class":724,"line":744},[2059],{"type":47,"tag":203,"props":2060,"children":2061},{},[2062],{"type":53,"value":2063},"    if content:\n",{"type":47,"tag":203,"props":2065,"children":2066},{"class":724,"line":941},[2067],{"type":47,"tag":203,"props":2068,"children":2069},{},[2070],{"type":53,"value":2071},"        # Audio — process ALL parts in each event\n",{"type":47,"tag":203,"props":2073,"children":2074},{"class":724,"line":950},[2075],{"type":47,"tag":203,"props":2076,"children":2077},{},[2078],{"type":53,"value":2079},"        if content.model_turn:\n",{"type":47,"tag":203,"props":2081,"children":2082},{"class":724,"line":959},[2083],{"type":47,"tag":203,"props":2084,"children":2085},{},[2086],{"type":53,"value":2087},"            for part in content.model_turn.parts:\n",{"type":47,"tag":203,"props":2089,"children":2090},{"class":724,"line":968},[2091],{"type":47,"tag":203,"props":2092,"children":2093},{},[2094],{"type":53,"value":2095},"                if part.inline_data:\n",{"type":47,"tag":203,"props":2097,"children":2098},{"class":724,"line":977},[2099],{"type":47,"tag":203,"props":2100,"children":2101},{},[2102],{"type":53,"value":2103},"                    audio_data = part.inline_data.data\n",{"type":47,"tag":203,"props":2105,"children":2106},{"class":724,"line":986},[2107],{"type":47,"tag":203,"props":2108,"children":2109},{},[2110],{"type":53,"value":2111},"        # Transcription\n",{"type":47,"tag":203,"props":2113,"children":2114},{"class":724,"line":994},[2115],{"type":47,"tag":203,"props":2116,"children":2117},{},[2118],{"type":53,"value":2119},"        if content.input_transcription:\n",{"type":47,"tag":203,"props":2121,"children":2122},{"class":724,"line":1003},[2123],{"type":47,"tag":203,"props":2124,"children":2125},{},[2126],{"type":53,"value":2127},"            print(f\"User: {content.input_transcription.text}\")\n",{"type":47,"tag":203,"props":2129,"children":2130},{"class":724,"line":1513},[2131],{"type":47,"tag":203,"props":2132,"children":2133},{},[2134],{"type":53,"value":2135},"        if content.output_transcription:\n",{"type":47,"tag":203,"props":2137,"children":2138},{"class":724,"line":1522},[2139],{"type":47,"tag":203,"props":2140,"children":2141},{},[2142],{"type":53,"value":2143},"            print(f\"Gemini: {content.output_transcription.text}\")\n",{"type":47,"tag":203,"props":2145,"children":2147},{"class":724,"line":2146},14,[2148],{"type":47,"tag":203,"props":2149,"children":2150},{},[2151],{"type":53,"value":2152},"        # Interruption\n",{"type":47,"tag":203,"props":2154,"children":2156},{"class":724,"line":2155},15,[2157],{"type":47,"tag":203,"props":2158,"children":2159},{},[2160],{"type":53,"value":2161},"        if content.interrupted is True:\n",{"type":47,"tag":203,"props":2163,"children":2165},{"class":724,"line":2164},16,[2166],{"type":47,"tag":203,"props":2167,"children":2168},{},[2169],{"type":53,"value":2170},"            pass  # Stop playback, clear audio queue\n",{"type":47,"tag":707,"props":2172,"children":2174},{"id":2173},"javascript-5",[2175],{"type":53,"value":756},{"type":47,"tag":713,"props":2177,"children":2179},{"className":759,"code":2178,"language":761,"meta":717,"style":717},"\u002F\u002F Inside the onmessage callback\nconst content = response.serverContent;\nif (content?.modelTurn?.parts) {\n  for (const part of content.modelTurn.parts) {\n    if (part.inlineData) {\n      const audioData = part.inlineData.data; \u002F\u002F Base64 encoded\n    }\n  }\n}\nif (content?.inputTranscription) console.log('User:', content.inputTranscription.text);\nif (content?.outputTranscription) console.log('Gemini:', content.outputTranscription.text);\nif (content?.interrupted) { \u002F* Stop playback, clear audio queue *\u002F }\n",[2180],{"type":47,"tag":147,"props":2181,"children":2182},{"__ignoreMap":717},[2183,2192,2226,2262,2319,2353,2402,2410,2417,2424,2499,2573],{"type":47,"tag":203,"props":2184,"children":2185},{"class":724,"line":725},[2186],{"type":47,"tag":203,"props":2187,"children":2189},{"style":2188},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2190],{"type":53,"value":2191},"\u002F\u002F Inside the onmessage callback\n",{"type":47,"tag":203,"props":2193,"children":2194},{"class":724,"line":734},[2195,2199,2204,2208,2213,2217,2222],{"type":47,"tag":203,"props":2196,"children":2197},{"style":829},[2198],{"type":53,"value":832},{"type":47,"tag":203,"props":2200,"children":2201},{"style":783},[2202],{"type":53,"value":2203}," content ",{"type":47,"tag":203,"props":2205,"children":2206},{"style":777},[2207],{"type":53,"value":842},{"type":47,"tag":203,"props":2209,"children":2210},{"style":783},[2211],{"type":53,"value":2212}," response",{"type":47,"tag":203,"props":2214,"children":2215},{"style":777},[2216],{"type":53,"value":225},{"type":47,"tag":203,"props":2218,"children":2219},{"style":783},[2220],{"type":53,"value":2221},"serverContent",{"type":47,"tag":203,"props":2223,"children":2224},{"style":777},[2225],{"type":53,"value":816},{"type":47,"tag":203,"props":2227,"children":2228},{"class":724,"line":744},[2229,2234,2239,2244,2249,2253,2258],{"type":47,"tag":203,"props":2230,"children":2231},{"style":771},[2232],{"type":53,"value":2233},"if",{"type":47,"tag":203,"props":2235,"children":2236},{"style":783},[2237],{"type":53,"value":2238}," (content",{"type":47,"tag":203,"props":2240,"children":2241},{"style":777},[2242],{"type":53,"value":2243},"?.",{"type":47,"tag":203,"props":2245,"children":2246},{"style":783},[2247],{"type":53,"value":2248},"modelTurn",{"type":47,"tag":203,"props":2250,"children":2251},{"style":777},[2252],{"type":53,"value":2243},{"type":47,"tag":203,"props":2254,"children":2255},{"style":783},[2256],{"type":53,"value":2257},"parts) ",{"type":47,"tag":203,"props":2259,"children":2260},{"style":777},[2261],{"type":53,"value":1074},{"type":47,"tag":203,"props":2263,"children":2264},{"class":724,"line":941},[2265,2270,2274,2278,2283,2288,2293,2297,2301,2305,2310,2315],{"type":47,"tag":203,"props":2266,"children":2267},{"style":771},[2268],{"type":53,"value":2269},"  for",{"type":47,"tag":203,"props":2271,"children":2272},{"style":865},[2273],{"type":53,"value":1329},{"type":47,"tag":203,"props":2275,"children":2276},{"style":829},[2277],{"type":53,"value":832},{"type":47,"tag":203,"props":2279,"children":2280},{"style":783},[2281],{"type":53,"value":2282}," part",{"type":47,"tag":203,"props":2284,"children":2285},{"style":777},[2286],{"type":53,"value":2287}," of",{"type":47,"tag":203,"props":2289,"children":2290},{"style":783},[2291],{"type":53,"value":2292}," content",{"type":47,"tag":203,"props":2294,"children":2295},{"style":777},[2296],{"type":53,"value":225},{"type":47,"tag":203,"props":2298,"children":2299},{"style":783},[2300],{"type":53,"value":2248},{"type":47,"tag":203,"props":2302,"children":2303},{"style":777},[2304],{"type":53,"value":225},{"type":47,"tag":203,"props":2306,"children":2307},{"style":783},[2308],{"type":53,"value":2309},"parts",{"type":47,"tag":203,"props":2311,"children":2312},{"style":865},[2313],{"type":53,"value":2314},") ",{"type":47,"tag":203,"props":2316,"children":2317},{"style":777},[2318],{"type":53,"value":1074},{"type":47,"tag":203,"props":2320,"children":2321},{"class":724,"line":950},[2322,2327,2331,2336,2340,2345,2349],{"type":47,"tag":203,"props":2323,"children":2324},{"style":771},[2325],{"type":53,"value":2326},"    if",{"type":47,"tag":203,"props":2328,"children":2329},{"style":865},[2330],{"type":53,"value":1329},{"type":47,"tag":203,"props":2332,"children":2333},{"style":783},[2334],{"type":53,"value":2335},"part",{"type":47,"tag":203,"props":2337,"children":2338},{"style":777},[2339],{"type":53,"value":225},{"type":47,"tag":203,"props":2341,"children":2342},{"style":783},[2343],{"type":53,"value":2344},"inlineData",{"type":47,"tag":203,"props":2346,"children":2347},{"style":865},[2348],{"type":53,"value":2314},{"type":47,"tag":203,"props":2350,"children":2351},{"style":777},[2352],{"type":53,"value":1074},{"type":47,"tag":203,"props":2354,"children":2355},{"class":724,"line":959},[2356,2361,2366,2371,2375,2379,2383,2387,2392,2397],{"type":47,"tag":203,"props":2357,"children":2358},{"style":829},[2359],{"type":53,"value":2360},"      const",{"type":47,"tag":203,"props":2362,"children":2363},{"style":783},[2364],{"type":53,"value":2365}," audioData",{"type":47,"tag":203,"props":2367,"children":2368},{"style":777},[2369],{"type":53,"value":2370}," =",{"type":47,"tag":203,"props":2372,"children":2373},{"style":783},[2374],{"type":53,"value":2282},{"type":47,"tag":203,"props":2376,"children":2377},{"style":777},[2378],{"type":53,"value":225},{"type":47,"tag":203,"props":2380,"children":2381},{"style":783},[2382],{"type":53,"value":2344},{"type":47,"tag":203,"props":2384,"children":2385},{"style":777},[2386],{"type":53,"value":225},{"type":47,"tag":203,"props":2388,"children":2389},{"style":783},[2390],{"type":53,"value":2391},"data",{"type":47,"tag":203,"props":2393,"children":2394},{"style":777},[2395],{"type":53,"value":2396},";",{"type":47,"tag":203,"props":2398,"children":2399},{"style":2188},[2400],{"type":53,"value":2401}," \u002F\u002F Base64 encoded\n",{"type":47,"tag":203,"props":2403,"children":2404},{"class":724,"line":968},[2405],{"type":47,"tag":203,"props":2406,"children":2407},{"style":777},[2408],{"type":53,"value":2409},"    }\n",{"type":47,"tag":203,"props":2411,"children":2412},{"class":724,"line":977},[2413],{"type":47,"tag":203,"props":2414,"children":2415},{"style":777},[2416],{"type":53,"value":1519},{"type":47,"tag":203,"props":2418,"children":2419},{"class":724,"line":986},[2420],{"type":47,"tag":203,"props":2421,"children":2422},{"style":777},[2423],{"type":53,"value":1227},{"type":47,"tag":203,"props":2425,"children":2426},{"class":724,"line":994},[2427,2431,2435,2439,2444,2448,2452,2456,2460,2465,2469,2473,2477,2481,2486,2490,2495],{"type":47,"tag":203,"props":2428,"children":2429},{"style":771},[2430],{"type":53,"value":2233},{"type":47,"tag":203,"props":2432,"children":2433},{"style":783},[2434],{"type":53,"value":2238},{"type":47,"tag":203,"props":2436,"children":2437},{"style":777},[2438],{"type":53,"value":2243},{"type":47,"tag":203,"props":2440,"children":2441},{"style":783},[2442],{"type":53,"value":2443},"inputTranscription) console",{"type":47,"tag":203,"props":2445,"children":2446},{"style":777},[2447],{"type":53,"value":225},{"type":47,"tag":203,"props":2449,"children":2450},{"style":850},[2451],{"type":53,"value":1287},{"type":47,"tag":203,"props":2453,"children":2454},{"style":783},[2455],{"type":53,"value":857},{"type":47,"tag":203,"props":2457,"children":2458},{"style":777},[2459],{"type":53,"value":811},{"type":47,"tag":203,"props":2461,"children":2462},{"style":804},[2463],{"type":53,"value":2464},"User:",{"type":47,"tag":203,"props":2466,"children":2467},{"style":777},[2468],{"type":53,"value":811},{"type":47,"tag":203,"props":2470,"children":2471},{"style":777},[2472],{"type":53,"value":1377},{"type":47,"tag":203,"props":2474,"children":2475},{"style":783},[2476],{"type":53,"value":2292},{"type":47,"tag":203,"props":2478,"children":2479},{"style":777},[2480],{"type":53,"value":225},{"type":47,"tag":203,"props":2482,"children":2483},{"style":783},[2484],{"type":53,"value":2485},"inputTranscription",{"type":47,"tag":203,"props":2487,"children":2488},{"style":777},[2489],{"type":53,"value":225},{"type":47,"tag":203,"props":2491,"children":2492},{"style":783},[2493],{"type":53,"value":2494},"text)",{"type":47,"tag":203,"props":2496,"children":2497},{"style":777},[2498],{"type":53,"value":816},{"type":47,"tag":203,"props":2500,"children":2501},{"class":724,"line":1003},[2502,2506,2510,2514,2519,2523,2527,2531,2535,2540,2544,2548,2552,2556,2561,2565,2569],{"type":47,"tag":203,"props":2503,"children":2504},{"style":771},[2505],{"type":53,"value":2233},{"type":47,"tag":203,"props":2507,"children":2508},{"style":783},[2509],{"type":53,"value":2238},{"type":47,"tag":203,"props":2511,"children":2512},{"style":777},[2513],{"type":53,"value":2243},{"type":47,"tag":203,"props":2515,"children":2516},{"style":783},[2517],{"type":53,"value":2518},"outputTranscription) console",{"type":47,"tag":203,"props":2520,"children":2521},{"style":777},[2522],{"type":53,"value":225},{"type":47,"tag":203,"props":2524,"children":2525},{"style":850},[2526],{"type":53,"value":1287},{"type":47,"tag":203,"props":2528,"children":2529},{"style":783},[2530],{"type":53,"value":857},{"type":47,"tag":203,"props":2532,"children":2533},{"style":777},[2534],{"type":53,"value":811},{"type":47,"tag":203,"props":2536,"children":2537},{"style":804},[2538],{"type":53,"value":2539},"Gemini:",{"type":47,"tag":203,"props":2541,"children":2542},{"style":777},[2543],{"type":53,"value":811},{"type":47,"tag":203,"props":2545,"children":2546},{"style":777},[2547],{"type":53,"value":1377},{"type":47,"tag":203,"props":2549,"children":2550},{"style":783},[2551],{"type":53,"value":2292},{"type":47,"tag":203,"props":2553,"children":2554},{"style":777},[2555],{"type":53,"value":225},{"type":47,"tag":203,"props":2557,"children":2558},{"style":783},[2559],{"type":53,"value":2560},"outputTranscription",{"type":47,"tag":203,"props":2562,"children":2563},{"style":777},[2564],{"type":53,"value":225},{"type":47,"tag":203,"props":2566,"children":2567},{"style":783},[2568],{"type":53,"value":2494},{"type":47,"tag":203,"props":2570,"children":2571},{"style":777},[2572],{"type":53,"value":816},{"type":47,"tag":203,"props":2574,"children":2575},{"class":724,"line":1513},[2576,2580,2584,2588,2593,2597,2602],{"type":47,"tag":203,"props":2577,"children":2578},{"style":771},[2579],{"type":53,"value":2233},{"type":47,"tag":203,"props":2581,"children":2582},{"style":783},[2583],{"type":53,"value":2238},{"type":47,"tag":203,"props":2585,"children":2586},{"style":777},[2587],{"type":53,"value":2243},{"type":47,"tag":203,"props":2589,"children":2590},{"style":783},[2591],{"type":53,"value":2592},"interrupted) ",{"type":47,"tag":203,"props":2594,"children":2595},{"style":777},[2596],{"type":53,"value":862},{"type":47,"tag":203,"props":2598,"children":2599},{"style":2188},[2600],{"type":53,"value":2601}," \u002F* Stop playback, clear audio queue *\u002F",{"type":47,"tag":203,"props":2603,"children":2604},{"style":777},[2605],{"type":53,"value":1796},{"type":47,"tag":690,"props":2607,"children":2608},{},[],{"type":47,"tag":56,"props":2610,"children":2612},{"id":2611},"live-translation-gemini-live-translate",[2613],{"type":53,"value":2614},"Live Translation (Gemini Live Translate)",{"type":47,"tag":63,"props":2616,"children":2617},{},[2618,2620,2627],{"type":53,"value":2619},"The Live API supports real-time, low-latency streaming translation of speech (audio) across 70+ languages. For full details on options and capabilities, see the ",{"type":47,"tag":218,"props":2621,"children":2624},{"href":2622,"rel":2623},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-api\u002Flive-translate.md.txt",[454],[2625],{"type":53,"value":2626},"Live Translate Guide",{"type":53,"value":225},{"type":47,"tag":700,"props":2629,"children":2631},{"id":2630},"model",[2632],{"type":53,"value":2633},"Model",{"type":47,"tag":82,"props":2635,"children":2636},{},[2637],{"type":47,"tag":86,"props":2638,"children":2639},{},[2640,2645],{"type":47,"tag":147,"props":2641,"children":2643},{"className":2642},[],[2644],{"type":53,"value":266},{"type":53,"value":2646}," — The recommended translation model for all Live Translate use cases.",{"type":47,"tag":700,"props":2648,"children":2650},{"id":2649},"configuration-translationconfig",[2651,2653,2659],{"type":53,"value":2652},"Configuration (",{"type":47,"tag":147,"props":2654,"children":2656},{"className":2655},[],[2657],{"type":53,"value":2658},"TranslationConfig",{"type":53,"value":154},{"type":47,"tag":63,"props":2661,"children":2662},{},[2663,2665,2670],{"type":53,"value":2664},"To enable translation, specify a ",{"type":47,"tag":147,"props":2666,"children":2668},{"className":2667},[],[2669],{"type":53,"value":2658},{"type":53,"value":2671}," object inside your live session setup:",{"type":47,"tag":82,"props":2673,"children":2674},{},[2675,2777],{"type":47,"tag":86,"props":2676,"children":2677},{},[2678,2683,2685,2691,2693,2699,2701],{"type":47,"tag":69,"props":2679,"children":2680},{},[2681],{"type":53,"value":2682},"Python SDK",{"type":53,"value":2684},": Configure the connection using ",{"type":47,"tag":147,"props":2686,"children":2688},{"className":2687},[],[2689],{"type":53,"value":2690},"translation_config",{"type":53,"value":2692}," on ",{"type":47,"tag":147,"props":2694,"children":2696},{"className":2695},[],[2697],{"type":53,"value":2698},"LiveConnectConfig",{"type":53,"value":2700},":\n",{"type":47,"tag":713,"props":2702,"children":2704},{"className":715,"code":2703,"language":709,"meta":717,"style":717},"config = types.LiveConnectConfig(\n    response_modalities=[types.Modality.AUDIO],\n    translation_config=types.TranslationConfig(\n        target_language_code=\"es\",  # Target language code (e.g. es, fr, pl)\n        echo_target_language=True,\n    ),\n    input_audio_transcription=types.AudioTranscriptionConfig(),\n    output_audio_transcription=types.AudioTranscriptionConfig(),\n)\n",[2705],{"type":47,"tag":147,"props":2706,"children":2707},{"__ignoreMap":717},[2708,2715,2722,2730,2738,2746,2754,2762,2770],{"type":47,"tag":203,"props":2709,"children":2710},{"class":724,"line":725},[2711],{"type":47,"tag":203,"props":2712,"children":2713},{},[2714],{"type":53,"value":938},{"type":47,"tag":203,"props":2716,"children":2717},{"class":724,"line":734},[2718],{"type":47,"tag":203,"props":2719,"children":2720},{},[2721],{"type":53,"value":947},{"type":47,"tag":203,"props":2723,"children":2724},{"class":724,"line":744},[2725],{"type":47,"tag":203,"props":2726,"children":2727},{},[2728],{"type":53,"value":2729},"    translation_config=types.TranslationConfig(\n",{"type":47,"tag":203,"props":2731,"children":2732},{"class":724,"line":941},[2733],{"type":47,"tag":203,"props":2734,"children":2735},{},[2736],{"type":53,"value":2737},"        target_language_code=\"es\",  # Target language code (e.g. es, fr, pl)\n",{"type":47,"tag":203,"props":2739,"children":2740},{"class":724,"line":950},[2741],{"type":47,"tag":203,"props":2742,"children":2743},{},[2744],{"type":53,"value":2745},"        echo_target_language=True,\n",{"type":47,"tag":203,"props":2747,"children":2748},{"class":724,"line":959},[2749],{"type":47,"tag":203,"props":2750,"children":2751},{},[2752],{"type":53,"value":2753},"    ),\n",{"type":47,"tag":203,"props":2755,"children":2756},{"class":724,"line":968},[2757],{"type":47,"tag":203,"props":2758,"children":2759},{},[2760],{"type":53,"value":2761},"    input_audio_transcription=types.AudioTranscriptionConfig(),\n",{"type":47,"tag":203,"props":2763,"children":2764},{"class":724,"line":977},[2765],{"type":47,"tag":203,"props":2766,"children":2767},{},[2768],{"type":53,"value":2769},"    output_audio_transcription=types.AudioTranscriptionConfig(),\n",{"type":47,"tag":203,"props":2771,"children":2772},{"class":724,"line":986},[2773],{"type":47,"tag":203,"props":2774,"children":2775},{},[2776],{"type":53,"value":983},{"type":47,"tag":86,"props":2778,"children":2779},{},[2780,2785,2787,2793,2795,2801,2802],{"type":47,"tag":69,"props":2781,"children":2782},{},[2783],{"type":53,"value":2784},"Raw WebSockets",{"type":53,"value":2786},": Place ",{"type":47,"tag":147,"props":2788,"children":2790},{"className":2789},[],[2791],{"type":53,"value":2792},"translationConfig",{"type":53,"value":2794}," inside ",{"type":47,"tag":147,"props":2796,"children":2798},{"className":2797},[],[2799],{"type":53,"value":2800},"generationConfig",{"type":53,"value":2700},{"type":47,"tag":713,"props":2803,"children":2807},{"className":2804,"code":2805,"language":2806,"meta":717,"style":717},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"setup\": {\n    \"model\": \"models\u002Fgemini-3.5-live-translate-preview\",\n    \"generationConfig\": {\n      \"responseModalities\": [\"AUDIO\"],\n      \"translationConfig\": {\n        \"targetLanguageCode\": \"es\",\n        \"echoTargetLanguage\": true\n      }\n    }\n  }\n}\n","json",[2808],{"type":47,"tag":147,"props":2809,"children":2810},{"__ignoreMap":717},[2811,2818,2844,2883,2906,2950,2973,3011,3036,3044,3051,3058],{"type":47,"tag":203,"props":2812,"children":2813},{"class":724,"line":725},[2814],{"type":47,"tag":203,"props":2815,"children":2816},{"style":777},[2817],{"type":53,"value":1074},{"type":47,"tag":203,"props":2819,"children":2820},{"class":724,"line":734},[2821,2826,2831,2836,2840],{"type":47,"tag":203,"props":2822,"children":2823},{"style":777},[2824],{"type":53,"value":2825},"  \"",{"type":47,"tag":203,"props":2827,"children":2828},{"style":829},[2829],{"type":53,"value":2830},"setup",{"type":47,"tag":203,"props":2832,"children":2833},{"style":777},[2834],{"type":53,"value":2835},"\"",{"type":47,"tag":203,"props":2837,"children":2838},{"style":777},[2839],{"type":53,"value":443},{"type":47,"tag":203,"props":2841,"children":2842},{"style":777},[2843],{"type":53,"value":1120},{"type":47,"tag":203,"props":2845,"children":2846},{"class":724,"line":744},[2847,2852,2857,2861,2865,2870,2875,2879],{"type":47,"tag":203,"props":2848,"children":2849},{"style":777},[2850],{"type":53,"value":2851},"    \"",{"type":47,"tag":203,"props":2853,"children":2855},{"style":2854},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[2856],{"type":53,"value":2630},{"type":47,"tag":203,"props":2858,"children":2859},{"style":777},[2860],{"type":53,"value":2835},{"type":47,"tag":203,"props":2862,"children":2863},{"style":777},[2864],{"type":53,"value":443},{"type":47,"tag":203,"props":2866,"children":2867},{"style":777},[2868],{"type":53,"value":2869}," \"",{"type":47,"tag":203,"props":2871,"children":2872},{"style":804},[2873],{"type":53,"value":2874},"models\u002Fgemini-3.5-live-translate-preview",{"type":47,"tag":203,"props":2876,"children":2877},{"style":777},[2878],{"type":53,"value":2835},{"type":47,"tag":203,"props":2880,"children":2881},{"style":777},[2882],{"type":53,"value":1103},{"type":47,"tag":203,"props":2884,"children":2885},{"class":724,"line":941},[2886,2890,2894,2898,2902],{"type":47,"tag":203,"props":2887,"children":2888},{"style":777},[2889],{"type":53,"value":2851},{"type":47,"tag":203,"props":2891,"children":2892},{"style":2854},[2893],{"type":53,"value":2800},{"type":47,"tag":203,"props":2895,"children":2896},{"style":777},[2897],{"type":53,"value":2835},{"type":47,"tag":203,"props":2899,"children":2900},{"style":777},[2901],{"type":53,"value":443},{"type":47,"tag":203,"props":2903,"children":2904},{"style":777},[2905],{"type":53,"value":1120},{"type":47,"tag":203,"props":2907,"children":2908},{"class":724,"line":950},[2909,2914,2920,2924,2928,2932,2936,2941,2945],{"type":47,"tag":203,"props":2910,"children":2911},{"style":777},[2912],{"type":53,"value":2913},"      \"",{"type":47,"tag":203,"props":2915,"children":2917},{"style":2916},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[2918],{"type":53,"value":2919},"responseModalities",{"type":47,"tag":203,"props":2921,"children":2922},{"style":777},[2923],{"type":53,"value":2835},{"type":47,"tag":203,"props":2925,"children":2926},{"style":777},[2927],{"type":53,"value":443},{"type":47,"tag":203,"props":2929,"children":2930},{"style":777},[2931],{"type":53,"value":1137},{"type":47,"tag":203,"props":2933,"children":2934},{"style":777},[2935],{"type":53,"value":2835},{"type":47,"tag":203,"props":2937,"children":2938},{"style":804},[2939],{"type":53,"value":2940},"AUDIO",{"type":47,"tag":203,"props":2942,"children":2943},{"style":777},[2944],{"type":53,"value":2835},{"type":47,"tag":203,"props":2946,"children":2947},{"style":777},[2948],{"type":53,"value":2949},"],\n",{"type":47,"tag":203,"props":2951,"children":2952},{"class":724,"line":959},[2953,2957,2961,2965,2969],{"type":47,"tag":203,"props":2954,"children":2955},{"style":777},[2956],{"type":53,"value":2913},{"type":47,"tag":203,"props":2958,"children":2959},{"style":2916},[2960],{"type":53,"value":2792},{"type":47,"tag":203,"props":2962,"children":2963},{"style":777},[2964],{"type":53,"value":2835},{"type":47,"tag":203,"props":2966,"children":2967},{"style":777},[2968],{"type":53,"value":443},{"type":47,"tag":203,"props":2970,"children":2971},{"style":777},[2972],{"type":53,"value":1120},{"type":47,"tag":203,"props":2974,"children":2975},{"class":724,"line":968},[2976,2981,2986,2990,2994,2998,3003,3007],{"type":47,"tag":203,"props":2977,"children":2978},{"style":777},[2979],{"type":53,"value":2980},"        \"",{"type":47,"tag":203,"props":2982,"children":2983},{"style":865},[2984],{"type":53,"value":2985},"targetLanguageCode",{"type":47,"tag":203,"props":2987,"children":2988},{"style":777},[2989],{"type":53,"value":2835},{"type":47,"tag":203,"props":2991,"children":2992},{"style":777},[2993],{"type":53,"value":443},{"type":47,"tag":203,"props":2995,"children":2996},{"style":777},[2997],{"type":53,"value":2869},{"type":47,"tag":203,"props":2999,"children":3000},{"style":804},[3001],{"type":53,"value":3002},"es",{"type":47,"tag":203,"props":3004,"children":3005},{"style":777},[3006],{"type":53,"value":2835},{"type":47,"tag":203,"props":3008,"children":3009},{"style":777},[3010],{"type":53,"value":1103},{"type":47,"tag":203,"props":3012,"children":3013},{"class":724,"line":977},[3014,3018,3023,3027,3031],{"type":47,"tag":203,"props":3015,"children":3016},{"style":777},[3017],{"type":53,"value":2980},{"type":47,"tag":203,"props":3019,"children":3020},{"style":865},[3021],{"type":53,"value":3022},"echoTargetLanguage",{"type":47,"tag":203,"props":3024,"children":3025},{"style":777},[3026],{"type":53,"value":2835},{"type":47,"tag":203,"props":3028,"children":3029},{"style":777},[3030],{"type":53,"value":443},{"type":47,"tag":203,"props":3032,"children":3033},{"style":777},[3034],{"type":53,"value":3035}," true\n",{"type":47,"tag":203,"props":3037,"children":3038},{"class":724,"line":986},[3039],{"type":47,"tag":203,"props":3040,"children":3041},{"style":777},[3042],{"type":53,"value":3043},"      }\n",{"type":47,"tag":203,"props":3045,"children":3046},{"class":724,"line":994},[3047],{"type":47,"tag":203,"props":3048,"children":3049},{"style":777},[3050],{"type":53,"value":2409},{"type":47,"tag":203,"props":3052,"children":3053},{"class":724,"line":1003},[3054],{"type":47,"tag":203,"props":3055,"children":3056},{"style":777},[3057],{"type":53,"value":1519},{"type":47,"tag":203,"props":3059,"children":3060},{"class":724,"line":1513},[3061],{"type":47,"tag":203,"props":3062,"children":3063},{"style":777},[3064],{"type":53,"value":1227},{"type":47,"tag":690,"props":3066,"children":3067},{},[],{"type":47,"tag":56,"props":3069,"children":3071},{"id":3070},"limitations",[3072],{"type":53,"value":3073},"Limitations",{"type":47,"tag":82,"props":3075,"children":3076},{},[3077,3108,3118,3128,3138,3148,3158,3168,3177,3187],{"type":47,"tag":86,"props":3078,"children":3079},{},[3080,3085,3087,3093,3095,3100,3101,3106],{"type":47,"tag":69,"props":3081,"children":3082},{},[3083],{"type":53,"value":3084},"Response modality",{"type":53,"value":3086}," — Only ",{"type":47,"tag":147,"props":3088,"children":3090},{"className":3089},[],[3091],{"type":53,"value":3092},"TEXT",{"type":53,"value":3094}," ",{"type":47,"tag":69,"props":3096,"children":3097},{},[3098],{"type":53,"value":3099},"or",{"type":53,"value":3094},{"type":47,"tag":147,"props":3102,"children":3104},{"className":3103},[],[3105],{"type":53,"value":2940},{"type":53,"value":3107}," per session, not both. Native audio models only support audio.",{"type":47,"tag":86,"props":3109,"children":3110},{},[3111,3116],{"type":47,"tag":69,"props":3112,"children":3113},{},[3114],{"type":53,"value":3115},"Audio-only session",{"type":53,"value":3117}," — 15 min without compression",{"type":47,"tag":86,"props":3119,"children":3120},{},[3121,3126],{"type":47,"tag":69,"props":3122,"children":3123},{},[3124],{"type":53,"value":3125},"Audio+video session",{"type":53,"value":3127}," — 2 min without compression",{"type":47,"tag":86,"props":3129,"children":3130},{},[3131,3136],{"type":47,"tag":69,"props":3132,"children":3133},{},[3134],{"type":53,"value":3135},"Connection lifetime",{"type":53,"value":3137}," — ~10 min (use session resumption)",{"type":47,"tag":86,"props":3139,"children":3140},{},[3141,3146],{"type":47,"tag":69,"props":3142,"children":3143},{},[3144],{"type":53,"value":3145},"Context window",{"type":53,"value":3147}," — 128k tokens (native audio) \u002F 32k tokens (standard)",{"type":47,"tag":86,"props":3149,"children":3150},{},[3151,3156],{"type":47,"tag":69,"props":3152,"children":3153},{},[3154],{"type":53,"value":3155},"Async function calling",{"type":53,"value":3157}," — Not yet supported; function calling is synchronous only. The model will not start responding until you've sent the tool response.",{"type":47,"tag":86,"props":3159,"children":3160},{},[3161,3166],{"type":47,"tag":69,"props":3162,"children":3163},{},[3164],{"type":53,"value":3165},"Proactive audio",{"type":53,"value":3167}," — Not yet supported in Gemini 3.1 Flash Live. Remove any configuration for this feature.",{"type":47,"tag":86,"props":3169,"children":3170},{},[3171,3176],{"type":47,"tag":69,"props":3172,"children":3173},{},[3174],{"type":53,"value":3175},"Affective dialogue",{"type":53,"value":3167},{"type":47,"tag":86,"props":3178,"children":3179},{},[3180,3185],{"type":47,"tag":69,"props":3181,"children":3182},{},[3183],{"type":53,"value":3184},"Code execution",{"type":53,"value":3186}," — Not supported",{"type":47,"tag":86,"props":3188,"children":3189},{},[3190,3195],{"type":47,"tag":69,"props":3191,"children":3192},{},[3193],{"type":53,"value":3194},"URL context",{"type":53,"value":3186},{"type":47,"tag":56,"props":3197,"children":3199},{"id":3198},"migrating-from-gemini-25-flash-live",[3200],{"type":53,"value":3201},"Migrating from Gemini 2.5 Flash Live",{"type":47,"tag":63,"props":3203,"children":3204},{},[3205,3207,3212,3214,3219],{"type":53,"value":3206},"When migrating from ",{"type":47,"tag":147,"props":3208,"children":3210},{"className":3209},[],[3211],{"type":53,"value":306},{"type":53,"value":3213}," to ",{"type":47,"tag":147,"props":3215,"children":3217},{"className":3216},[],[3218],{"type":53,"value":243},{"type":53,"value":443},{"type":47,"tag":3221,"props":3222,"children":3223},"ol",{},[3224,3246,3307,3323,3359,3385,3394],{"type":47,"tag":86,"props":3225,"children":3226},{},[3227,3232,3234,3239,3240,3245],{"type":47,"tag":69,"props":3228,"children":3229},{},[3230],{"type":53,"value":3231},"Model string",{"type":53,"value":3233}," — Update from ",{"type":47,"tag":147,"props":3235,"children":3237},{"className":3236},[],[3238],{"type":53,"value":306},{"type":53,"value":3213},{"type":47,"tag":147,"props":3241,"children":3243},{"className":3242},[],[3244],{"type":53,"value":243},{"type":53,"value":225},{"type":47,"tag":86,"props":3247,"children":3248},{},[3249,3254,3256,3261,3262,3268,3270,3276,3277,3283,3284,3290,3292,3298,3300,3305],{"type":47,"tag":69,"props":3250,"children":3251},{},[3252],{"type":53,"value":3253},"Thinking configuration",{"type":53,"value":3255}," — Use ",{"type":47,"tag":147,"props":3257,"children":3259},{"className":3258},[],[3260],{"type":53,"value":152},{"type":53,"value":1329},{"type":47,"tag":147,"props":3263,"children":3265},{"className":3264},[],[3266],{"type":53,"value":3267},"minimal",{"type":53,"value":3269},", ",{"type":47,"tag":147,"props":3271,"children":3273},{"className":3272},[],[3274],{"type":53,"value":3275},"low",{"type":53,"value":3269},{"type":47,"tag":147,"props":3278,"children":3280},{"className":3279},[],[3281],{"type":53,"value":3282},"medium",{"type":53,"value":3269},{"type":47,"tag":147,"props":3285,"children":3287},{"className":3286},[],[3288],{"type":53,"value":3289},"high",{"type":53,"value":3291},") instead of ",{"type":47,"tag":147,"props":3293,"children":3295},{"className":3294},[],[3296],{"type":53,"value":3297},"thinkingBudget",{"type":53,"value":3299},". Default is ",{"type":47,"tag":147,"props":3301,"children":3303},{"className":3302},[],[3304],{"type":53,"value":3267},{"type":53,"value":3306}," for lowest latency.",{"type":47,"tag":86,"props":3308,"children":3309},{},[3310,3315,3317,3321],{"type":47,"tag":69,"props":3311,"children":3312},{},[3313],{"type":53,"value":3314},"Server events",{"type":53,"value":3316}," — A single event can contain multiple content parts simultaneously (audio + transcript). Process ",{"type":47,"tag":69,"props":3318,"children":3319},{},[3320],{"type":53,"value":2025},{"type":53,"value":3322}," parts in each event.",{"type":47,"tag":86,"props":3324,"children":3325},{},[3326,3331,3332,3337,3339,3344,3345,3350,3352,3357],{"type":47,"tag":69,"props":3327,"children":3328},{},[3329],{"type":53,"value":3330},"Client content",{"type":53,"value":363},{"type":47,"tag":147,"props":3333,"children":3335},{"className":3334},[],[3336],{"type":53,"value":596},{"type":53,"value":3338}," is only for seeding initial context history (set ",{"type":47,"tag":147,"props":3340,"children":3342},{"className":3341},[],[3343],{"type":53,"value":618},{"type":53,"value":620},{"type":47,"tag":147,"props":3346,"children":3348},{"className":3347},[],[3349],{"type":53,"value":626},{"type":53,"value":3351},"). Use ",{"type":47,"tag":147,"props":3353,"children":3355},{"className":3354},[],[3356],{"type":53,"value":573},{"type":53,"value":3358}," for text during conversation.",{"type":47,"tag":86,"props":3360,"children":3361},{},[3362,3367,3369,3375,3377,3383],{"type":47,"tag":69,"props":3363,"children":3364},{},[3365],{"type":53,"value":3366},"Turn coverage",{"type":53,"value":3368}," — Defaults to ",{"type":47,"tag":147,"props":3370,"children":3372},{"className":3371},[],[3373],{"type":53,"value":3374},"TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO",{"type":53,"value":3376}," instead of ",{"type":47,"tag":147,"props":3378,"children":3380},{"className":3379},[],[3381],{"type":53,"value":3382},"TURN_INCLUDES_ONLY_ACTIVITY",{"type":53,"value":3384},". If sending constant video frames, consider sending only during audio activity to reduce costs.",{"type":47,"tag":86,"props":3386,"children":3387},{},[3388,3392],{"type":47,"tag":69,"props":3389,"children":3390},{},[3391],{"type":53,"value":3155},{"type":53,"value":3393}," — Not yet supported. Function calling is synchronous only.",{"type":47,"tag":86,"props":3395,"children":3396},{},[3397,3402],{"type":47,"tag":69,"props":3398,"children":3399},{},[3400],{"type":53,"value":3401},"Proactive audio & affective dialogue",{"type":53,"value":3403}," — Not yet supported. Remove any configuration for these features.",{"type":47,"tag":56,"props":3405,"children":3407},{"id":3406},"best-practices",[3408],{"type":53,"value":3409},"Best Practices",{"type":47,"tag":3221,"props":3411,"children":3412},{},[3413,3423,3433,3443,3453,3475,3491,3501],{"type":47,"tag":86,"props":3414,"children":3415},{},[3416,3421],{"type":47,"tag":69,"props":3417,"children":3418},{},[3419],{"type":53,"value":3420},"Use headphones",{"type":53,"value":3422}," when testing mic audio to prevent echo\u002Fself-interruption",{"type":47,"tag":86,"props":3424,"children":3425},{},[3426,3431],{"type":47,"tag":69,"props":3427,"children":3428},{},[3429],{"type":53,"value":3430},"Enable context window compression",{"type":53,"value":3432}," for sessions longer than 15 minutes",{"type":47,"tag":86,"props":3434,"children":3435},{},[3436,3441],{"type":47,"tag":69,"props":3437,"children":3438},{},[3439],{"type":53,"value":3440},"Implement session resumption",{"type":53,"value":3442}," to handle connection resets gracefully",{"type":47,"tag":86,"props":3444,"children":3445},{},[3446,3451],{"type":47,"tag":69,"props":3447,"children":3448},{},[3449],{"type":53,"value":3450},"Use ephemeral tokens",{"type":53,"value":3452}," for client-side deployments — never expose API keys in browsers",{"type":47,"tag":86,"props":3454,"children":3455},{},[3456,3466,3468,3473],{"type":47,"tag":69,"props":3457,"children":3458},{},[3459,3461],{"type":53,"value":3460},"Use ",{"type":47,"tag":147,"props":3462,"children":3464},{"className":3463},[],[3465],{"type":53,"value":573},{"type":53,"value":3467}," for all real-time user input (audio, video, text). Reserve ",{"type":47,"tag":147,"props":3469,"children":3471},{"className":3470},[],[3472],{"type":53,"value":596},{"type":53,"value":3474}," only for seeding initial context history",{"type":47,"tag":86,"props":3476,"children":3477},{},[3478,3489],{"type":47,"tag":69,"props":3479,"children":3480},{},[3481,3483],{"type":53,"value":3482},"Send ",{"type":47,"tag":147,"props":3484,"children":3486},{"className":3485},[],[3487],{"type":53,"value":3488},"audioStreamEnd",{"type":53,"value":3490}," when the mic is paused to flush cached audio",{"type":47,"tag":86,"props":3492,"children":3493},{},[3494,3499],{"type":47,"tag":69,"props":3495,"children":3496},{},[3497],{"type":53,"value":3498},"Clear audio playback queues",{"type":53,"value":3500}," on interruption signals",{"type":47,"tag":86,"props":3502,"children":3503},{},[3504,3509],{"type":47,"tag":69,"props":3505,"children":3506},{},[3507],{"type":53,"value":3508},"Process all parts",{"type":53,"value":3510}," in each server event — events can contain multiple content parts",{"type":47,"tag":56,"props":3512,"children":3514},{"id":3513},"documentation-lookup",[3515],{"type":53,"value":3516},"Documentation Lookup",{"type":47,"tag":700,"props":3518,"children":3520},{"id":3519},"when-mcp-is-installed-preferred",[3521],{"type":53,"value":3522},"When MCP is Installed (Preferred)",{"type":47,"tag":63,"props":3524,"children":3525},{},[3526,3528,3537,3539,3543],{"type":53,"value":3527},"If the ",{"type":47,"tag":69,"props":3529,"children":3530},{},[3531],{"type":47,"tag":147,"props":3532,"children":3534},{"className":3533},[],[3535],{"type":53,"value":3536},"search_docs",{"type":53,"value":3538}," tool (from the Google MCP server) is available, use it as your ",{"type":47,"tag":69,"props":3540,"children":3541},{},[3542],{"type":53,"value":610},{"type":53,"value":3544}," documentation source:",{"type":47,"tag":3221,"props":3546,"children":3547},{},[3548,3560,3565],{"type":47,"tag":86,"props":3549,"children":3550},{},[3551,3553,3558],{"type":53,"value":3552},"Call ",{"type":47,"tag":147,"props":3554,"children":3556},{"className":3555},[],[3557],{"type":53,"value":3536},{"type":53,"value":3559}," with your query",{"type":47,"tag":86,"props":3561,"children":3562},{},[3563],{"type":53,"value":3564},"Read the returned documentation",{"type":47,"tag":86,"props":3566,"children":3567},{},[3568,3573],{"type":47,"tag":69,"props":3569,"children":3570},{},[3571],{"type":53,"value":3572},"Trust MCP results",{"type":53,"value":3574}," as source of truth for API details — they are always up-to-date.",{"type":47,"tag":196,"props":3576,"children":3577},{},[3578],{"type":47,"tag":63,"props":3579,"children":3580},{},[3581,3585,3587,3592],{"type":47,"tag":203,"props":3582,"children":3583},{},[3584],{"type":53,"value":565},{"type":53,"value":3586},"\nWhen MCP tools are present, ",{"type":47,"tag":69,"props":3588,"children":3589},{},[3590],{"type":53,"value":3591},"never",{"type":53,"value":3593}," fetch URLs manually. MCP provides up-to-date, indexed documentation that is more accurate and token-efficient than URL fetching.",{"type":47,"tag":700,"props":3595,"children":3597},{"id":3596},"when-mcp-is-not-installed-fallback-only",[3598],{"type":53,"value":3599},"When MCP is NOT Installed (Fallback Only)",{"type":47,"tag":63,"props":3601,"children":3602},{},[3603],{"type":53,"value":3604},"If no MCP documentation tools are available, fetch from the official docs index:",{"type":47,"tag":63,"props":3606,"children":3607},{},[3608,3613,3614],{"type":47,"tag":69,"props":3609,"children":3610},{},[3611],{"type":53,"value":3612},"llms.txt URL",{"type":53,"value":355},{"type":47,"tag":147,"props":3615,"children":3617},{"className":3616},[],[3618],{"type":53,"value":3619},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fllms.txt",{"type":47,"tag":63,"props":3621,"children":3622},{},[3623,3625,3631],{"type":53,"value":3624},"This index contains links to all documentation pages in ",{"type":47,"tag":147,"props":3626,"children":3628},{"className":3627},[],[3629],{"type":53,"value":3630},".md.txt",{"type":53,"value":3632}," format. Use web fetch tools to:",{"type":47,"tag":3221,"props":3634,"children":3635},{},[3636,3649],{"type":47,"tag":86,"props":3637,"children":3638},{},[3639,3641,3647],{"type":53,"value":3640},"Fetch ",{"type":47,"tag":147,"props":3642,"children":3644},{"className":3643},[],[3645],{"type":53,"value":3646},"llms.txt",{"type":53,"value":3648}," to discover available documentation pages",{"type":47,"tag":86,"props":3650,"children":3651},{},[3652,3654,3660],{"type":53,"value":3653},"Fetch specific pages (e.g., ",{"type":47,"tag":147,"props":3655,"children":3657},{"className":3656},[],[3658],{"type":53,"value":3659},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-session.md.txt",{"type":53,"value":154},{"type":47,"tag":700,"props":3662,"children":3664},{"id":3663},"key-documentation-pages",[3665],{"type":53,"value":3666},"Key Documentation Pages",{"type":47,"tag":196,"props":3668,"children":3669},{},[3670],{"type":47,"tag":63,"props":3671,"children":3672},{},[3673,3677,3679,3684],{"type":47,"tag":203,"props":3674,"children":3675},{},[3676],{"type":53,"value":565},{"type":53,"value":3678},"\nThose are not all the documentation pages. Use the ",{"type":47,"tag":147,"props":3680,"children":3682},{"className":3681},[],[3683],{"type":53,"value":3646},{"type":53,"value":3685}," index to discover available documentation pages",{"type":47,"tag":82,"props":3687,"children":3688},{},[3689,3701,3712,3724,3736,3747,3759],{"type":47,"tag":86,"props":3690,"children":3691},{},[3692,3699],{"type":47,"tag":218,"props":3693,"children":3696},{"href":3694,"rel":3695},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive.md.txt",[454],[3697],{"type":53,"value":3698},"Live API Overview",{"type":53,"value":3700}," — getting started, raw WebSocket usage",{"type":47,"tag":86,"props":3702,"children":3703},{},[3704,3710],{"type":47,"tag":218,"props":3705,"children":3707},{"href":2622,"rel":3706},[454],[3708],{"type":53,"value":3709},"Live Translate",{"type":53,"value":3711}," — configuration options and capabilities for translation",{"type":47,"tag":86,"props":3713,"children":3714},{},[3715,3722],{"type":47,"tag":218,"props":3716,"children":3719},{"href":3717,"rel":3718},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-guide.md.txt",[454],[3720],{"type":53,"value":3721},"Live API Capabilities Guide",{"type":53,"value":3723}," — voice config, transcription config, native audio (thinking), VAD configuration, media resolution",{"type":47,"tag":86,"props":3725,"children":3726},{},[3727,3734],{"type":47,"tag":218,"props":3728,"children":3731},{"href":3729,"rel":3730},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Flive-tools.md.txt",[454],[3732],{"type":53,"value":3733},"Live API Tool Use",{"type":53,"value":3735}," — function calling (sync and async), Google Search grounding",{"type":47,"tag":86,"props":3737,"children":3738},{},[3739,3745],{"type":47,"tag":218,"props":3740,"children":3742},{"href":3659,"rel":3741},[454],[3743],{"type":53,"value":3744},"Session Management",{"type":53,"value":3746}," — context window compression, session resumption, GoAway signals",{"type":47,"tag":86,"props":3748,"children":3749},{},[3750,3757],{"type":47,"tag":218,"props":3751,"children":3754},{"href":3752,"rel":3753},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fephemeral-tokens.md.txt",[454],[3755],{"type":53,"value":3756},"Ephemeral Tokens",{"type":53,"value":3758}," — secure client-side authentication for browser\u002Fmobile",{"type":47,"tag":86,"props":3760,"children":3761},{},[3762,3769],{"type":47,"tag":218,"props":3763,"children":3766},{"href":3764,"rel":3765},"https:\u002F\u002Fai.google.dev\u002Fapi\u002Flive.md.txt",[454],[3767],{"type":53,"value":3768},"WebSockets API Reference",{"type":53,"value":3770}," — raw WebSocket protocol details",{"type":47,"tag":56,"props":3772,"children":3774},{"id":3773},"supported-languages",[3775],{"type":53,"value":3776},"Supported Languages",{"type":47,"tag":63,"props":3778,"children":3779},{},[3780],{"type":53,"value":3781},"The Live API supports 70 languages including: English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Hindi, Arabic, Russian, and many more. Native audio models automatically detect and switch languages.",{"type":47,"tag":3783,"props":3784,"children":3785},"style",{},[3786],{"type":53,"value":3787},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3789,"total":941},[3790,3805,3816,3824],{"slug":3791,"name":3791,"fn":3792,"description":3793,"org":3794,"tags":3795,"stars":28,"repoUrl":29,"updatedAt":3804},"gemini-api-dev","build applications with the Gemini API","Use this skill when building applications with Gemini API hosted models, including Gemini and Gemma 4, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or needing current model specifications. Covers SDK usage (google-genai for Python, @google\u002Fgenai for JavaScript\u002FTypeScript, com.google.genai:google-genai for Java, google.golang.org\u002Fgenai for Go), model selection, and API capabilities.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3796,3799,3800,3801],{"name":3797,"slug":3798,"type":15},"API Development","api-development",{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":3802,"slug":3803,"type":15},"Multimodal","multimodal","2026-07-24T05:42:40.130864",{"slug":3806,"name":3806,"fn":3807,"description":3808,"org":3809,"tags":3810,"stars":28,"repoUrl":29,"updatedAt":3815},"gemini-interactions-api","implement Gemini API calls for text and multimodal generation","Use this skill when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses, background research tasks, function calling, structured output, or migrating from the old generateContent API. This skill covers the Interactions API, the recommended way to use Gemini models and agents in Python and TypeScript.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3811,3812,3813,3814],{"name":3797,"slug":3798,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":3802,"slug":3803,"type":15},"2026-07-24T05:42:41.109676",{"slug":4,"name":4,"fn":5,"description":6,"org":3817,"tags":3818,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3819,3820,3821,3822,3823],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"slug":3825,"name":3825,"fn":3826,"description":3827,"org":3828,"tags":3829,"stars":28,"repoUrl":29,"updatedAt":3838},"gemini-omni-flash-api","generate and edit video with Gemini","Use this skill for generative video editing, text-to-video, image-referenced video generation, and first-frame-to-video transition animations using the official google-genai SDK. Includes workflows for pre-processing\u002Foptimizing high-resolution or long source videos with ffmpeg, stripping audio for full sound regeneration, and handling turn-by-turn video editing and parallel execution.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3830,3833,3834,3837],{"name":3831,"slug":3832,"type":15},"Animation","animation",{"name":23,"slug":24,"type":15},{"name":3835,"slug":3836,"type":15},"Generative Art","generative-art",{"name":26,"slug":27,"type":15},"2026-07-01T07:47:06.8657",{"items":3840,"total":986},[3841,3848,3855,3863,3870,3891,3903,3918,3930],{"slug":3791,"name":3791,"fn":3792,"description":3793,"org":3842,"tags":3843,"stars":28,"repoUrl":29,"updatedAt":3804},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3844,3845,3846,3847],{"name":3797,"slug":3798,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":3802,"slug":3803,"type":15},{"slug":3806,"name":3806,"fn":3807,"description":3808,"org":3849,"tags":3850,"stars":28,"repoUrl":29,"updatedAt":3815},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3851,3852,3853,3854],{"name":3797,"slug":3798,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":3802,"slug":3803,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":3856,"tags":3857,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3858,3859,3860,3861,3862],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":26,"slug":27,"type":15},{"name":17,"slug":18,"type":15},{"slug":3825,"name":3825,"fn":3826,"description":3827,"org":3864,"tags":3865,"stars":28,"repoUrl":29,"updatedAt":3838},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3866,3867,3868,3869],{"name":3831,"slug":3832,"type":15},{"name":23,"slug":24,"type":15},{"name":3835,"slug":3836,"type":15},{"name":26,"slug":27,"type":15},{"slug":3871,"name":3871,"fn":3872,"description":3873,"org":3874,"tags":3875,"stars":3888,"repoUrl":3889,"updatedAt":3890},"briefing","format daily news and trend briefings","Formats the standalone daily briefing — curated picks with why-it-matters lines, community buzz, the trend read across runs, and the taste note that keeps the learning visible.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3876,3879,3882,3885],{"name":3877,"slug":3878,"type":15},"Communications","communications",{"name":3880,"slug":3881,"type":15},"Research","research",{"name":3883,"slug":3884,"type":15},"Summarization","summarization",{"name":3886,"slug":3887,"type":15},"Writing","writing",56,"https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-managed-agents-templates","2026-07-24T06:08:46.318988",{"slug":3892,"name":3892,"fn":3893,"description":3894,"org":3895,"tags":3896,"stars":3888,"repoUrl":3889,"updatedAt":3902},"curation","curate and rank news items","Selection and ranking rules — how to turn the raw fetched pool into the handful of items the reader actually wants, guided by the taste profile in interests.json.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3897,3900,3901],{"name":3898,"slug":3899,"type":15},"Automation","automation",{"name":3880,"slug":3881,"type":15},{"name":3883,"slug":3884,"type":15},"2026-07-24T06:08:49.164617",{"slug":3904,"name":3904,"fn":3905,"description":3906,"org":3907,"tags":3908,"stars":3888,"repoUrl":3889,"updatedAt":3917},"deliver","post daily briefings to chat platforms","Posts a condensed version of the briefing to a Google Chat or Slack incoming webhook, so the daily run delivers itself — skips silently when no webhook is configured.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3909,3910,3911,3914],{"name":3898,"slug":3899,"type":15},{"name":3877,"slug":3878,"type":15},{"name":3912,"slug":3913,"type":15},"Messaging","messaging",{"name":3915,"slug":3916,"type":15},"Slack","slack","2026-07-24T06:09:04.439512",{"slug":3919,"name":3919,"fn":3920,"description":3921,"org":3922,"tags":3923,"stars":3888,"repoUrl":3889,"updatedAt":3929},"fetch-news","fetch and deduplicate news articles","Pulls the latest Google News and Hacker News items for every topic and genre in the reader's interests, deduped against every item shown in previous runs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3924,3925,3926],{"name":3898,"slug":3899,"type":15},{"name":3880,"slug":3881,"type":15},{"name":3927,"slug":3928,"type":15},"Search","search","2026-07-24T06:08:47.09259",{"slug":3931,"name":3931,"fn":3932,"description":3933,"org":3934,"tags":3935,"stars":3944,"repoUrl":3945,"updatedAt":3946},"gemini-api-cli","interact with Gemini API via CLI","Guide for using the Gemini API CLI tool. Use when you need to interact with the Gemini API via the command line, manage agents, or generate media (images, audio).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3936,3939,3940,3943],{"name":3937,"slug":3938,"type":15},"Agents","agents",{"name":3797,"slug":3798,"type":15},{"name":3941,"slug":3942,"type":15},"CLI","cli",{"name":23,"slug":24,"type":15},37,"https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-api-cli","2026-06-30T07:10:10.809"]