AI SDK
提供統一的 AI 模型配置中心,支援各大主流 AI 模型,一次配置處處可用,無需重複設定 API Key。
注意:此功能需要在 Eagle 5.0 Beta 以上版本才能使用(目前尚未發佈,詳細發佈時間請關注 Eagle 官網)

AI SDK 相依插件簡介
「AI SDK 相依插件」是一款面向瀏覽器插件開發者的開發工具包,提供統一的 AI 模型配置中心,支援各大主流 AI 模型,一次配置,處處可用。此工具包讓開發者能在自身的插件中輕鬆實現文字生成、結構化物件生成以及串流處理等 AI 功能。透過整合「AI SDK 相依插件」,開發者可無縫拓展其插件的 AI 處理能力,為使用者帶來更多智慧化和實用性的功能。
統一配置中心:一次設定,處處可用
AI SDK 插件提供了統一的 AI 模型配置中心,支援:
商業模型:
OpenAI(GPT-4、GPT-4 Vision)
Anthropic Claude(Claude 3 Opus、Claude 3.5 Sonnet)
Google Gemini(Gemini Pro、Gemini Ultra)
DeepSeek(DeepSeek Chat、DeepSeek Coder)
阿里 Qwen(通義千問)
本地模型(完全離線運行):
Ollama(支援 Llama 3、Mistral、Phi-3 等)
LM Studio(圖形化介面,新手友善)
配置一次後,所有 AI 相關插件都能直接使用,無需重複設定。例如:今天你安裝了「AI 翻譯」與「AI 重新命名」插件,它們都會自動共用你在 SDK 裡填好的配置,甚至可以各自選擇不同的模型,而不需要你再次輸入 API Key。

開放的開發環境
基於 ai-sdk.dev 標準(AI SDK v5),AI SDK 插件為開發者提供了一組乾淨、穩定的基礎設施。開發者不用再花心力處理 API Key 儲存、模型切換、錯誤重試等基礎配置,可以專注於插件的功能創新。唯一的區別在於 Provider 的取得方式,我們使用自己開發的 Provider 來確保更好的穩定性和使用者體驗。
版本相容性:此插件基於 AI SDK v5 建構。如果您熟悉較新版本(v6、v7 等)的 AI SDK,請注意某些 API 或功能可能會有所不同。請務必參考此文檔以了解在 Eagle 生態系統中的正確使用方法。
安裝 AI SDK 相依插件
進入插件中心
搜尋並找到 AI SDK 插件
點擊安裝 AI SDK 插件
如何使用 AI SDK 相依插件
如果你希望在你的插件中使用 AI SDK 相關功能,你需要在插件的 manifest.json
檔案中添加 dependencies
定義,讓 Eagle 系統知道這個插件需要額外的擴展功能,示例如下:
{
"id": "LBCZE8V6LPCKD",
"version": "1.0.0",
"platform": "all",
"arch": "all",
"name": "視窗插件",
"logo": "/logo.png",
"keywords": [],
"dependencies": ["ai-sdk"],
"devTools": false,
"main":
{
"url": "index.html",
"width": 640,
"height": 480,
}
}
視窗插件範例
你可以使用 eagle.extraModule.ai
來呼叫 AI SDK 相依插件提供的功能。以下是各種使用方式的示例:
generateText() - 基本文字生成
eagle.onPluginCreate(async (plugin) => {
// 取得 AI 模組和 Provider
const ai = eagle.extraModule.ai;
const { openai, anthropic, gemini, deepseek, qwen, ollama, lmstudio } = await ai.getProviders();
const { generateText } = ai;
// 基本文字生成
const result = await generateText({
model: openai("gpt-5"),
prompt: "請幫我寫一個關於數位藝術的創意簡介",
});
console.log(result.text);
});
generateObject() - 結構化物件生成
eagle.onPluginCreate(async (plugin) => {
const ai = eagle.extraModule.ai;
const { openai } = await ai.getProviders();
const { generateObject } = ai;
// 生成結構化資料
const result = await generateObject({
model: anthropic("claude-4-sonnet"),
schema: {
type: "object",
properties: {
tags: {
type: "array",
items: {
type: "object",
properties: {
name: { type: "string" },
reason: { type: "string" },
},
},
},
description: { type: "string" },
},
},
messages: [
{
role: "system",
content: "你是一個專業的圖像分析專家,能夠準確識別圖像內容並給出合適的標籤和描述。",
},
{
role: "user",
content: [
{
type: "text",
text: "請分析這張圖片並給出5個相關標籤,每個標籤需要說明原因,同時提供一個簡潔的圖片描述。",
},
{
type: "image",
image: "https://example.com/sample-image.jpg",
},
],
},
],
});
console.log("標籤:", result.object.tags);
console.log("描述:", result.object.description);
});
streamText() - 串流文字生成
eagle.onPluginCreate(async (plugin) => {
const ai = eagle.extraModule.ai;
const { openai } = await ai.getProviders();
const { streamText } = ai;
// 串流生成文字,適合即時顯示
const { textStream } = await streamText({
model: gemini("gemini-2.0-flash-exp"),
prompt: "請詳細介紹數位藝術的發展歷程和主要特點",
});
// 逐步接收並顯示生成的文字
for await (const textPart of textStream) {
console.log(textPart);
}
});
streamObject() - 串流物件生成
eagle.onPluginCreate(async (plugin) => {
const ai = eagle.extraModule.ai;
const { openai } = await ai.getProviders();
const { streamObject } = ai;
// 串流生成結構化物件
const { partialObjectStream } = await streamObject({
model: deepseek("deepseek-chat"),
schema: {
type: "object",
properties: {
analysis: {
type: "object",
properties: {
colors: {
type: "array",
items: { type: "string" }
},
style: { type: "string" },
mood: { type: "string" },
suggestions: {
type: "array",
items: { type: "string" }
}
}
}
},
},
messages: [
{
role: "system",
content: "你是一個藝術評論家,能夠深入分析藝術作品的色彩、風格、情感和改進建議。",
},
{
role: "user",
content: "請分析這件藝術作品的色彩搭配、藝術風格、傳達的情感,並提供改進建議。",
},
],
});
// 逐步接收部分物件
for await (const partialObject of partialObjectStream) {
console.log("目前分析結果:", partialObject);
}
});
Last updated