Gemini có thể xử lý nhiều loại dữ liệu đầu vào cùng lúc, bao gồm văn bản, hình ảnh và âm thanh.
Hướng dẫn này cho bạn biết cách xử lý các tệp nội dung nghe nhìn bằng Files API. Các thao tác cơ bản là giống nhau đối với tệp âm thanh, hình ảnh, video, tài liệu và các loại tệp được hỗ trợ khác.
Để biết hướng dẫn về câu lệnh liên quan đến tệp, hãy xem phần Hướng dẫn về câu lệnh liên quan đến tệp.
Tải tệp lên
Bạn có thể dùng Files API để tải một tệp nội dung nghe nhìn lên. Luôn sử dụng Files API khi tổng kích thước yêu cầu (bao gồm cả tệp, câu lệnh văn bản, chỉ dẫn hệ thống, v.v.) lớn hơn 100 MB. Đối với tệp PDF, giới hạn là 50 MB.
Đoạn mã sau đây tải một tệp lên, sau đó dùng tệp đó trong một lệnh gọi đến interactions.create.
Python
from google import genai
client = genai.Client()
myfile = client.files.upload(file="path/to/sample.mp3")
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "text", "text": "Describe this audio clip"},
{"type": "audio", "uri": myfile.uri, "mime_type": myfile.mime_type}
]
)
print(interaction.output_text)
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const myfile = await client.files.upload({
file: "path/to/sample.mp3",
config: { mime_type: "audio/mpeg" },
});
const interaction = await client.interactions.create({
model: "gemini-3.8-flash",
input: [
{ type: "text", text: "Describe this audio clip" },
{ type: "audio", uri: myfile.uri, mime_type: myfile.mimeType }
]
});
console.log(interaction.output_text);
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.AudioContent;
import com.google.genai.gaos.models.interactions.AudioContentMimeType;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
import java.util.Arrays;
import java.util.List;
Client client = new Client();
File myFile =
client.files.upload(
new java.io.File("path/to/sample.mp3"),
UploadFileConfig.builder().mimeType("audio/mp3").build());
Content textContent = TextContent.builder().text("Describe this audio clip").build();
Content audioContent =
AudioContent.builder()
.uri(myFile.uri().orElse(""))
.mimeType(AudioContentMimeType.of(myFile.mimeType().orElse("audio/mp3")))
.build();
List<Content> contents = Arrays.asList(textContent, audioContent);
CreateModelInteraction params =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.ofContent(contents))
.build();
Interaction interaction =
client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();
System.out.println(interaction.outputText().orElse(""));
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
MIMEType: "audio/mp3",
})
if err != nil {
log.Fatal(err)
}
res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput([]interactions.Content{
interactions.NewContent(interactions.TextContent{
Text: "Describe this audio clip",
}),
interactions.NewContent(interactions.AudioContent{
URI: genai.Ptr(myFile.URI),
MimeType: interactions.AudioContentMimeType(myFile.MIMEType).ToPointer(),
}),
}),
}),
})
if err != nil {
log.Fatal(err)
}
if res.Interaction.OutputText != nil {
fmt.Println(*res.Interaction.OutputText)
}
}
REST
AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO
tmp_header_file=upload-header.tmp
# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-D "${tmp_header_file}" \
-H "X-Goog-Upload-Protocol: resumable" \
-H "X-Goog-Upload-Command: start" \
-H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
-H "Content-Type: application/json" \
-d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"
# Upload the actual bytes.
curl "${upload_url}" \
-H "Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri
# Now create an interaction using the Interactions API
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3.8-flash",
"input": [
{"type": "text", "text": "Describe this audio clip"},
{"type": "audio", "uri": '$file_uri', "mime_type": "'${MIME_TYPE}'"}
]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".outputs[] | select(.type == \"text\") | .text" response.json
Lấy siêu dữ liệu của một tệp
Bạn có thể xác minh rằng API đã lưu trữ thành công tệp đã tải lên và lấy siêu dữ liệu của tệp bằng cách gọi files.get.
Python
from google import genai
client = genai.Client()
myfile = client.files.upload(file='path/to/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)
JavaScript
import {
GoogleGenAI,
} from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const myfile = await client.files.upload({
file: "path/to/sample.mp3",
config: { mime_type: "audio/mpeg" },
});
const fileName = myfile.name;
const fetchedFile = await client.files.get({ name: fileName });
console.log(fetchedFile);
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
Client client = new Client();
File myFile =
client.files.upload(
new java.io.File("path/to/sample.mp3"),
UploadFileConfig.builder().mimeType("audio/mp3").build());
String fileName = myFile.name().orElse("");
File fileMetadata = client.files.get(fileName, null);
System.out.println(fileMetadata);
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
MIMEType: "audio/mp3",
})
if err != nil {
log.Fatal(err)
}
fileMetadata, err := client.Files.Get(ctx, myFile.Name, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(fileMetadata)
}
REST
# file_info.json was created in the upload example
name=$(jq -r ".file.name" file_info.json)
# Get the file of interest to check state
curl https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY" > file_info.json
# Print some information about the file you got
name=$(jq -r ".name" file_info.json)
echo name=$name
file_uri=$(jq -r ".uri" file_info.json)
echo file_uri=$file_uri
Liệt kê các tệp đã tải lên
Đoạn mã sau đây lấy danh sách tất cả các tệp đã tải lên:
Python
from google import genai
client = genai.Client()
print('My files:')
for f in client.files.list():
print(' ', f.name)
JavaScript
import {
GoogleGenAI,
} from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const listResponse = await client.files.list({ config: { pageSize: 10 } });
for await (const file of listResponse) {
console.log(file.name);
}
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
Client client = new Client();
System.out.println("My files:");
for (File f : client.files.list(null)) {
System.out.println(" " + f.name().orElse(""));
}
Go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println("My files:")
for f, err := range client.Files.All(ctx) {
if err != nil {
log.Fatal(err)
}
fmt.Println(" ", f.Name)
}
}
REST
echo "My files: "
curl "https://generativelanguage.googleapis.com/v1beta/files" \
-H "x-goog-api-key: $GEMINI_API_KEY"
Xoá tệp đã tải lên
Tệp sẽ tự động bị xoá sau 48 giờ. Bạn cũng có thể xoá tệp đã tải lên theo cách thủ công:
Python
from google import genai
client = genai.Client()
myfile = client.files.upload(file='path/to/sample.mp3')
client.files.delete(name=myfile.name)
JavaScript
import {
GoogleGenAI,
} from "@google/genai";
const client = new GoogleGenAI({});
async function main() {
const myfile = await client.files.upload({
file: "path/to/sample.mp3",
config: { mime_type: "audio/mpeg" },
});
const fileName = myfile.name;
await client.files.delete({ name: fileName });
}
await main();
Java
import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
Client client = new Client();
File myFile =
client.files.upload(
new java.io.File("path/to/sample.mp3"),
UploadFileConfig.builder().mimeType("audio/mp3").build());
client.files.delete(myFile.name().orElse(""), null);
Go
package main
import (
"context"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
MIMEType: "audio/mp3",
})
if err != nil {
log.Fatal(err)
}
if _, err := client.Files.Delete(ctx, myFile.Name, nil); err != nil {
log.Fatal(err)
}
}
REST
curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY"
Thông tin về việc sử dụng
Bạn có thể dùng Files API để tải lên và tương tác với các tệp đa phương tiện. Files API cho phép bạn lưu trữ tối đa 20 GB tệp cho mỗi dự án, với kích thước tối đa cho mỗi tệp là 2 GB. Các tệp được lưu trữ trong 48 giờ.
Trong thời gian đó, bạn có thể dùng API để lấy siêu dữ liệu về các tệp. Tuy nhiên,
bạn không thể tải tệp do người dùng tải lên xuống. Bạn có thể tải các tệp do mô hình tạo xuống, chẳng hạn như video, bằng phương thức files.download. Files API được cung cấp miễn phí ở mọi khu vực có Gemini API.
Chiến lược đặt câu lệnh tệp
Phần này cung cấp hướng dẫn và các phương pháp hay nhất để sử dụng tệp đa phương tiện với câu lệnh cho Gemini API.
Việc có thể sử dụng nhiều loại dữ liệu trong câu lệnh giúp bạn linh hoạt hơn trong việc giải quyết các nhiệm vụ bằng Gemini API. Ví dụ: bạn có thể gửi cho mô hình một bức ảnh về một bữa ăn ngon và yêu cầu mô hình viết một bài đăng ngắn trên blog về bữa ăn đó.
| Câu lệnh | Đáp |
|
Viết một bài đăng trên blog ngắn và hấp dẫn dựa trên bức ảnh này. Bài đăng này nên có nội dung mô tả về bữa ăn trong ảnh và nói về hành trình chuẩn bị bữa ăn của tôi.
|
Chuẩn bị bữa ăn là một cách tuyệt vời để tiết kiệm thời gian và tiền bạc, đồng thời cũng có thể giúp bạn ăn uống lành mạnh hơn. Bữa ăn này là một ví dụ tuyệt vời về một bữa ăn lành mạnh và ngon miệng, có thể chuẩn bị trước. Bữa ăn này gồm có cơm gạo lứt, rau củ nướng và gà sốt teriyaki. Gạo lứt là một loại carbohydrate phức hợp và lành mạnh, giúp bạn duy trì năng lượng. Rau củ nướng là một cách tuyệt vời để bổ sung vitamin và khoáng chất hằng ngày, còn gà teriyaki là một lựa chọn ngon miệng và giàu protein. Bữa ăn này cũng rất dễ chuẩn bị. Chỉ cần nấu cơm gạo lứt, nướng rau củ và nấu món gà teriyaki. Sau khi nấu xong, hãy chia thức ăn vào các hộp đựng và bảo quản trong tủ lạnh. Sau đó, bạn có thể lấy một hộp và mang đi vào những buổi sáng bận rộn! Nếu bạn đang tìm một bữa ăn lành mạnh và ngon miệng có thể chuẩn bị trước, thì bữa ăn này là một lựa chọn tuyệt vời. Món này chứa nhiều chất dinh dưỡng và hương vị, chắc chắn sẽ giúp bạn cảm thấy no và hài lòng. Chúc bạn chuẩn bị được những bữa ăn lành mạnh và ngon miệng! |
Nếu gặp khó khăn khi nhận được kết quả mong muốn từ những câu lệnh sử dụng tệp đa phương tiện, bạn có thể áp dụng một số chiến lược để nhận được kết quả mong muốn. Các phần sau đây cung cấp các phương pháp thiết kế và mẹo khắc phục sự cố để cải thiện câu lệnh sử dụng dữ liệu đầu vào đa phương thức.
Bạn có thể cải thiện câu lệnh đa phương thức bằng cách làm theo các phương pháp hay nhất sau:
-
Kiến thức cơ bản về thiết kế câu lệnh
- Đưa ra chỉ dẫn cụ thể: Soạn thảo chỉ dẫn rõ ràng và ngắn gọn để giảm thiểu khả năng hiểu sai.
- Thêm một vài ví dụ vào câu lệnh: Sử dụng một vài ví dụ thực tế để minh hoạ kết quả bạn muốn đạt được.
- Chia nhỏ từng bước: Chia các việc phức tạp thành những mục tiêu phụ dễ quản lý, hướng dẫn mô hình thực hiện quy trình.
- Chỉ định định dạng đầu ra: Trong câu lệnh, hãy yêu cầu đầu ra ở định dạng bạn muốn, chẳng hạn như Markdown, JSON, HTML, v.v.
- Đặt hình ảnh lên trước đối với câu lệnh có một hình ảnh: Mặc dù Gemini có thể xử lý hình ảnh và văn bản đầu vào theo bất kỳ thứ tự nào, nhưng đối với câu lệnh có một hình ảnh, Gemini có thể hoạt động hiệu quả hơn nếu hình ảnh (hoặc video) đó được đặt trước câu lệnh văn bản. Tuy nhiên, đối với những câu lệnh yêu cầu hình ảnh phải được xen kẽ với văn bản để có ý nghĩa, hãy sử dụng bất kỳ thứ tự nào tự nhiên nhất.
-
Khắc phục sự cố cho câu lệnh đa phương thức
- Nếu mô hình không lấy thông tin từ phần có liên quan của hình ảnh: Hãy gợi ý những khía cạnh của hình ảnh mà bạn muốn câu lệnh lấy thông tin.
- Nếu đầu ra của mô hình quá chung chung (không đủ phù hợp với hình ảnh/video đầu vào): Ở đầu câu lệnh, hãy thử yêu cầu mô hình mô tả(các) hình ảnh hoặc video trước khi đưa ra hướng dẫn về nhiệm vụ, hoặc thử yêu cầu mô hình tham khảo nội dung trong hình ảnh.
- Cách khắc phục sự cố về phần bị lỗi: Yêu cầu mô hình mô tả hình ảnh hoặc giải thích lý do để đánh giá mức độ hiểu biết ban đầu của mô hình.
- Nếu câu lệnh của bạn dẫn đến nội dung ảo tưởng: Hãy thử giảm chế độ cài đặt nhiệt độ hoặc yêu cầu mô hình cung cấp nội dung mô tả ngắn hơn để giảm khả năng mô hình suy đoán thêm thông tin chi tiết.
- Điều chỉnh tham số lấy mẫu: Thử nghiệm với các chế độ cài đặt nhiệt độ và lựa chọn top-k khác nhau để điều chỉnh khả năng sáng tạo của mô hình.
Đưa ra chỉ dẫn cụ thể
Câu lệnh sẽ hiệu quả nhất khi rõ ràng và chi tiết. Nếu bạn muốn có một kết quả cụ thể, tốt hơn hết là bạn nên đưa yêu cầu đó vào câu lệnh để đảm bảo nhận được kết quả như mong muốn.
Đối với hình ảnh bảng thông tin sân bay này, nếu bạn chỉ yêu cầu mô hình "mô tả hình ảnh này", thì mô hình có thể tạo ra một nội dung mô tả chung chung. Nếu cần mô hình phân tích cú pháp thời gian và thành phố từ hình ảnh, bạn có thể đưa yêu cầu đó trực tiếp vào câu lệnh.
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Mô tả hình ảnh này. |
Hình ảnh cho thấy bảng thông tin chuyến bay hạ cánh và khởi hành. |
| Câu lệnh đã cập nhật | Cải thiện phản hồi |
|---|---|
![]() Phân tích cú pháp thời gian và thành phố trên bảng thông tin sân bay trong hình ảnh này thành một danh sách. |
Thêm một vài ví dụ
Mô hình Gemini có thể chấp nhận nhiều dữ liệu đầu vào mà mô hình này có thể sử dụng làm ví dụ để hiểu kết quả bạn muốn. Việc thêm các ví dụ này có thể giúp mô hình xác định các mẫu và áp dụng mối quan hệ giữa hình ảnh và phản hồi đã cho vào ví dụ mới. Đây còn được gọi là phương pháp học "ít dữ liệu".
Trong ví dụ sau, kết quả ban đầu được viết dưới dạng câu và cũng chứa thông tin về quốc gia (Brazil). Giả sử bạn muốn kết quả đầu ra có định dạng hoặc kiểu khác và bạn chỉ muốn có thành phố chứ không muốn có quốc gia. Việc thêm đặt câu lệnh kèm một vài ví dụ vào câu lệnh của bạn có thể hướng mô hình phản hồi theo cách bạn muốn.
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
![]() Xác định thành phố cùng với địa danh. |
Địa danh này là tượng Chúa Cứu thế ở Rio de Janeiro, Brazil. |
| Câu lệnh đã cập nhật | Cải thiện phản hồi |
|---|---|
|
Xác định thành phố cùng với địa danh.
|
thành phố: Rome, địa danh: Đấu trường La Mã. |
|
thành phố: Bắc Kinh, địa danh: Tử Cấm Thành |
|
thành phố: Rio de Janeiro, địa danh: Tượng Chúa Kitô Cứu thế |
Phân tích từng bước
Đối với những nhiệm vụ phức tạp như những nhiệm vụ đòi hỏi cả khả năng hiểu hình ảnh và suy luận, bạn nên chia nhiệm vụ thành các bước nhỏ hơn, đơn giản hơn. Ngoài ra, bạn cũng có thể yêu cầu mô hình "suy nghĩ từng bước" trong câu lệnh của mình để đạt được hiệu quả.
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Khi nào tôi sẽ hết giấy vệ sinh? |
Bạn chỉ còn 3 lượt quay. |
| Câu lệnh đã cập nhật | Câu trả lời được cải thiện |
|---|---|
|
|
Các bài toán hoặc những loại bài toán có lời văn khác là những lựa chọn phù hợp để yêu cầu mô hình suy nghĩ từng bước.
| Câu lệnh | Đáp |
|---|---|
Số hạng thứ 4 trong dãy số là gì? |
-135 |
Câu trả lời của mô hình không chính xác. Một số cách để cải thiện vấn đề này là yêu cầu mô hình phân tích vấn đề trước khi trả lời câu lệnh.
| Câu lệnh | Đáp |
|---|---|
Trước tiên, hãy phân tích cú pháp công thức trong hình ảnh. Sau đó, dựa trên công thức, hãy trả lời câu hỏi "số hạng thứ 4 trong dãy số là gì?". |
Nhấp để mở rộng kết quả$$ b(n) = b(n-1) * (-3) $$ $$ b(1) = 15 $$
Do đó, số hạng thứ 4 trong dãy số là -405. |
Câu trả lời này của mô hình là chính xác. Giờ đây, để câu trả lời trở nên hợp lý hơn, bạn có thể yêu cầu mô hình suy nghĩ từng bước.
| Câu lệnh mới | Cải thiện phản hồi |
|---|---|
Số hạng thứ 4 trong dãy số là gì? Suy nghĩ từng bước. |
Số hạng đầu tiên là 15. Số hạng thứ hai là b(1) * (-3) = 15 * (-3) = -45. Số hạng thứ ba là b(2) * (-3) = -45 * (-3) = 135. Số hạng thứ tư là b(3) * (-3) = 135 * (-3) = -405. |
Chỉ định định dạng đầu ra
Một vấn đề thường gặp là đầu ra của mô hình cần phải ở một định dạng nhất định (ví dụ: Markdown, JSON, HTML), đặc biệt là nếu đầu ra của mô hình cần được một tác vụ hạ nguồn nhập vào. Bạn có thể thử tạo kết quả ở định dạng đó bằng cách hướng dẫn mô hình thực hiện trong câu lệnh. Sau đây là hai ví dụ:
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Phân tích cú pháp bảng trong hình ảnh này thành định dạng Markdown |
```none | Môn học | Trạng thái | Thời gian | Ngày bắt đầu | Ngày đến hạn | | ------- | ------ | ---- | ---------- | ------ | | Toán | Đã hoàn thành | 1,5 giờ | 29/11/2023 | 1/12/2023 | | Địa lý | Đã hoàn thành | 30 phút | 2/12/2023 | 4/12/2023 | | Vật lý | Đang thực hiện | 2 giờ | 3/12/2023 | 5/12/2023 | | Sinh học | Chưa bắt đầu | 6 giờ | 2/11/2016 | 6/12/2023 | ``` |
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Cung cấp danh sách tất cả các thuộc tính sau: nguyên liệu, loại món ăn, có phải món chay hay không, ở định dạng JSON |
```json { "ingredients": [ "rice", "shrimp", "clams", "mussels", "peas", "tomatoes", "onions", "garlic", "olive oil", "paprika", "salt", "pepper" ], "type of cuisine": "Spanish", "vegetarian": false } ``` |
Đặt hình ảnh lên trước đối với câu lệnh có một hình ảnh
Mặc dù Gemini có thể diễn giải hình ảnh và văn bản theo bất kỳ thứ tự nào trong câu lệnh, nhưng việc đặt một hình ảnh trước câu lệnh văn bản có thể mang lại kết quả tốt hơn. Trong các mẫu sau, bạn sẽ thấy hình ảnh xuất hiện trước văn bản trong mỗi câu lệnh.
Khắc phục sự cố về câu lệnh đa phương thức
Bạn có thể cần khắc phục sự cố về câu lệnh nếu không nhận được phản hồi hữu ích. Sau đây là một số chiến lược bạn có thể thử.
Nếu mô hình không lấy thông tin từ phần có liên quan của hình ảnh
Để nhận được câu trả lời cụ thể hơn, bạn có thể chỉ ra những khía cạnh của hình ảnh mà bạn muốn câu lệnh lấy thông tin để đưa ra câu trả lời.
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Những chiếc tã này sẽ dùng được bao nhiêu ngày cho một em bé? |
Số tã này sẽ dùng được trong 198 ngày. |
| Câu lệnh đã cập nhật | Cải thiện phản hồi |
|---|---|
Bao lâu nữa thì tôi dùng hết số tã này? Sử dụng cân nặng ghi trên hộp để xác định độ tuổi của trẻ và sử dụng tổng số tã trong hộp. Chia tổng số tã cho số tã mà trẻ dùng mỗi ngày. |
Hộp chứa 198 chiếc tã. Hộp này ghi rằng tã dành cho trẻ có cân nặng từ 10 đến 17 kg. Trẻ em có cân nặng trung bình trong khoảng này thường từ 1 đến 2 tuổi. Một đứa trẻ 2 tuổi thường dùng 6 chiếc tã mỗi ngày, do đó, số tã này sẽ dùng được trong khoảng 33 ngày (198/6). |
Nếu đầu ra của mô hình quá chung chung và không đủ phù hợp với dữ liệu đầu vào là hình ảnh
Để giúp mô hình điều chỉnh câu trả lời cho phù hợp với(các) hình ảnh, hãy thử yêu cầu mô hình mô tả hình ảnh trước khi thực hiện nhiệm vụ suy luận.
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Điểm chung giữa các hình ảnh này là gì? |
Cả 4 hình ảnh đều là ví dụ về ảnh phong cảnh. |
| Câu lệnh đã cập nhật | Câu trả lời được cải thiện |
|---|---|
Trước tiên, hãy mô tả chi tiết nội dung trong mỗi hình ảnh. What's in common between these images? |
Hình ảnh đầu tiên cho thấy một người đang đóng gói hành lý vào vali. Hình ảnh thứ hai cho thấy một hành lang trống trong trung tâm mua sắm. Hình ảnh thứ ba cho thấy một cuộn giấy vệ sinh. Hình ảnh thứ tư cho thấy một vùng biển tối tăm và giông bão. Điểm chung giữa những hình ảnh này là chúng đều là ví dụ về không gian chuyển tiếp. Không gian trung gian là những địa điểm hoặc tình huống nằm giữa hai địa điểm hoặc tình huống khác. Những giấc mơ này thường mang lại cảm giác không chắc chắn hoặc mơ hồ. Hình ảnh đầu tiên cho thấy người này đang ở nhà và đang đi du lịch. Hình ảnh thứ hai cho thấy hành lang giữa hai cửa hàng. Hình ảnh thứ ba là giấy vệ sinh, có thể đại diện cho phòng tắm. Phòng tắm là không gian chuyển tiếp giữa không gian riêng tư và không gian công cộng. Đó là nơi chúng ta chuẩn bị để bước vào hoặc rời khỏi thế giới bên ngoài. Hình ảnh thứ tư cho thấy biển ở trạng thái giữa yên bình và giông bão. Không gian chuyển tiếp có thể vừa thú vị vừa gây bất an. Đó có thể là nơi bắt đầu hoặc kết thúc. Đó có thể là nơi để suy ngẫm hoặc nơi để hành động. |
Bạn cũng có thể thử yêu cầu rõ ràng mô hình tham khảo nội dung trong hình ảnh.
| Câu lệnh đã cập nhật | Câu trả lời được cải thiện |
|---|---|
Điểm chung giữa những hình ảnh này là gì? Tham khảo nội dung trong hình ảnh trong câu trả lời của bạn. |
Tất cả hình ảnh đều liên quan đến du lịch. Hình ảnh đầu tiên cho thấy một người đang đóng gói vali, hình ảnh thứ hai cho thấy một hành lang trống trong trung tâm mua sắm, hình ảnh thứ ba cho thấy một chồng giấy vệ sinh và hình ảnh thứ tư cho thấy một biển tối và bão. Những hình ảnh này đều liên quan đến du lịch vì đây là những thứ mọi người cần hoặc sử dụng khi đi du lịch. Hình ảnh đầu tiên cho thấy một người đang đóng gói vali, đây là việc mọi người thường làm khi đi du lịch. Hình ảnh thứ hai cho thấy một hành lang trống trong trung tâm mua sắm, nơi mọi người thường đến để mua sắm cho chuyến đi của mình. Hình ảnh thứ ba cho thấy một chồng giấy vệ sinh, đây là thứ mà mọi người thường sử dụng khi đi du lịch. Hình ảnh thứ tư cho thấy một vùng biển tối tăm và giông bão, đây là điều mà mọi người thường gặp phải khi đi du lịch. |
Những mẹo này cũng áp dụng cho kết quả sáng tạo từ hình ảnh. Trong ví dụ sau đây về chú thỏ, việc yêu cầu rõ ràng mô hình đưa các khía cạnh trong hình ảnh vào có thể cải thiện kết quả.
| Câu lệnh | Câu trả lời của mô hình |
|---|---|
Bạn có thể viết cho tôi một bài thơ về hình ảnh này không? |
Chú thỏ nhỏ, mềm mại và có màu nâu, Bạn gặm cỏ, xanh và ngọt, |
| Câu lệnh mới | Câu trả lời được cải thiện |
|---|---|
Bạn có thể viết cho tôi một bài thơ giàu sức gợi và kịch tính về Thông tin về hình ảnh này, đồng thời cho biết địa điểm không? |
Chú thỏ nhỏ trên bãi cỏ xanh, Có phải là màu xanh của đại dương, Thỏ con ơi, hãy nói cho ta biết, Có lẽ là vì sự bao la của vạn vật, Chú thỏ nhỏ ơi, tôi tự hỏi bạn mơ thấy gì, Dù là gì đi nữa, chú thỏ nhỏ ơi, |
Khắc phục sự cố về phần nào của câu lệnh không hoạt động
Có thể khó biết liệu một câu lệnh có thất bại là do mô hình không hiểu hình ảnh ngay từ đầu hay là do mô hình hiểu hình ảnh nhưng không thực hiện đúng các bước suy luận sau đó. Để phân biệt giữa các lý do đó, hãy yêu cầu mô hình mô tả nội dung trong hình ảnh.
Trong ví dụ sau, nếu mô hình phản hồi bằng một món ăn nhẹ có vẻ bất ngờ khi kết hợp với trà (ví dụ: bỏng ngô), trước tiên, bạn có thể khắc phục sự cố để xác định xem mô hình có nhận dạng chính xác rằng hình ảnh có chứa trà hay không.
| Câu lệnh | Câu lệnh để khắc phục sự cố |
|---|---|
Tôi có thể làm món ăn nhẹ nào trong 1 phút để kết hợp với món này? |
Mô tả nội dung trong hình ảnh này. |
Một chiến lược khác là yêu cầu mô hình giải thích lý do. Điều này có thể giúp bạn xác định được phần nào trong quá trình suy luận bị sai, nếu có.
| Câu lệnh | Câu lệnh để khắc phục sự cố |
|---|---|
Tôi có thể làm món ăn nhẹ nào trong 1 phút để kết hợp với món này? |
Tôi có thể làm món ăn nhẹ nào trong 1 phút để ăn kèm với món này? Vui lòng giải thích lý do. |
Bước tiếp theo
- Hãy thử viết câu lệnh đa phương thức của riêng bạn bằng Google AI Studio.
- Để biết thông tin về cách sử dụng Gemini Files API để tải tệp đa phương tiện lên và đưa tệp đó vào câu lệnh, hãy xem hướng dẫn về Vision, Âm thanh và Xử lý tài liệu.
- Để biết thêm hướng dẫn về thiết kế câu lệnh, chẳng hạn như điều chỉnh tham số lấy mẫu, hãy xem trang Chiến lược câu lệnh.
