Chuyển đến nội dung
tinAI
Quay lại

Chrome Prompt API: gọi Gemini Nano on-device từ JavaScript với input text/image/audio

Bản dịch tiếng Việt của tinAI · Từ The Prompt API (developer.chrome.com) · Ngày gốc: · Dịch ngày:

Bài gốc: The Prompt API (developer.chrome.com)

Tác giả: Thomas Steiner & Alexandra Klepper (Chrome team)

Ngày đăng: Dịch ngày:

TL;DR

Chrome ship Prompt API trong origin trial — JavaScript API gọi Gemini Nano chạy on-device, không gửi data ra ngoài, không tốn API cost. Hỗ trợ multimodal input (text/image/audio), chỉ output text, ngôn ngữ `en/ja/es`. Dùng được cho web (Chrome 138) và Chrome Extensions với cấu hình tham số sampling đầy đủ.

Ước tính đọc: 2 phút

Giới thiệu

Prompt API cho phép bạn gửi natural language request đến Gemini Nano — chạy trực tiếp trong browser. Vì model on-device:

Tính năng chính

Multimodal input

API accept ba loại input:

Output: chỉ text. Languages hỗ trợ: en, ja, es (đang phát triển thêm).

Use cases

Cách sử dụng

Kiểm tra availability

const availability = await LanguageModel.availability();
// 'available' | 'downloadable' | 'downloading' | 'unavailable'

Nếu trạng thái là downloading, lắng nghe progress để inform user — model size khá lớn.

Tạo session

const session = await LanguageModel.create();
const response = await session.prompt('Tóm tắt page này');

Với Chrome Extensions, có thể custom topKtemperature:

const params = await LanguageModel.params();
// { defaultTopK: 3, maxTopK: 128, defaultTemperature: 1, maxTemperature: 2 }

const session = await LanguageModel.create({
  temperature: Math.max(params.defaultTemperature * 1.2, 2.0),
  topK: params.defaultTopK,
});

Abort signal

const controller = new AbortController();
stopButton.onclick = () => controller.abort();

const session = await LanguageModel.create({
  signal: controller.signal,
});

Initial prompts (conversational state)

const session = await LanguageModel.create({
  initialPrompts: [
    { role: 'system', content: 'You are a helpful and friendly assistant.' },
    { role: 'user', content: 'What is the capital of Italy?' },
    { role: 'assistant', content: 'The capital of Italy is Rome.' },
  ],
});

Constraint output với prefix

Ép model trả về theo format cụ thể bằng cách prefill phần đầu của assistant response:

const characterSheet = await session.prompt([
  {
    role: 'user',
    content: 'Create a TOML character sheet for a gnome barbarian',
  },
  {
    role: 'assistant',
    content: '```toml\n',
    prefix: true,
  },
]);

Multimodal session

const session = await LanguageModel.create({
  expectedInputs: [
    { type: 'text', languages: ['en', 'ja'] },
    { type: 'image' },
  ],
  expectedOutputs: [
    { type: 'text', languages: ['ja'] },
  ],
});

Nếu model encounter input/output không support, ném NotSupportedError DOMException.

Bật trên localhost

Để test trên localhost, set hai flag thành Enabled rồi relaunch Chrome:

Trạng thái triển khai

TrialChrome versionScope
Origin trial cơ bảnChrome 138Web pages
Origin trial sampling parametersChrome 148Topic, temperature controls

Lưu ý


Đường dẫn nguồn

tinAI dịch bài này sang tiếng Việt từ The Prompt API (developer.chrome.com) · Loại nguồn: tài liệu và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bản tin này có 3 bài dịch liên quan từ cùng bản tin.