หน้านี้อธิบายความสามารถของ Live API เมื่อคุณใช้ผ่าน Firebase AI Logic ซึ่งรวมถึง
รูปแบบอินพุตที่รองรับ ได้แก่
รายการฟีเจอร์ที่ไม่รองรับ ซึ่งหลายฟีเจอร์จะพร้อมใช้งานในเร็วๆ นี้
ไปที่หน้าอื่นๆ เพื่อดูข้อมูลเกี่ยวกับการปรับแต่งการติดตั้งใช้งานโดยใช้ตัวเลือกการกำหนดค่าต่างๆ เช่น การเพิ่มการถอดเสียงหรือการตั้งค่าเสียงตอบ นอกจากนี้ คุณยังดูข้อมูลเกี่ยวกับการจัดการเซสชันได้ด้วย
รูปแบบอินพุต
ส่วนนี้จะอธิบายวิธีส่งอินพุตประเภทต่างๆ ไปยังLive API โมเดล โมเดลเสียงเนทีฟต้องใช้อินพุตเสียงเสมอ (พร้อมกับ รูปแบบเพิ่มเติมที่ไม่บังคับของอินพุตข้อความหรือวิดีโอ) และจะตอบสนองด้วยเอาต์พุตเสียงเสมอ
สตรีมอินพุตเสียง
|
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและรหัสเฉพาะของผู้ให้บริการ ในหน้านี้ |
ความสามารถที่พบบ่อยที่สุดของ Live API คือการสตรีมเสียงแบบสองทิศทาง ซึ่งหมายถึงการสตรีมทั้งอินพุตและเอาต์พุตเสียงแบบเรียลไทม์
Live API รองรับรูปแบบเสียงต่อไปนี้
- รูปแบบเสียงอินพุต: เสียง PCM แบบ 16 บิตดิบที่ 16 kHz แบบ Little-Endian
รูปแบบเสียงเอาต์พุต: เสียง PCM แบบ 16 บิตดิบที่ 24 kHz แบบ Little-Endian
ประเภท MIME ที่รองรับ:
audio/x-aac,audio/flac,audio/mp3,audio/m4a,audio/mpeg,audio/mpga,audio/mp4,audio/ogg,audio/pcm,audio/wav,audio/webm
หากต้องการระบุอัตราการสุ่มตัวอย่างของเสียงที่ป้อน ให้ตั้งค่าประเภท MIME ของ Blob ที่มีเสียงแต่ละรายการเป็นค่า เช่น audio/pcm;rate=16000
Swift
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น audio
import FirebaseAILogic
// Initialize the Gemini Developer API backend service
// Create a `liveModel` instance with a model that supports the Live API
let liveModel = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
modelName: "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
generationConfig: LiveGenerationConfig(
responseModalities: [.audio]
)
)
do {
let session = try await liveModel.connect()
// Load the audio file, or tap a microphone
guard let audioFile = NSDataAsset(name: "audio.pcm") else {
fatalError("Failed to load audio file")
}
// Provide the audio data
await session.sendAudioRealtime(audioFile.data)
var outputText = ""
for try await message in session.responses {
if case let .content(content) = message.payload {
content.modelTurn?.parts.forEach { part in
if let part = part as? InlineDataPart, part.mimeType.starts(with: "audio/pcm") {
// Handle 16bit pcm audio data at 24khz
playAudio(part.data)
}
}
// Optional: if you don't require to send more requests.
if content.isTurnComplete {
await session.close()
}
}
}
} catch {
fatalError(error.localizedDescription)
}
Kotlin
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น AUDIO
// Initialize the Gemini Developer API backend service
// Create a `liveModel` instance with a model that supports the Live API
val liveModel = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
modelName = "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
generationConfig = liveGenerationConfig {
responseModality = ResponseModality.AUDIO
}
)
val session = liveModel.connect()
// This is the recommended approach.
// However, you can create your own recorder and handle the stream.
session.startAudioConversation()
Java
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น AUDIO
ExecutorService executor = Executors.newFixedThreadPool(1);
// Initialize the Gemini Developer API backend service
// Create a `liveModel` instance with a model that supports the Live API
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
"gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
new LiveGenerationConfig.Builder()
.setResponseModality(ResponseModality.AUDIO)
.build()
);
LiveModelFutures liveModel = LiveModelFutures.from(lm);
ListenableFuture<LiveSession> sessionFuture = liveModel.connect();
Futures.addCallback(sessionFuture, new FutureCallback<LiveSession>() {
@Override
public void onSuccess(LiveSession ses) {
LiveSessionFutures session = LiveSessionFutures.from(ses);
session.startAudioConversation();
}
@Override
public void onFailure(Throwable t) {
// Handle exceptions
}
}, executor);
Web
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveGenerativeModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น AUDIO
import { initializeApp } from "firebase/app";
import { getAI, getLiveGenerativeModel, GoogleAIBackend, ResponseModality } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `LiveGenerativeModel` instance with a model that supports the Live API
const liveModel = getLiveGenerativeModel(ai, {
model: "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
generationConfig: {
responseModalities: [ResponseModality.AUDIO],
},
});
const session = await liveModel.connect();
// Start the audio conversation
const audioConversationController = await startAudioConversation(session);
// ... Later, to stop the audio conversation
// await audioConversationController.stop()
Dart
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveGenerativeModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น audio
import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
import 'package:your_audio_recorder_package/your_audio_recorder_package.dart';
late LiveModelSession _session;
final _audioRecorder = YourAudioRecorder();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Gemini Developer API backend service
// Create a `liveGenerativeModel` instance with a model that supports the Live API
final liveModel = FirebaseAI.googleAI().liveGenerativeModel(
model: 'gemini-2.5-flash-native-audio-preview-12-2025',
// Configure the model to respond with audio
liveGenerationConfig: LiveGenerationConfig(
responseModalities: [ResponseModalities.audio],
),
);
_session = await liveModel.connect();
final audioRecordStream = _audioRecorder.startRecordingStream();
// Map the Uint8List stream to InlineDataPart stream
final mediaChunkStream = audioRecordStream.map((data) {
return InlineDataPart('audio/pcm', data);
});
await _session.startMediaStream(mediaChunkStream);
// In a separate thread, receive the audio response from the model
await for (final message in _session.receive()) {
// Process the received message
}
Unity
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น Audio
using Firebase;
using Firebase.AI;
async Task SendTextReceiveAudio() {
// Initialize the Gemini Developer API backend service
// Create a `LiveModel` instance with a model that supports the Live API
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
modelName: "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
liveGenerationConfig: new LiveGenerationConfig(
responseModalities: new[] { ResponseModality.Audio })
);
LiveSession session = await liveModel.ConnectAsync();
// Start a coroutine to send audio from the Microphone
var recordingCoroutine = StartCoroutine(SendAudio(session));
// Start receiving the response
await ReceiveAudio(session);
}
IEnumerator SendAudio(LiveSession liveSession) {
string microphoneDeviceName = null;
int recordingFrequency = 16000;
int recordingBufferSeconds = 2;
var recordingClip = Microphone.Start(microphoneDeviceName, true,
recordingBufferSeconds, recordingFrequency);
int lastSamplePosition = 0;
while (true) {
if (!Microphone.IsRecording(microphoneDeviceName)) {
yield break;
}
int currentSamplePosition = Microphone.GetPosition(microphoneDeviceName);
if (currentSamplePosition != lastSamplePosition) {
// The Microphone uses a circular buffer, so we need to check if the
// current position wrapped around to the beginning, and handle it
// accordingly.
int sampleCount;
if (currentSamplePosition > lastSamplePosition) {
sampleCount = currentSamplePosition - lastSamplePosition;
} else {
sampleCount = recordingClip.samples - lastSamplePosition + currentSamplePosition;
}
if (sampleCount > 0) {
// Get the audio chunk
float[] samples = new float[sampleCount];
recordingClip.GetData(samples, lastSamplePosition);
// Send the data, discarding the resulting Task to avoid the warning
_ = liveSession.SendAudioAsync(samples);
lastSamplePosition = currentSamplePosition;
}
}
// Wait for a short delay before reading the next sample from the Microphone
const float MicrophoneReadDelay = 0.5f;
yield return new WaitForSeconds(MicrophoneReadDelay);
}
}
Queue audioBuffer = new();
async Task ReceiveAudio(LiveSession liveSession) {
int sampleRate = 24000;
int channelCount = 1;
// Create a looping AudioClip to fill with the received audio data
int bufferSamples = (int)(sampleRate * channelCount);
AudioClip clip = AudioClip.Create("StreamingPCM", bufferSamples, channelCount,
sampleRate, true, OnAudioRead);
// Attach the clip to an AudioSource and start playing it
AudioSource audioSource = GetComponent();
audioSource.clip = clip;
audioSource.loop = true;
audioSource.Play();
// Start receiving the response
await foreach (var message in liveSession.ReceiveAsync()) {
// Process the received message
foreach (float[] pcmData in message.AudioAsFloat) {
lock (audioBuffer) {
foreach (float sample in pcmData) {
audioBuffer.Enqueue(sample);
}
}
}
}
}
// This method is called by the AudioClip to load audio data.
private void OnAudioRead(float[] data) {
int samplesToProvide = data.Length;
int samplesProvided = 0;
lock(audioBuffer) {
while (samplesProvided < samplesToProvide && audioBuffer.Count > 0) {
data[samplesProvided] = audioBuffer.Dequeue();
samplesProvided++;
}
}
while (samplesProvided < samplesToProvide) {
data[samplesProvided] = 0.0f;
samplesProvided++;
}
}
สตรีมข้อความ + อินพุตเสียง
|
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและรหัสเฉพาะของผู้ให้บริการ ในหน้านี้ |
หากจำเป็น คุณสามารถส่งอินพุตข้อความพร้อมกับอินพุตเสียงและรับเอาต์พุตเสียงที่สตรีมได้
Swift
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น audio
import FirebaseAILogic
// Initialize the Gemini Developer API backend service
// Create a `liveModel` instance with a model that supports the Live API
let liveModel = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
modelName: "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
generationConfig: LiveGenerationConfig(
responseModalities: [.audio]
)
)
do {
let session = try await liveModel.connect()
// Provide a text prompt
let text = "tell a short story"
await session.sendTextRealtime(text)
var outputText = ""
for try await message in session.responses {
if case let .content(content) = message.payload {
content.modelTurn?.parts.forEach { part in
if let part = part as? InlineDataPart, part.mimeType.starts(with: "audio/pcm") {
// Handle 16bit pcm audio data at 24khz
playAudio(part.data)
}
}
// Optional: if you don't require to send more requests.
if content.isTurnComplete {
await session.close()
}
}
}
} catch {
fatalError(error.localizedDescription)
}
Kotlin
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น AUDIO
// Initialize the Gemini Developer API backend service
// Create a `liveModel` instance with a model that supports the Live API
val liveModel = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
modelName = "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
generationConfig = liveGenerationConfig {
responseModality = ResponseModality.AUDIO
}
)
val session = liveModel.connect()
// Provide a text prompt
val text = "tell a short story"
session.send(text)
session.receive().collect {
if(it.turnComplete) {
// Optional: if you don't require to send more requests.
session.stopReceiving();
}
// Handle 16bit pcm audio data at 24khz
playAudio(it.data)
}
Java
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น AUDIO
ExecutorService executor = Executors.newFixedThreadPool(1);
// Initialize the Gemini Developer API backend service
// Create a `liveModel` instance with a model that supports the Live API
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
"gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with text
new LiveGenerationConfig.Builder()
.setResponseModality(ResponseModality.AUDIO)
.build()
);
LiveModelFutures model = LiveModelFutures.from(lm);
ListenableFuture<LiveSession> sessionFuture = model.connect();
class LiveContentResponseSubscriber implements Subscriber<LiveContentResponse> {
@Override
public void onSubscribe(Subscription s) {
s.request(Long.MAX_VALUE); // Request an unlimited number of items
}
@Override
public void onNext(LiveContentResponse liveContentResponse) {
// Handle 16bit pcm audio data at 24khz
liveContentResponse.getData();
}
@Override
public void onError(Throwable t) {
System.err.println("Error: " + t.getMessage());
}
@Override
public void onComplete() {
System.out.println("Done receiving messages!");
}
}
Futures.addCallback(sessionFuture, new FutureCallback<LiveSession>() {
@Override
public void onSuccess(LiveSession ses) {
LiveSessionFutures session = LiveSessionFutures.from(ses);
// Provide a text prompt
String text = "tell me a short story?";
session.send(text);
Publisher<LiveContentResponse> publisher = session.receive();
publisher.subscribe(new LiveContentResponseSubscriber());
}
@Override
public void onFailure(Throwable t) {
// Handle exceptions
}
}, executor);
Web
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveGenerativeModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น AUDIO
import { initializeApp } from "firebase/app";
import { getAI, getLiveGenerativeModel, GoogleAIBackend, ResponseModality } from "firebase/ai";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `LiveGenerativeModel` instance with a model that supports the Live API
const liveModel = getLiveGenerativeModel(ai, {
model: "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
generationConfig: {
responseModalities: [ResponseModality.AUDIO],
},
});
const session = await liveModel.connect();
// Provide a text prompt
const prompt = "tell a short story";
session.send(prompt);
// Handle the model's audio output
const messages = session.receive();
for await (const message of messages) {
switch (message.type) {
case "serverContent":
if (message.turnComplete) {
// TODO(developer): Handle turn completion
} else if (message.interrupted) {
// TODO(developer): Handle the interruption
break;
} else if (message.modelTurn) {
const parts = message.modelTurn?.parts;
parts?.forEach((part) => {
if (part.inlineData) {
// TODO(developer): Play the audio chunk
}
});
}
break;
case "toolCall":
// Ignore
case "toolCallCancellation":
// Ignore
}
}
Dart
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveGenerativeModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น audio
import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
import 'dart:async';
import 'dart:typed_data';
late LiveModelSession _session;
Future<Stream<Uint8List>> textToAudio(String textPrompt) async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Initialize the Gemini Developer API backend service
// Create a `liveGenerativeModel` instance with a model that supports the Live API
final liveModel = FirebaseAI.googleAI().liveGenerativeModel(
model: 'gemini-2.5-flash-native-audio-preview-12-2025',
// Configure the model to respond with audio
liveGenerationConfig: LiveGenerationConfig(
responseModalities: [ResponseModalities.audio],
),
);
_session = await liveModel.connect();
final prompt = Content.text(textPrompt);
await _session.send(input: prompt);
return _session.receive().asyncMap((response) async {
if (response is LiveServerContent && response.modelTurn?.parts != null) {
for (final part in response.modelTurn!.parts) {
if (part is InlineDataPart) {
return part.bytes;
}
}
}
throw Exception('Audio data not found');
});
}
Future<void> main() async {
try {
final audioStream = await textToAudio('Convert this text to audio.');
await for (final audioData in audioStream) {
// Process the audio data (e.g., play it using an audio player package)
print('Received audio data: ${audioData.length} bytes');
// Example using flutter_sound (replace with your chosen package):
// await _flutterSoundPlayer.startPlayer(fromDataBuffer: audioData);
}
} catch (e) {
print('Error: $e');
}
}
Unity
หากต้องการใช้ Live API ให้สร้างอินสแตนซ์
LiveModel
และตั้งค่า
รูปแบบการตอบกลับ
เป็น Audio
using Firebase;
using Firebase.AI;
async Task SendTextReceiveAudio() {
// Initialize the Gemini Developer API backend service
// Create a `LiveModel` instance with a model that supports the Live API
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
modelName: "gemini-2.5-flash-native-audio-preview-12-2025",
// Configure the model to respond with audio
liveGenerationConfig: new LiveGenerationConfig(
responseModalities: new[] { ResponseModality.Audio })
);
LiveSession session = await liveModel.ConnectAsync();
// Provide a text prompt
var prompt = ModelContent.Text("Convert this text to audio.");
await session.SendAsync(content: prompt, turnComplete: true);
// Start receiving the response
await ReceiveAudio(session);
}
Queue<float> audioBuffer = new();
async Task ReceiveAudio(LiveSession session) {
int sampleRate = 24000;
int channelCount = 1;
// Create a looping AudioClip to fill with the received audio data
int bufferSamples = (int)(sampleRate * channelCount);
AudioClip clip = AudioClip.Create("StreamingPCM", bufferSamples, channelCount,
sampleRate, true, OnAudioRead);
// Attach the clip to an AudioSource and start playing it
AudioSource audioSource = GetComponent<AudioSource>();
audioSource.clip = clip;
audioSource.loop = true;
audioSource.Play();
// Start receiving the response
await foreach (var message in session.ReceiveAsync()) {
// Process the received message
foreach (float[] pcmData in message.AudioAsFloat) {
lock (audioBuffer) {
foreach (float sample in pcmData) {
audioBuffer.Enqueue(sample);
}
}
}
}
}
// This method is called by the AudioClip to load audio data.
private void OnAudioRead(float[] data) {
int samplesToProvide = data.Length;
int samplesProvided = 0;
lock(audioBuffer) {
while (samplesProvided < samplesToProvide && audioBuffer.Count > 0) {
data[samplesProvided] = audioBuffer.Dequeue();
samplesProvided++;
}
}
while (samplesProvided < samplesToProvide) {
data[samplesProvided] = 0.0f;
samplesProvided++;
}
}
โปรดทราบว่าคุณยังส่งข้อความเป็น การอัปเดตเนื้อหาแบบเพิ่มทีละรายการ ในระหว่างเซสชันที่ใช้งานอยู่ได้ด้วย
สตรีมวิดีโอ + เสียงที่ป้อน
การระบุเนื้อหาวิดีโออินพุตจะให้บริบทภาพสำหรับเสียงอินพุต
Live API คาดหวังลำดับของเฟรมรูปภาพแบบแยกและรองรับอินพุตเฟรมวิดีโอที่ 1 เฟรมต่อวินาที (FPS)
อินพุตที่แนะนำ: ความละเอียด 768x768 ดั้งเดิมที่ 1 FPS
ประเภท MIME ที่รองรับ:
video/x-flv,video/quicktime,video/mpeg,video/mpegs,video/mpg,video/mp4,video/webm,video/wmv,video/3gpp
การสตรีมวิดีโอ + อินพุตเสียงเป็นการติดตั้งใช้งานขั้นสูงกว่า ดังนั้นโปรดดูแอปตัวอย่างเพื่อดูวิธีติดตั้งใช้งานความสามารถนี้ Swift - เร็วๆ นี้ | Android - แอปตัวอย่าง | เว็บ - เร็วๆ นี้ | Flutter - แอปตัวอย่าง | Unity - เร็วๆ นี้
ฟีเจอร์ที่ไม่รองรับ
ฟีเจอร์ที่ ยังไม่รองรับใน Firebase AI Logic เมื่อใช้ Live API แต่จะพร้อมให้บริการเร็วๆ นี้
การจัดการการหยุดชะงัก
การจัดการเซสชันบางอย่าง รวมถึง การกลับมาใช้เซสชันในการเชื่อมต่อหลายครั้ง การขยายระยะเวลาเซสชัน หรือ การบีบอัดหน้าต่างบริบท โปรดทราบว่าระบบรองรับการแจ้งเตือนการเดินทาง
การปิดใช้และการกำหนดค่าการตรวจจับกิจกรรมเสียง (VAD)
การตั้งค่าความละเอียดของสื่ออินพุต
การเพิ่มการกำหนดค่าการคิด
การเปิดใช้การโต้ตอบที่สะท้อนถึงความรู้สึกหรือเสียงเชิงรุก
การรับ
UsageMetadataในคำตอบ
ฟีเจอร์ที่ ไม่รองรับใน Firebase AI Logic เมื่อใช้ Live API และยังไม่มีแผนที่จะเปิดตัวในขณะนี้
เทมเพลตพรอมต์ของเซิร์ฟเวอร์
การอนุมานแบบไฮบริดหรือในอุปกรณ์
การตรวจสอบ AI ในคอนโซล Firebase
คุณทำอะไรได้อีกบ้าง
ปรับแต่งการติดตั้งใช้งานโดยใช้ตัวเลือกการกำหนดค่าต่างๆ เช่น การเพิ่มการถอดเสียงหรือการตั้งค่าเสียงตอบกลับ
ดูข้อมูลเกี่ยวกับการจัดการเซสชัน รวมถึงการอัปเดต เนื้อหาระหว่างเซสชันและการตรวจหาเมื่อเซสชันกำลังจะสิ้นสุด
เพิ่มประสิทธิภาพการใช้งานด้วยการให้สิทธิ์เข้าถึงเครื่องมือแก่โมเดล เช่น การเรียกใช้ฟังก์ชันและการอ้างอิงจาก Google Search เอกสารประกอบอย่างเป็นทางการเกี่ยวกับการใช้เครื่องมือกับ Live API จะพร้อมให้บริการในเร็วๆ นี้
ดูข้อมูลเกี่ยวกับขีดจำกัดและข้อกำหนด สำหรับการใช้ Live API เช่น ความยาวเซสชัน ขีดจำกัดอัตราคำขอ ภาษาที่รองรับ ฯลฯ