Kstonekuan/Sederhana-Chromium-Ai: Pembungkus TypeScript ringan Chrome untuk API AI Tips bawaan, dengan fleksibilitas dengan kesederhanaan dan jenis keamanan. – Beragampengetahuan
API AI Tips bawaan Chrome adalah pembungkus naskah ringan yang memberikan fleksibilitas untuk kesederhanaan dan keamanan tipe.
AI AI asli Chrome sangat kuat, tetapi membutuhkan inisialisasi dan manajemen sesi yang cermat. Pembungkus ini menyediakan:
- Ketik Inisialisasi Keamanan – Jika tidak ada pengaturan yang benar, fungsi tidak dapat dipanggil
- Penanganan kesalahan otomatis – Keanggunan kegagalan pesan yang jelas
- API yang disederhanakan – Tugas umum dalam panggilan fungsi
- Varian API yang aman – Jenis hasil untuk penanganan kesalahan yang lebih baik
Untuk kasus penggunaan lanjutan yang membutuhkan lebih banyak kontrol, gunakan API AI Chrome asli secara langsung.
npm install simple-chromium-ai
import ChromiumAI from 'simple-chromium-ai';
// Initialize once
const ai = await ChromiumAI.initialize("You are a helpful assistant");
// Simple prompt
const response = await ChromiumAI.prompt(ai, "Write a haiku");
// Or use the Safe API for error handling
const safeResult = await ChromiumAI.Safe.initialize("You are a helpful assistant");
safeResult.match(
async (ai) => {
const safeResponse = await ChromiumAI.Safe.prompt(ai, "Write a haiku");
safeResponse.match(
(value) => console.log(value),
(error) => console.error(error.message)
);
},
(error) => console.error(error.message)
);
- Harus dipanggil dari ekstensi browser
- Chrome 138+ atau Browser Chrome yang Didukung
- Aktifkan “Promosikan API untuk Gemini Nano”
chrome://flags - Perbarui “Panduan Presisi untuk Model Perangkat”
chrome://components
⚠️ Peringatan: Ini akan mengunduh ~ 4GB. Periksa persyaratan perangkat keras - Bergabunglah dengan jaringan di Chrome Epp
const ai = await ChromiumAI.initialize(
systemPrompt?: string
);
Penting: Jika Chrome AI tidak tersedia dan dapat diunduh atau diunduh, fitur tersebut akan melakukan kesalahan dengan instruksi tentang cara mengaktifkan Chrome AI.
const response = await ChromiumAI.prompt(
ai,
"Your prompt",
timeout?: number
);
// Create reusable session
const session = await ChromiumAI.createSession(ai);
const response1 = await session.prompt("Hello");
const response2 = await session.prompt("Follow up"); // Maintains context
session.destroy();
// Override the instance's system prompt for this session
const customSession = await ChromiumAI.createSession(ai, {
initialPrompts: [{ role: 'system', content: 'You are a pirate' }]
});
// Or use withSession for automatic cleanup
const result = await ChromiumAI.withSession(ai, async (session) => {
return await session.prompt("Hello");
});
const usage = await ChromiumAI.checkTokenUsage(ai, "Long text...");
console.log(`Will fit: ${usage.willFit}`);
console.log(`Tokens needed: ${usage.promptTokens}/${usage.maxTokens}`);
Setiap fitur memiliki varian aman yang dapat mengembalikan jenis hasil alih -alih melempar:
import { ChromiumAI } from 'simple-chromium-ai';
const result = await ChromiumAI.Safe.initialize("You are helpful");
result.match(
async (ai) => {
const response = await ChromiumAI.Safe.prompt(ai, "Hello");
response.match(
(value) => console.log(value),
(error) => console.error("Prompt failed:", error.message)
);
},
(error) => {
console.error("Failed:", error.message);
return;
}
);
Pembungkus melakukan inisialisasi yang tepat melalui TypeScript:
// ❌ Won't compile - need AI instance
await ChromiumAI.prompt("Hello");
// ✅ Correct usage
const ai = await ChromiumAI.initialize("You are helpful");
await ChromiumAI.prompt(ai, "Hello");
Pembungkus ini memprioritaskan kesederhanaan daripada fleksibilitas. Anda tidak bisa:
- Respons akses akses (menggunakan mesin asli
session.promptStreaming()alih-alih)
Untuk fitur -fitur ini, gunakan AI AI Chrome alami.
interface ChromiumAIInstance {
systemPrompt?: string;
instanceId: string;
}
interface TokenUsageInfo {
promptTokens: number;
maxTokens: number;
tokensSoFar: number;
tokensAvailable: number;
willFit: boolean;
}
terperinci promptOptions Dan sessionOptions Ketik, lihat tipe lanjutan.
| Fungsi | menggambarkan | kembali |
|---|---|---|
initialize(systemPrompt?) |
Gunakan petunjuk sistem opsional untuk menginisialisasi AI | ChromiumAIInstance |
prompt(ai, prompt, timeout?, promptOptions?, sessionOptions?) |
Prompt tunggal dengan waktu tunggu dan opsi opsional | string |
createSession(ai, sessionOptions?) |
Buat sesi yang dapat digunakan kembali dengan opsi sesi opsional | LanguageModel |
withSession(ai, callback, sessionOptions?) |
Jalankan melalui sesi sementara | T |
checkTokenUsage(ai, prompt, sessionOptions?) |
Periksa apakah prompt cocok untuk konteksnya | TokenUsageInfo |
Setiap fungsi memiliki satu Safe.* Varian yang dikembalikan Result<T, Error> Bukannya melempar.
const ai = await ChromiumAI.initialize("You are a friendly assistant");
const response = await ChromiumAI.prompt(ai, "Tell me a joke");
try {
const ai = await ChromiumAI.initialize("You are helpful");
const response = await ChromiumAI.prompt(ai, "Hello!");
} catch (error) {
console.error('Initialization failed:', error.message);
// Error message will include instructions on how to enable Chrome AI
}
// Using the Safe API for better error handling
const result = await ChromiumAI.Safe.initialize("You are helpful");
result.match(
async (ai) => {
const promptResult = await ChromiumAI.Safe.prompt(ai, "Hello!");
promptResult.match(
(value) => console.log('Response:', value),
(error) => console.error('Prompt failed:', error.message)
);
},
(error) => {
console.error('Initialization failed:', error.message);
// Error message includes instructions on how to enable Chrome AI
}
);
const usage = await ChromiumAI.checkTokenUsage(ai, longText);
if (!usage.willFit) {
// Use shorter prompt
const response = await ChromiumAI.prompt(ai, "Summarize briefly");
}
Contents
Output terstruktur memiliki kendala responsif
// Define JSON schema for the response
const schema = {
type: "object",
properties: {
sentiment: {
type: "string",
enum: ["positive", "negative", "neutral"]
},
confidence: {
type: "number",
minimum: 0,
maximum: 1
},
keywords: {
type: "array",
items: { type: "string" },
maxItems: 5
}
},
required: ["sentiment", "confidence", "keywords"]
};
// Create session with response constraint
const response = await ChromiumAI.prompt(
ai,
"Analyze the sentiment of this text: 'I love this new feature!'",
undefined, // no timeout
{ responseConstraint: schema }
);
// Response will be valid JSON matching the schema
const result = JSON.parse(response);
console.log(result);
// { sentiment: "positive", confidence: 0.95, keywords: ["love", "new", "feature"] }
Tips yang dapat dibatalkan dengan perangkat aborsi
// Create an AbortController to cancel long-running prompts
const controller = new AbortController();
// Set up a cancel button
const cancelButton = document.getElementById('cancel');
cancelButton.onclick = () => controller.abort();
try {
// Pass the abort signal to the prompt
const response = await ChromiumAI.prompt(
ai,
"Write a detailed analysis of quantum computing...",
undefined, // no timeout
{ signal: controller.signal } // prompt options with abort signal
);
console.log(response);
} catch (error) {
if (error.name === 'AbortError') {
console.log('Prompt was cancelled by user');
} else {
console.error('Error:', error.message);
}
}
Demo ekstensi chrome minimal termasuk demo Map. Itu membuktikan:
- Periksa ketersediaan AI Chrome
- Tampilkan instruksi pengaturan jika tidak tersedia
- Tips/Antarmuka Respons Sederhana Menggunakan API Keamanan

