Đối với Firebase AI Logic, bảng điều khiển Firebase cung cấp một giao diện người dùng có hướng dẫn để bạn chỉ định nội dung của một mẫu.
Mẫu câu lệnh trên máy chủ sử dụng cú pháp và định dạng dựa trên Dotprompt. Trên trang này, bạn có thể xem nội dung mô tả chi tiết về định dạng và cú pháp của mẫu, cùng với ví dụ cho cả Gemini và Imagen.
Sau đây là những thành phần quan trọng nhất cho một yêu cầu mẫu đối với mô hình Gemini:
---
model: 'gemini-2.5-flash'
---
{{role "system"}}
All output must be a clearly structured invoice document.
Use a tabular or clearly delineated list format for line items.
{{role "user"}}
Create an example customer invoice for a customer named {{customerName}}.
Phần trên cùng trong dấu gạch ngang ba lần chứa tên mô hình cũng như mọi cấu hình mô hình, xác thực đầu vào hoặc giản đồ mà bạn muốn gửi trong yêu cầu (không bắt buộc). Thông số này được viết dưới dạng cặp khoá-giá trị và thường được gọi là frontmatter YAML.
Nội dung của mẫu chứa câu lệnh. Bạn cũng có thể tuỳ ý thêm hướng dẫn hệ thống và giá trị đầu vào (bằng cú pháp Handlebars).
Trang này cung cấp nội dung mô tả chi tiết về định dạng và cú pháp của mẫu, cùng với các ví dụ cho những nội dung sau:
Gemini
Tất cả ví dụ trong phần này đều cho thấy các mẫu sử dụng gemini-2.5-flash, nhưng bạn có thể dùng bất kỳ mô hình Gemini nào mà Firebase AI Logic hỗ trợ (ngoại trừ các mô hình Gemini Live).
Xin chào
Sau đây là ví dụ tối thiểu về mẫu câu lệnh trên máy chủ:
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Write a story about a magic backpack.
Cấu hình mô hình
Đặt một cấu hình mô hình để kiểm soát cách mô hình tạo ra phản hồi, chẳng hạn như số lượng mã thông báo đầu ra tối đa, nhiệt độ, top-K và top-P.
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
config:
candidateCount: 1
temperature: 0.9
topP: 0.1
topK: 16
maxOutputTokens: 200
stopSequences: ["red"]
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Write a story about a magic backpack.
Hướng dẫn về hệ thống
Đặt chỉ dẫn hệ thống để định hướng hành vi của mô hình. Bạn đưa các thông tin này vào câu lệnh:
Chỉ định hướng dẫn hệ thống bằng cú pháp
{{role "system"}}.Chỉ định câu lệnh bằng văn bản bằng cú pháp
{{role "user"}}.
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
{{role "system"}}
All output must be a clearly structured invoice document.
Use a tabular or clearly delineated list format for line items.
{{role "user"}}
Create an example customer invoice for a customer.
Biến đầu vào
Một số câu lệnh là tĩnh, nhưng bạn thường cần đưa một số dữ liệu của người dùng vào câu lệnh.
Bạn có thể thêm các biến đầu vào động vào câu lệnh bằng cách sử dụng biểu thức Handlebars. Các biểu thức này nằm trong thẻ {{ }} theo định dạng {{variableName}} hoặc {{object.propertyName}} (ví dụ: Hello, {{name}} from {{address.city}}).
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Create an example customer invoice for a customer named {{customerName}}.
Bạn có thể cung cấp một giá trị mặc định trong mẫu, nhưng giá trị của một biến đầu vào thường do ứng dụng cung cấp trong yêu cầu.
Luồng điều khiển (vòng lặp và điều kiện)
Để viết câu lệnh phức tạp hơn, bạn có thể sử dụng các khối có điều kiện (như #if, else và #unless) và vòng lặp (#each).
Bạn có thể cung cấp thêm thông tin theo bối cảnh dưới dạng các biến có tiền tố @ đặc biệt:
@first: true khi lặp lại mục đầu tiên của một khối#each.@last: true khi lặp lại mục cuối cùng của một khối#each.@index: cho biết vị trí chỉ mục (gốc 0) của phần tử hiện tại.
Hãy xem tài liệu về Handlebars để biết thông tin về tất cả các trình trợ giúp logic tích hợp.
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Create an example customer invoice for a customer named {{customerName}}.
Include entries for each of the following products
{{#each productNames}}
{{#if @first}}
Include line items for the following purchases
{{/if}}
- {{this}}
{{/each}}
{{#if isVipCustomer}}
Give the customer a 5% discount.
{{/if}}
Xin lưu ý rằng các điều kiện chỉ chấp nhận một tham chiếu biến, chứ không chấp nhận bất kỳ loại biểu thức nào, ví dụ:
- Sau đây là một ví dụ:
{{#if isVipCustomer}} ... {{/if}} - Lệnh sau đây không hoạt động:
{{#if customer.type == 'vip'}} ... {{/if}}
Nếu biến là một boolean, thì điều kiện sẽ hoạt động như bạn mong đợi. Nếu biến không phải là boolean thì điều kiện này sẽ là một quy trình kiểm tra "không phải là giá trị rỗng". Điều này có thể hữu ích khi xử lý dữ liệu đầu vào không bắt buộc, chẳng hạn như:
{{#if customerName}}
Hello {{customerName}}
{{else}}
Hello Guest
{{/if}}
Xác thực dữ liệu đầu vào và giản đồ
Nếu có dữ liệu từ máy khách, bạn nên sử dụng giản đồ đầu vào để giúp bảo vệ khỏi việc chèn câu lệnh cũng như đảm bảo rằng dữ liệu được truyền trong yêu cầu khớp với những gì bạn mong đợi.
Bạn có thể cung cấp các giá trị mặc định trong trường hợp máy khách không cung cấp giá trị.
Lược đồ này hỗ trợ các loại vô hướng
string,integer,number,booleanvàobject. Các đối tượng, mảng và enum được biểu thị bằng dấu ngoặc đơn sau tên trường.Tất cả các thuộc tính đều được coi là bắt buộc, trừ phi bạn biểu thị thuộc tính đó là không bắt buộc bằng
?. Khi một thuộc tính được đánh dấu là không bắt buộc, thuộc tính đó cũng sẽ được đặt thành giá trị rỗng để LLM có thể linh hoạt hơn trong việc trả về giá trị rỗng thay vì bỏ qua một trường.
Sau đây là một ví dụ cơ bản về cách cung cấp giản đồ đầu vào. Bạn có thể tìm thấy một giản đồ nâng cao hơn ngay bên dưới.
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
input:
default:
isVipCustomer: false
schema:
customerName: string, the customers name # string, number, and boolean types are defined like this
productNames?(array, list of products to include in the invoice): string # optional fields are marked with a ?
isVipCustomer?: boolean, whether or not the customer is a VIP
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Create an example customer invoice for a customer named {{customerName}}.
Include entries for each of the following products
{{#each productNames}}
{{#if @first}}
Include line items for the following purchases
{{/if}}
- {{this}}
{{/each}}
{{#if isVipCustomer}}
Give the customer a 5% discount.
{{/if}}
Giản đồ đầu ra
Nếu muốn mô hình tạo đầu ra JSON có cấu trúc, bạn có thể chỉ định một giản đồ đầu ra. Bằng cách chỉ định format: json, bạn đang hạn chế mô hình luôn trả về một phản hồi JSON tuân theo giản đồ đã chỉ định.
Lược đồ này hỗ trợ các loại vô hướng
string,integer,number,booleanvàobject. Các đối tượng, mảng và enum được biểu thị bằng dấu ngoặc đơn sau tên trường.Tất cả các thuộc tính đều được coi là bắt buộc, trừ phi bạn biểu thị thuộc tính đó là không bắt buộc bằng
?. Khi một thuộc tính được đánh dấu là không bắt buộc, thuộc tính đó cũng sẽ được đặt thành giá trị rỗng để LLM có thể linh hoạt hơn trong việc trả về giá trị rỗng thay vì bỏ qua một trường.
Sau đây là một ví dụ cơ bản để tạo đầu ra JSON có cấu trúc. Bạn có thể tìm thấy một giản đồ nâng cao hơn ngay bên dưới.
Cấu hình (frontmatter)
---
model: gemini-2.5-flash
output:
format: json
schema:
invoiceId: string
invoiceFile(object, an invoice file):
url?: string
contents: string
mimeType: string
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Create an example customer invoice.
Thông tin đầu vào đa phương thức
Câu lệnh đa phương thức được gửi đến một mô hình Gemini có thể bao gồm nhiều loại dữ liệu đầu vào, bao gồm cả tệp (chẳng hạn như văn bản cùng với hình ảnh, tệp PDF, tệp văn bản thuần tuý, âm thanh và video).
Cung cấp một tệp bằng URL của tệp đó theo cú pháp
{{media url}}.Cung cấp một tệp nội tuyến bằng cú pháp
{{media type="mime_type" data="contents"}}.
Sau đây là một ví dụ cơ bản về cách cung cấp dữ liệu đầu vào đa phương thức. Bạn có thể xem một ví dụ phức tạp hơn ngay bên dưới.
Cấu hình (frontmatter)
---
model: 'gemini-2.5-flash'
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Describe this image
{{media type="mimeType" data="imageData"}}
Imagen (tạo hình ảnh)
Trong bản phát hành ban đầu, mẫu câu lệnh trên máy chủ hỗ trợ tạo hình ảnh bằng các mô hình Imagen và câu lệnh chỉ có văn bản. Hãy sớm quay lại để xem thêm thông tin hỗ trợ, bao gồm cả cách chỉnh sửa hình ảnh bằng Imagen (khi dùng Vertex AI Gemini API).
Cơ bản
Ví dụ này cho thấy một mẫu cơ bản để tạo hình ảnh bằng Imagen, với các biến đầu vào và xác thực đầu vào tương tự như Gemini.
Cấu hình (frontmatter)
---
model: 'imagen-4.0-generate-001'
input:
schema:
prompt: 'string'
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
Create an image containing {{prompt}}
Nâng cao
Ví dụ này cho thấy cách thêm cấu hình mô hình và sử dụng các tính năng nâng cao hơn trong câu lệnh, chẳng hạn như biến đầu vào, xác thực đầu vào và luồng kiểm soát tương tự như Gemini.
Cấu hình (frontmatter)
---
model: 'imagen-4.0-fast-generate-001'
config:
sampleCount: 1
aspectRatio: "16:9"
personGeneration: dont_allow
includeRaiReason: true
input:
schema:
style(enum, The style of image): [photo, sketch, painting]
subject: string, The object or animal or scenery to generate.
context?: string, Optional background or context description.
default:
style: photo
---
Câu lệnh và (nếu có) hướng dẫn của hệ thống
A {{style}} of {{subject}}{{#if context}}{{context}}{{/if}}.