Jalankan demo:
cd demo
npm install
npm run build
# Then load the demo folder as an unpacked extension in Chrome
Untuk pengguna yang membutuhkan jenis informasi terperinci promptOptions Dan sessionOptions parameter:
interface LanguageModelPromptOptions {
responseConstraint?: Record<string, unknown>; // JSON schema for structured output
omitResponseConstraintInput?: boolean; // Hide constraint from model input
signal?: AbortSignal; // Cancel the prompt
}
interface LanguageModelCreateOptions {
topK?: number; // Token selection randomness (higher = more random)
temperature?: number; // Output randomness (0.0 = deterministic, 1.0 = very random)
expectedInputs?: LanguageModelExpected[]; // Expected input types/languages
expectedOutputs?: LanguageModelExpected[]; // Expected output types/languages
tools?: LanguageModelTool[]; // Function calling tools (may not be supported yet)
signal?: AbortSignal; // Cancel session creation
monitor?: CreateMonitorCallback; // Monitor session creation progress
initialPrompts?: LanguageModelMessage[]; // Override conversation history
}
Mit
rencana pengembangan website
metode pengembangan website
jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website
#KstonekuanSederhanaChromiumAi #Pembungkus #TypeScript #ringan #Chrome #untuk #API #Tips #bawaan #dengan #fleksibilitas #dengan #kesederhanaan #dan #jenis #keamanan